Daftar Isi:

Buat Game Balap Pertama Anda: 10 Langkah
Buat Game Balap Pertama Anda: 10 Langkah

Video: Buat Game Balap Pertama Anda: 10 Langkah

Video: Buat Game Balap Pertama Anda: 10 Langkah
Video: Balap liar anak kecil 2024, November
Anonim
Image
Image
Gambar
Gambar

Jika Anda telah melakukan beberapa pengkodean Python dan ingin menulis game yang mungkin Anda miliki di Pygame Zero.

Dalam tutorial ini kita akan menulis game balap sederhana.

Langkah 1: Ikhtisar Luas

Modul Pygame menambahkan banyak fungsi yang membantu Anda menulis game dengan Python.

Pygame Zero melangkah lebih jauh untuk membiarkan Anda melewati proses rumit untuk membuat semua loop game itu dan menyiapkan struktur program Anda.

Pygame Zero adalah pilihan tepat bagi siapa saja yang ingin mulai menulis game komputer di Raspberry Pi atau mesin Linux apa pun.

Kamu akan membutuhkan:

  • Mesin yang menjalankan OS Linux
  • Editor untuk menulis program python
  • Papan ketik
  • Beberapa imajinasi

File:

github.com/AhmNouira/-Racing-Game

Langkah 2: Prasyarat

Pertama saya akan menggunakan laptop saya dengan OS Ubuntu 18.04. Kemudian kita akan menjalankan game di Raspberry Pi pada langkah 8.

Sebelum melanjutkan dengan tutorial ini, pastikan Anda masuk sebagai pengguna dengan hak istimewa sudo.

Menginstal pip untuk Python 3

Mulailah dengan memperbarui daftar paket menggunakan perintah berikut:

sudo apt update

Gunakan perintah berikut untuk menginstal pip untuk Python 3:

sudo apt install python3-pip

verifikasi instalasi dengan memeriksa versi pip:

pip3 --versi

Memasang Pygame Zero

pip3 instal pgzero --pengguna

Ini juga akan menginstal Pygame. Paket Pygame yang telah dikompilasi sebelumnya

Jadi langkah pertama dalam perjalanan Anda adalah membuka Python 3 IDLE atau editor python favorit Anda.

Langkah 3: "Halo Dunia" di Pygame Zero

Secara default, jendela Pygame Zero terbuka dengan ukuran lebar 800 piksel dan tinggi 600 piksel. Anda dapat menyesuaikan

ukuran jendela Anda, ada dua variabel predinied yang dapat Anda atur, jika Anda menyertakan WIDTH = 700 HIGH = 800.

Pygame zero menyediakan fungsi yang telah ditentukan untuk menangani loop game yang biasanya dilakukan:

Draw() Fungsi

Kita dapat menulis fungsi ini ke dalam program kita sama seperti kita biasanya mendefinisikan fungsi dengan Python.

Pygame Zero mengikuti aturan pemformatan yang sama dengan Python, jadi Anda harus berhati-hati untuk membuat indentasi kode Anda dengan benar.

#!/usr/bin/python3 # atur penerjemah

import pgzrun # import pgzero module WIDTH = 700 # lebar jendela HEIGHT = 800 # tinggi jendela def draw(): # pygame zero draw function screen.fill((128, 128, 128)) # isi layar dengan RGB color screen.draw.text("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), ukuran font = 40) pgzrun.go()

Pertama-tama Anda perlu menyimpan file program Anda dan memberinya nama.

Kemudian buka jendela Terminal, buka lokasi file Anda dan ketik:

./.py

Langkah 4: Menggambar Aktor Anda

Menggambar Aktor Anda
Menggambar Aktor Anda

Sekarang setelah kita memiliki set panggung, kita dapat membuat Aktor kita, mereka adalah objek dinamis di Pygame Zero.

Kita dapat memuat Aktor dengan mengetik di bagian atas program:

mobil = Aktor("mobil balap")

Di Pygame Zero gambar kita perlu disimpan dalam direktori yang disebut gambar, di sebelah file program kita. Jadi Aktor kita akan mencari file gambar di folder gambar bernama racecar.png. Ini bisa berupa file GIF atau JPG, tetapi sebaiknya gambar Anda adalah file-p.webp

Anda dapat mengatur posisinya di layar dengan mengetik:

mobil.pos = 350, 560

Setelah itu dalam fungsi draw() kami, kami dapat mengetik

car.draw() # menggambar mobil balap kita pada posisi yang ditentukan

Program lengkapnya akan seperti ini:

#!/usr/bin/python3

import pgzrun WIDTH = 700 # lebar jendela HEIGHT = 800 # tinggi jendela mobil = Aktor("mobil balap") car.pos = 350, 560 def draw(): # pygame zero draw function screen.fill((128, 128, 128)) # isi layar dengan car.draw() pgzrun.go()

Uji program Anda untuk memastikan ini berfungsi.

Langkah 5: Kontrol Aktor

Kontrol Aktor
Kontrol Aktor

Setelah kita memiliki gambar mobil di layar, tahap selanjutnya adalah memungkinkan pemain untuk memindahkannya.

Kita bisa melakukannya dengan menekan tombol. Kita dapat membaca status kunci ini di dalam fungsi standar lain yang disebut update().

Pembaruan () Fungsi

Fungsi ini terus diperiksa saat game sedang berjalan.

Kita perlu menulis beberapa kode untuk mendeteksi penekanan tombol tombol panah dan juga untuk melakukan sesuatu tentang hal itu.

Jadi kami akan menambahkan fungsi ini ke program kami

pembaruan def():

