Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. SpriteKit

Memperkenalkan SpriteKit

by
Length:ShortLanguages:
This post is part of a series called SpriteKit Basics.
SpriteKit Basics: Nodes

Indonesian (Bahasa Indonesia) translation by Aditia Dwiperdana (you can also view the original English article)

SpriteKit adalah 2D game engine dari Apple. SpriteKit diperkenalkan bersama iOS 7, dan setiap rilis berikutnya memiliki fitur tambahan yang bermanfaat untuk framework ini. Dengan penggunaan textured sprite, physics engine bawaan, dan kelas SKAction yang sangat bermanfaat, kamu bisa membuat game 2D dengan sangat cepat.

SpriteKit memiliki editor bawaan untuk scene dan partikel, fitur node kamera mulai dari rilis iOS9, dan dukungan bawaan untuk tileset sejak rilis iOS 10. Dengan semua tambahan ini, SpriteKit menjadi salah satu engine yang dominan untuk membuat game 2D.

Berikut ini adalah gambar dari editor scene bawaan, dengan sebuah label, sprite berwarna, dan sprite bertekstur.

Scene Editor

Rendering Loop

SpriteKit, seperti game engine lain, menggunakan sebuah loop rendering untuk merender dan mengupdate layar. Rendering loop tersebut melakukan langkah-langkah berikut saat merender setiap scene:

  1. Update scene dan objek-objeknya
  2. Mengevaluasi aksi-aksi
  3. Simulasi physics
  4. Menerapkan berbagai batasan
  5. Merender scene

Setiap langkah ini memiliki fungsi terkait yang bisa kamu modifikasi untuk menambahkan logika tambahan. Fungsi-fungsi render loop adalah sebagai berikut:

  1. update
  2. didEvaluateActions
  3. didSimulatePhysics
  4. didApplyConstraints
  5. didFinishUpdate

Contohnya, jika kamu ingin menggerakkan objek dalam scene, maka fungsi update adalah yang perlu kamu gunakan. Atau jika kamu punya objek yang dipengaruhi oleh aksi atau physics, kamu bisa mengikat fungsi yang bersangkutan untuk memastikan aksi atau simulasi physics tersebut diterapkan sebelum perubahan apapun yang kamu buat.

SKNode

Kelas SKNode adalah dasar untuk membangun game dalam SpriteKit. Semua aset di layar akan berupa SKNode atau kelas turunannya.

Kelas SKNode tidak menggambar visual aset dengan sendirinya. Fungsi utama SKNode adalah menyediakan perilaku dasar yang akan diterapkan kelas lain. Contohnya, kelas SKScene adalah node akar pada pohon instance SKNode dan digunakan untuk menyimpan sprite dan konten lain yang perlu dirender.

Proses render dan animasi dilakukan oleh instance dari SKView. View tersebut disimpan pada sebuah window dan instance SKScene ditambahkan pada view tersebut, dan scene tersebut akan dirender dan dianimasikan selama view yang bersangkutan masih aktif. Kamu bisa menggunakan sebuah instance SKView dalam window-mu dan berpindah antara scene yang berbeda kapan saja.

Framework ini menentukan beberapa kelas turunan dari SKNode. Yang paling umum digunakan dalam sebuah scene adalah kelas SKSpriteNode. Kelas SKSpriteNode bisa digambar sebagai persegi dengan sebuah gambar yang dipetakan padanya dengan SKTexture, dan akan menghasilkan sebuah sprite, atau sebagai persegi berwarna tanpa tekstur. Kamu akan paling sering menggunakan sprite bertekstur, karena dengan cara itu kamu akan menghidupkan game kamu dengan berbagai gambar.

Tipe node penting lain diantaranya:

  • SKShapeNode, yang merender sebuah bentuk yang sudah ditentukan oleh Core Graphics
  • SKVideo, menampilkan konten video
  • SKLabel, menampilkan label teks

Kita akan melihat beberapa kelas turunan dari SKNode di bagian berikutnya dari seri tutorial ini.

SKAction

Kelas SKAction adalah kelas yang sangat bermanfaat yang digunakan untuk menghidupkan node-mu. SKAction bisa mengubah properti node seiring waktu, misalnya dengan memindahkan, mengubah skala, atau memutarnya. Kamu bisa merantaikan beberapa aksi bersama dalam suatu urutan, menjalankan banyak aksi sekaligus dalam suatu grup, dan mengulangnya dalam loop. Kamu juga bisa menggunakan SKAction untuk menjalankan kode tertentu. Sebagai contoh, misalnya kamu ingin mencetak koordinat node setelah digerakkan. Kamu bisa manjalankan sekumpulan kode khusus di dalam SKAction hanya untuk mengerjakan hal tersebut.

Fitur SpriteKit

Physics

SpriteKit memiliki physics engine bawaan yang membuat proses menangani skenario physics yang rumit menjadi lebih mudah. Dikembangkan dari framework Box2D, physics engine ini membuat kamu bisa merespon kejadian tumbukan atau kontak, menerapkan daya dan gravitasi, dan membuat simulasi physics yang rumit yang menggunakan sendi, seperti pin dan pegas. Kamu bisa menggunakan editor scene untuk menambahkan physics terhadap node secara visual, atau kamu bisa juga menambahkan physics menggunakan programming.

Sistem koordinat

Pada SpriteKit, koordinat (0,0) terdapat pada pojok kiri bawah layar, bukan di kiri atas seperti pada Flash, Corona, Canvas HTML5, dan banyak framework lain. Titik origin di kiri bawah adalah konvensi dari OpenGL, dan SpriteKit mengikutinya karena SpriteKit di balik layar menggunakan OpenGL.

Sistem Partikel

SpriteKit memiliki engine partikel yang canggih, yang bisa digunakan untuk membuat simulasi sistem partikel seperti api dan asap. Disediakan juga editor partikel bawaan yang bisa kamu gunakan untuk mendetailkan sistem partikel secara visual. Jika kamu lebih memilih untuk menggunakan kode, kamu bisa memrogram sistem seperti itu dari awal hanya dengan menggunakan kode.

Berikut ini adalah sebuah gambar dari editor partikel dengan sistem partikel yang menyerupai api.

Particle Editor

Tiles

SpriteKit memiliki beberapa kelas yang ditujukan untuk membuat layout berbasis tile. Menerapkan tilemap akan menggunakan penggunaan memory yang lebih baik dibanding menggunakan satu gambar yang sangat besar. Tile bisa diatur dalam bentuk persegi, hexagon, atau grid isometrik.

Berikut ini adalah gambar sebuah node tile map menggunakan grid persegi.

Tile Map Node

Kesimpulan

Hal-hal tadi adalah beberapa fitur penting SpriteKit. Saya sarankan untuk membaca overview SpriteKit untuk mempelajari lebih banyak tentang fitur-fitur yang ditawarkan. Untuk mempelajari bagaimana cara memulai dengan SpriteKit, kamu perlu melihat artikel dari Davis Allie di sini di Envato Tuts+.

Jangan lupa untuk mencoba kursus SpriteKit!  Kursus ini akan membimbing kamu melalui semua langkah untuk membangin game SpriteKit pertamamu untuk iOS, walaupun kamu belum pernah menulis kode dengan SpriteKit sebelumnya.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.