Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. iOS SDK
Code

Dasar-dasar SpriteKit: Meletakkan Semuanya Bersama-sama

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called SpriteKit Basics.
SpriteKit Basics: Actions and Physics

Malay (Melayu) translation by Adjatay Bashroh Aldad (you can also view the original English article)

Final product image
What You'll Be Creating

Dalam catatan ini, kami akan membina permainan yang mudah dari awal. Sepanjang perjalanan, kami akan menyentuh beberapa aspek yang paling penting dalam perpustakaan SpriteKit.

Jawatan ini membina apa yang telah kita pelajari sebelum ini dalam siri SpriteKit Basics. Jika anda ingin menyegarkan pengetahuan SpriteKit anda, lihatlah beberapa jawatan saya yang lain.

Projek baru

Buka Xcode dan mulakan projek baharu dari menu Fail> Baru> Projek. Pastikan iOS dipilih dan pilih Permainan sebagai templat anda.

new project

Berikan projek anda nama, dan pastikan Language ditetapkan ke Swift, Game Technology diatur ke SpriteKit, dan Peranti ditetapkan ke iPad.

project options

Merancang Pemandangan Permainan

Salah satu perkara pertama yang saya suka buat semasa membuat projek ialah menentukan berapa banyak adegan yang saya perlukan untuk projek itu. Saya biasanya akan mempunyai sekurang-kurangnya tiga adegan: adegan intro, adegan permainan utama, dan adegan untuk menunjukkan skor tinggi, dan sebagainya.

Untuk contoh ini, kami hanya memerlukan pemandangan intro dan mainan utama kerana kami tidak akan menjejaki kehidupan, skor, dan sebagainya. SpriteKit sudah datang dengan satu adegan apabila anda membuat projek baru, jadi kami hanya memerlukan pemandangan intro.

Dari menu Xcode, pilih Fail> Baru> Fail. Pastikan iOS dipilih dan pilih Kelas Koko Cocoa.

new cocoa touch class

Namakan kelas StartGameScene, dan pastikan Subclass ditetapkan ke SKScene dan Language diatur ke Swift.

startgamescene class

Menyediakan GameViewController

Buka GameViewController.swift. Padam semua dalam fail itu dan gantikannya dengan yang berikut.

Apabila anda membuat projek baru, GameViewController.swift disediakan untuk memuatkan GameScene.sks dari cakera. GameScene.sks digunakan bersama dengan editor adegan terbina dalam SpriteKit, yang membolehkan anda membuangkan projek anda secara visual. Kami tidak akan menggunakan GameScene.sks, dan sebaliknya akan membuat segala-galanya dari kod, jadi di sini kita memulakan contoh baru StartGameScene dan membentangkannya.

Buat Pengenalan Pemandangan

Tambah yang berikut ke StartGameScene.swift yang baru dibuat.

Pemandangan ini agak mudah. Dalam kaedah didMove, kami menambah logo dan butang. Kemudian, dalam menyentuhBegan, kami mengesan sentuhan pada butang permainan baru dan bertindak balas dengan memuatkan permainan utama GameScene.

Kelas Permainan Perancangan

Perkara seterusnya yang saya suka buat ketika membuat permainan baru adalah menentukan kelas mana yang saya perlukan. Saya dapat memberitahu segera bahawa saya memerlukan kelas Player dan kelas Enemy. Kedua-dua kelas ini akan meluaskan SKSpriteNode. Saya fikir untuk projek ini kita akan hanya membuat peluru pemain dan musuh dari dalam kelas masing-masing. Anda boleh membuat peluru pemain dan kelas peluru musuh yang berasingan jika anda lebih suka, dan saya cadangkan anda cuba melakukan itu sebagai latihan sendiri.

Akhir sekali, terdapat pulau-pulau. Ini tidak mempunyai fungsi tertentu tetapi untuk bergerak ke bawah skrin. Dalam kes ini, kerana mereka hanya hiasan, saya fikir ia juga baik untuk tidak membuat kelas, dan sebaliknya hanya buat mereka dalam GameScene utama.

Mewujudkan Kelas Pemain

Dari menu Xcode, pilih Fail> Baru> Fail. Pastikan iOS dipilih dan pilih Kelas Koko Cocoa.

new cocoa touch class

Pastikan Kelas ditetapkan kepada Pemain, Subclass: ditetapkan ke SKSpriteNode, dan Bahasa ditetapkan ke Swift.

player class

Sekarang tambahkan yang berikut kepada Player.swift.

Dalam kaedah init(), kami menubuhkan fizikBody dan memanggil generateBullets(). Kaedah generateBullets berulang kali memanggil fireBullet(), yang menghasilkan peluru, menetapkan fizikBody, dan memindahkannya ke skrin.

Apabila pemain kehilangan nyawa, kaedah respawn() digunakan. Dalam kaedah respawn, kita akan memancarkan pesawat dalam dan keluar lima kali, di mana masa pemain itu tidak dapat dikalahkan. Satu pemain telah meletupkan semua kehidupan, kaedah kill() digunakan. Kaedah membunuh hanya memuat StartGameScene.

Mewujudkan Kelas Musuh

Pilih Fail> Baru> Fail dari menu Xcode. Pastikan iOS dipilih dan pilih Kelas Koko Cocoa.

new cocoa touch class

Pastikan Kelas diset ke Enemy, Subclass: ditetapkan ke SKSpriteNode, dan Bahasa ditetapkan ke Swift.

Tambah yang berikut ke Enemy.swift.

Kelas ini sangat mirip dengan kelas Player. Kami menetapkan fizikBody dan memanggil generateBullets(). Langkah() hanya menggerakkan musuh ke skrin.

Mewujudkan Pemandangan Permainan Utama

Padamkan semuanya dalam GameScene.swift dan tambah yang berikut.

Kami mencipta contoh Player dan contoh CMMotionManager. Kami menggunakan accelerometer untuk memindahkan pemain dalam permainan ini.

Dalam kaedah didMove (kepada :) kita mematikan graviti, sediakan contactDelegate, tambah gelung kelebihan, dan tetapkan kedudukan pemain sebelum menambahkannya ke tempat kejadian. Kami kemudiannya memanggil setupAccelerometer(), yang menyediakan pecutan, dan menggunakan kaedah AddEnies() dan generateIslands().

Kaedah addEnemies() berulang kali memanggil kaedah generateEnemy(), yang akan mewujudkan contoh Enemy dan menambahkannya ke tempat kejadian.

Kaedah generateIslands() berfungsi serupa dengan kaedah addEnemies() kerana ia berulang kali membuat panggilanIsland() yang membuat SKSpriteNode dan menambahkannya ke tempat kejadian. Dalam mewujudkanIsland(), kami juga membuat SKAction yang menggerakkan pulau itu ke tempat kejadian.

Di dalam kaedah didBegin(_ :) kami semak untuk melihat nod yang membuat kenalan dan bertindak balas dengan mengeluarkan nod yang sesuai dari tempat kejadian dan menggunakan pemain.die() jika perlu. Kaedah createExplosion() mewujudkan animasi letupan dan menambahkannya ke tempat kejadian. Setelah letupan selesai, ia akan dikeluarkan dari tempat kejadian.

Kesimpulan

Semasa siri ini, kami mempelajari beberapa konsep yang paling penting yang digunakan dalam hampir semua permainan SpriteKit. Kami mengakhiri siri dengan menunjukkan betapa mudahnya untuk mendapatkan permainan asas dan berjalan. Masih terdapat beberapa penambahbaikan yang boleh dibuat, seperti HUB, skor tinggi, dan bunyi (saya menyertakan beberapa MP3 yang boleh anda gunakan untuk ini di repo). Saya harap anda belajar sesuatu yang berguna sepanjang siri ini, dan terima kasih kerana membaca!

Sekiranya anda ingin mempelajari lebih lanjut mengenai pengaturcaraan permainan dengan SpriteKit, lihat salah satu daripada kursus video komprehensif kami! Anda akan belajar bagaimana untuk membina permainan SpriteKit dari A hingga Z.

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.