jika keyboard.left: car.x -=2 jika keyboard.right: car.x +=2 jika keyboard.up: car.y -=2 jika keyboard.down: car.y +=2

Baris kode ini akan menggerakkan Aktor mobil ke kiri, kanan, maju dan mundur.

Langkah 6: Membangun Jalur

Membangun Lintasan
Membangun Lintasan

Sekarang kami memiliki mobil yang dapat kami kemudikan, kami membutuhkan lintasan untuk dikendarai.

Kami akan membangun trek kami dari Aktor, satu baris pada satu waktu. Kita perlu membuat beberapa daftar untuk melacak Aktor yang kita buat.

Kita juga perlu menyiapkan beberapa variabel lagi untuk trek.

Kemudian mari kita buat sebuah fungsi baru bernama makeTrack(), Fungsi tersebut akan menambahkan satu track Actor di kiri dan satu di kanan, keduanya menggunakan image bare-p.webp

trackLeft = # daftar untuk menyimpan barri kiri

trackRight = # daftar untuk menyimpan barri kanan trackCount = 0 # menghitung jumlah barri trackPosition = 350 trackWidth = 150 # lebar antara barri kiri dan kanan def makeTrack(): # berfungsi untuk membuat satu barrie di trackCount global kiri dan kanan, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append(Actor("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append(Actor("bare", pos = (trackPosition + trackWidth, 0))) trackCount +=1

Hal berikutnya yang perlu kita lakukan adalah memindahkan bagian trek ke bawah layar ke arah mobil.

Mari kita tulis fungsi baru yang disebut updateTrack(), Fungsi ini memperbarui di mana blok trek akan muncul. Potongan trek dibuat dengan angka acak sehingga setiap pemutaran berbeda.

trackDriction = Salah

SPEED = 4 # mengatur kecepatan permainan dari randint impor acak # mengimpor kelas randint dari modul acak def updateTrack(): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 while b 32: jika trackDirection == Salah: trackPosition += 16 jika trackDirection == Benar: trackPosition -= 16 jika randint(0, 4) == 1: trackDirection = bukan trackDirection jika trackPosition > 700 - trackWidth: trackDirection = True jika trackPosition < trackWidth: trackDirection = False makeTrack() # buat trek baru di bagian atas layar

Silakan merujuk ke file zip di bawah ini bernama "RaceGameDemo".

Jika kita menjalankan kode kita saat ini, kita akan melihat trek yang meliuk-liuk ke arah mobil. Satu-satunya masalah adalah kami dapat memindahkan mobil melewati penghalang lintasan dan kami ingin menjaga mobil tetap di dalamnya dengan beberapa deteksi tabrakan.

Langkah 7: Kecelakaan Mobil

Kecelakaan Mobil
Kecelakaan Mobil
Kecelakaan Mobil
Kecelakaan Mobil
Kecelakaan Mobil
Kecelakaan Mobil

Kita perlu memastikan bahwa mobil kita tidak menyentuh trek Aktor.

kita juga dapat menguji tabrakan menggunakan metode collisionrect() dalam fungsi updateTrack() kita.

Dalam game ini kita akan memiliki tiga status berbeda dengan game yang disimpan dalam variabel gameStatus kita:

  • gameStatus == 0 # game sedang berjalan
  • gameStatus == 1 # kecelakaan mobil
  • gameStatus == 2 # game selesai

Kita perlu mengubah fungsi draw() dan fungsi update() kita untuk merespons variabel gameStatus.

Sentuhan akhir

Yang perlu kita lakukan sekarang adalah menampilkan sesuatu jika gameStatus disetel ke 1 atau 2, misalnya kita harus menampilkan warna merah

bendera, jika mobil itu jatuh. Kita dapat melakukannya dengan kode di bawah ini:

screen.blit("bendera merah", (230, 230))

Untuk melihat apakah mobil telah mencapai finish, kita harus menghitung berapa banyak bagian trek yang telah dibuat dan kemudian mungkin ketika kita mencapai 200, atur gameStatus ke 2. Kemudian tampilkan bendera kotak-kotak:

screen.blit("finishflag", (230, 230))

Kami juga akan menampilkan beberapa teks di layar seperti skor permainan saat ini.

Lihat daftar kode lengkap untuk melihat bagaimana semua ini cocok bersama.

Langkah 8: Jalankan Game di Raspberry Pi

Jalankan Game di Raspberry Pi
Jalankan Game di Raspberry Pi
Jalankan Game di Raspberry Pi
Jalankan Game di Raspberry Pi

Pada Raspberry Pi pgzero telah terinstal secara default sejak rilis Raspbian Jessie pada September 2015.

Cukup perbarui Raspberry Pi Anda dengan menggunakan perintah:

sudo apt-get update

Pergi ke lokasi file Anda dan ketik Terminal.

pgzrun.py

Langkah 9: Apakah Anda Menang?

Apakah kamu menang?
Apakah kamu menang?

Anda dapat membuat permainan lebih mudah atau lebih sulit dengan mengubah variabel trackWidth untuk membuat track menjadi lebar yang berbeda. Anda dapat mengubah nilai SPEED untuk membuat track bergerak lebih cepat atau lebih lambat.

Langkah 10: Kesimpulan

Pygame Zero adalah pilihan tepat bagi siapa saja yang ingin mulai menulis game komputer.

Jika Anda memiliki pertanyaan tentu saja Anda dapat meninggalkan komentar. Untuk melihat lebih banyak tentang karya saya, silakan kunjungi saluran saya:

myYouTube

myTwitter

myLinkedin

Terima kasih telah membaca instruksi ini ^^ dan semoga harimu menyenangkan. Sampai jumpa. Ahmad Nouira.

Direkomendasikan: