Python3 telah membuat banyak penambahbaikan berdasarkan Python2, seperti pengekodan rentetan Aksara lalai dalam Python3 menggunakan pengekodan unicode, yang boleh merangkumi semua aksara di bumi Sudah tentu, kelebihannya tidak terhad kepada ini. Di samping itu, kecekapan pembangunan bahasa Python itu sendiri sangat tinggi, jadi hari ini kami mengajar anda cara menggunakan Python3 untuk membangunkan permainan popular - Master Memancing!
Pertama, mari kita memahami secara ringkas tentang permainan Fishing Master. Fishing Master ialah permainan yang sangat popular sejak beberapa tahun lalu. Ia adalah permainan kompetitif kasual dengan tema pemburuan laut dalam. "Fishing Master" telah dilancarkan pada tahun 2009 dan pada mulanya memenangi hati pemain untuk permainan memancing yang ringkas dan mudah. Pada tahun-tahun berikutnya, ia memenangi banyak anugerah termasuk "Sepuluh Permainan Teratas" dan Sepuluh Teratas Permainan Dalam Talian Mudah Alih Paling Popular pada 2015 yang dikeluarkan oleh Jawatankuasa Kerja Permainan. Istiharkan status anda sebagai pakar memancing. Terdapat enjin pembangunan permainan dalam Python3 yang dipanggil cocos2d.
Enjin permainan ini pada asalnya ialah versi Objective-C, yang hanya boleh digunakan pada sistem iOS Kemudian, pakar domestik Wang Zhe menterjemahkannya ke dalam versi C++ adalah mudah alih, jadi ia menjadi popular. Cocos2d yang akan kami gunakan hari ini ialah versi Python Berbanding dengan versi C++, versi python cocos2d mempunyai kecekapan pembangunan yang lebih tinggi dan tidak mempunyai banyak petunjuk liar dan kebocoran memori berjalan pada Windows dan Mac serta Linux tanpa mengubah satu baris kod. Jika anda belum memasang enjin permainan ini lagi, anda boleh memasangnya dengan arahan berikut:
pip3 install cocos2d
Dalam cocos2d, kelas pengarah digunakan untuk mengatur keseluruhan proses permainan. Dan ia adalah objek tunggal semasa permainan. Perkara pertama yang perlu dilakukan apabila menggunakan cocos2d adalah untuk memulakan pengarah:
from cocos.director import director director.init(width=800,height=480) # 设置窗口的宽度是800像素,高度是400像素
Adegan ialah bahagian penting dalam pembangunan permainan Antara muka permainan adegan boleh menjadi adegan. Adegan biasanya tidak meletakkan unsur permainan secara langsung, seperti laras ikan dan meriam. Secara amnya, kami akan meletakkan elemen permainan dalam lapisan, dan kemudian meletakkan lapisan ini ke dalam adegan Lapisan juga boleh digunakan untuk menerima acara pengguna, seperti acara klik. Jadi mari kita mulakan adegan dan lapisan pertama kita:
from cocos import layer from cocos import scene game_layer = layer.Layer() game_scene = scene.Scene()
Permainan ini dimainkan di bawah laut, jadi anda perlu menggunakan gambar sebagai latar belakang permainan, jika tidak permainan akan membosankan. Dalam cocos2d, jika anda ingin memuatkan imej, anda mesti menggunakan sprite Ikan, tong meriam, dan jaring yang akan kami gunakan dalam permainan pada masa akan datang semuanya dilaksanakan melalui sprite. Dan bunian harus diletakkan dalam lapisan Di sini saya mewarisi lapisan. Lapisan dan menulis semula kodnya seperti berikut:
Laras meriam perlu dilaksanakan melalui sprite Di sini saya terus menulis subkelas, diwarisi daripada sprite.Sprite, dan kemudian mencipta kelas laras meriam adalah seperti berikut:
Terima peristiwa klik pengguna: Untuk menerima peristiwa klik pengguna, anda perlu melakukan dua perkara. Pertama, tetapkan atribut kelas lapisan permainan is_event_handler=True Kedua, laksanakan on_mouse_press untuk menerima peristiwa klik pengguna Kodnya adalah seperti berikut:
Selepas pengguna mengklik pada skrin, dia perlu memutar laras dan membuang jaring Di sini, laras diputar terlebih dahulu. Kerana kita hanya tahu koordinat x dan y skrin, tetapi bukan sudut, kita perlu menggunakan fungsi trigonometri untuk melakukan penukaran Kodnya adalah seperti berikut:
Selepas memusingkan laras meriam, jaring hendaklah dihamparkan ke tempat yang diklik oleh tetikus, dan jaring hendaklah menjadi lebih besar dari kecil ke besar kerana ia dibentangkan adalah seperti berikut:
Sehingga kini, tiada ikan dalam adegan permainan kami, jadi kami menambah kelas ikan di sini dan biarkan ia diwarisi daripada sprite. Ikan akan sentiasa mengemas kini pergerakannya semasa berenang, jadi ia tidak boleh Hanya menggunakan satu gambar, tetapi jika anda ingin menggunakan kumpulan gambar, kami memanggilnya animasi keyframe Kodnya adalah seperti berikut:
Selepas jaring dibuang, hendaklah dinilai sama ada berlanggar dengan ikan Jika terlanggar, ikan hendaklah ditetapkan ke keadaan yang ditangkap. Dalam cocos2d, modul pengesanan perlanggaran telah dikapsulkan, yang boleh dilengkapkan melalui cocos.collision_model. Dan jika anda ingin menambah pengesanan perlanggaran pada elemen, anda mesti menambah atribut cshape supaya perlanggaran boleh berlaku. Terdapat banyak kod di sini, jadi saya akan menyenaraikannya secara berasingan:
Ikan:
Bersih:
Kesan jika perlanggaran berlaku:
Di atas memberi anda idea. Python masih boleh membuat permainan 2D yang hebat.
Atas ialah kandungan terperinci Pendekatan yang betul untuk membangunkan permainan dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!