Proyek Pelatihan di Godot - Pong (Bagian 2) Membuat dan Menyiapkan Bola

Saya menyambut Anda, orang-orang Khabrovit! Di bagian ini, saya akan membuat dan menyesuaikan bola untuk permainan Pong. Jika Anda melewatkan awal, maka itu ada di sini . Level artikel masih pemula.


Di bawah potongan, masih ada banyak tangkapan layar.

Panggil anak-anak dan selamat datang di bawah kucing.


Untuk mengedit, proyek dibuka dengan mengklik dua kali pada nama proyek atau dengan tombol "Edit".



Saat Anda menghidupkan ulang mesin, adegan yang dibuat sebelumnya tidak terbuka. Anda dapat membukanya dengan mengklik dua kali di panel "File System", panel analog di Unity disebut Project.


Sekarang Anda dapat membuat bola, urutan yang tepat untuk mesin ini, tubuh fisik dan dua pewarisnya: collider dan grafik. Tapi saya akan melakukannya dalam urutan yang berbeda, dan pada saat yang sama saya akan memberi tahu Anda mengapa urutan node ini diperlukan.


Hal pertama yang ingin saya lakukan dengan bola adalah melihatnya. Karena itu, saya akan mulai dengan grafik. Saya dapat menggambar kotak putih 3 kali 3 piksel dalam editor gambar apa pun. Namun, saya tidak suka melakukannya di program pihak ketiga, apa yang bisa saya lakukan tepat di mesin.


Untuk menambahkan node ke adegan, klik tanda plus di panel adegan. (Tentu saja, dimungkinkan untuk menggunakan menu konteks atau tombol pintas)



Daftar besar berbagai jenis node muncul di jendela yang terbuka. Mereka semua harus dilihat, idealnya membaca tentang masing-masing node dalam dokumentasi , atau setidaknya melihat semua node secara langsung dalam daftar dengan membaca deskripsi masing-masing node.


Ini akan membantu untuk lebih memahami simpul apa yang ada di mesin dan apa yang harus dilakukan dengannya. Dan untuk tujuan kami saat ini, simpul Polygon2D cocok.



Secara default, semua node dibuat sebagai anak-anak relatif terhadap simpul root. Jika Anda perlu membuat simpul anak untuk node tertentu, Anda harus membuatnya dengan terlebih dahulu memilih node induk. Jelas, ini tidak perlu dengan simpul root.


Saatnya memperhatikan sisi kanan jendela, ada panel inspektur.



Untuk yang terkecil

Kuadrat adalah figur geometris yang terdiri dari 4 sudut dan 4 sisi, dengan semua sisi sama satu sama lain.


Ukuran poligon menentukan jumlah sudut, setelah daftar titik muncul, koordinat yang harus dimasukkan, secara pribadi saya lebih suka mulai dari sudut kiri atas dan bergerak searah jarum jam di sekitar titik. Menguraikan sosok di sekitar tengah. Secara default, di Godot, pusat semua node adalah sudut kiri atas tempat kejadian. Dan pengenalan fraksi pixel diizinkan.



Sekarang Anda dapat mengatur "Transform" dan posisikan bola di tengah adegan.
Untuk melihatnya lebih baik, Anda perlu sedikit meningkatkan adegan permainan di bagian utama jendela.
Menggulir scroller pada mouse memungkinkan Anda untuk menambah dan mengurangi adegan, dan mengklik scroller dan menggerakkan mouse memindahkan adegan.



Sekarang Anda perlu membuat bola bergerak, dan ada dua cara utama:


  1. Anda dapat mengubah pengaturan "Transform", dan memindahkan bola dengan cara yang sama seperti saya memindahkannya ke tengah panggung tetapi, menggunakan kode program, dan dengan lancar.
  2. Dan Anda dapat menambahkan grafik ini sebuah simpul dari elemen fisik yang disebut "Solid" atau "Physical object". Dan pindahkan efek mesin fisik pada objek ini.

Mesin fisik memungkinkan Anda untuk menggunakan gerakan yang paling akurat, halus, dan dapat dipercaya tanpa harus menggambarkan sendiri semua perhitungan yang rumit.


Selain itu, di samping pergerakan bola, kita masih perlu menentukan apakah bola telah menemui batas layar? Jika berhadapan, perbatasan mana? Apakah bola menabrak raket? Jika dihadapkan dengan raket mana dan bagian mana? Tetapi hal-hal ini paling mudah diverifikasi menggunakan mesin fisik.


Secara umum, ada skema yang sangat sederhana untuk pilihan ini. Jika semua objek dalam game bergerak di sepanjang kisi dan ada antrian gerakan. Misalnya, dalam catur, pemain hitam tidak memulai gilirannya sebelum pemain putih menyelesaikan langkahnya. Dan tidak ada pemain yang memiliki hak untuk memindahkan beberapa bagian sekaligus.


Dalam game semacam itu, mudah untuk langsung mengubah pengaturan "Transform".
Untuk semua kasus lain, ada mesin fisika.


Sekarang, saya pikir sudah jelas bahwa lebih nyaman menggunakan mesin fisika di game Pong.


Untuk melakukan ini, Anda perlu ke bola, sekarang ini adalah simpul "Polygon2D" tambahkan simpul "PhysicsBody2D"



Tetapi ada tiga simpul seperti itu: Kinematik, Kaku dan Statis. Menurut deskripsi:


  1. Kinematik adalah objek fisik yang bergerak sesuai dengan kode program tertulis, tidak mematuhi mesin fisik. (Pilihan kami)
  2. Kaku adalah objek fisik yang sepenuhnya berada di bawah mesin fisik.
  3. Statis adalah objek fisik yang tidak bergerak.

Analog dari node ini tersedia di semua mesin game yang saya tahu, dan di Unity mereka memiliki nama dan properti yang sama.


Setelah menambahkan simpul "KinematicBody2D", pemberitahuan kesalahan muncul.



Melayang di atasnya, menjadi jelas bahwa penyebab kesalahan adalah kurangnya topeng collider untuk node ini, dalam hal ini saya ditawari pilihan salah satu dari dua opsi: CollisionShape2D atau CollisionPoligon2D.


Saya sudah mencoba membuat poligon, sekarang saya ingin melihat formulirnya. Yang setelah penciptaan melaporkan kesalahan lain. Kali ini dia mengatakan bahwa topeng itu sepertinya ada di sana, tetapi tidak ada yang menciptakan bentuk topeng itu.


Itu dibuat di panel "Inspektur". Untuk kotak kami, bentuk "RectangleShape2D" cocok dengan pengaturan berikut.



Sekarang Anda dapat mulai menggerakkan bola di sekitar layar tetapi, dengan mesin fisik Anda hanya dapat memindahkan "tubuh fisik" dengan semua ahli waris dan itu akan bergerak relatif terhadap induknya. Dalam hal ini, tubuh bersama dengan collider akan bergerak relatif terhadap persegi yang digambar di atas panggung, yang akan tetap diam di layar. Cara mengatasinya sangat sederhana:


  • Agar tubuh fisik bergerak relatif terhadap adegan, harus dibuat simpul anak dari adegan tersebut.


  • Agar persegi ditarik untuk bergerak dengan tubuh fisik, itu harus dibuat anak sehubungan dengan tubuh fisik.


Sekarang menggerakkan tubuh fisik, saya akan memindahkan topeng tabrakan bersama dengan kotak yang ditarik.


Bola siap untuk bergerak, lain kali kita akhirnya akan meluncurkannya dan melihat bagaimana itu akan terlihat dalam permainan.


Saya akan senang atas kritik Anda di komentar.

Source: https://habr.com/ru/post/id466491/


All Articles