Isi kandungan:

Buat Permainan Perlumbaan Pertama Anda: 10 Langkah
Buat Permainan Perlumbaan Pertama Anda: 10 Langkah

Video: Buat Permainan Perlumbaan Pertama Anda: 10 Langkah

Video: Buat Permainan Perlumbaan Pertama Anda: 10 Langkah
Video: Rubik Rp10,000 VS Rubik Rp1,000,000! 2024, November
Anonim
Image
Image
Imej
Imej

Sekiranya anda telah melakukan pengekodan Python dan ingin menulis permainan yang mungkin anda miliki di seluruh Pygame Zero.

Dalam tutorial ini kita akan menulis permainan lumba sederhana.

Langkah 1: Gambaran Keseluruhan yang Luas

Modul Pygame menambah banyak fungsi yang membantu anda menulis permainan di Python.

Pygame Zero melangkah lebih jauh untuk membiarkan anda melewati proses yang rumit untuk membuat semua gelung permainan tersebut dan mengatur struktur program anda.

Pygame Zero adalah pilihan tepat bagi sesiapa sahaja yang ingin mula menulis permainan komputer di Raspberry Pi atau mana-mana mesin Linux.

Anda Perlu:

  • Mesin yang menjalankan OS Linux
  • Editor untuk menulis program python
  • Papan Kekunci
  • Beberapa khayalan

Fail:

github.com/AhmNouira/-Racing-Game

Langkah 2: Prasyarat

Mula-mula saya akan menggunakan komputer riba saya dengan OS Ubuntu 18.04. Kemudian kita akan menjalankan permainan di Raspberry Pi pada langkah 8.

Sebelum meneruskan tutorial ini, pastikan anda log masuk sebagai pengguna dengan hak istimewa sudo.

Memasang pip untuk Python 3

Mulakan dengan mengemas kini senarai pakej dengan menggunakan arahan berikut:

sudo apt kemas kini

Gunakan arahan berikut untuk memasang pip untuk Python 3:

sudo apt pasang python3-pip

sahkan pemasangan dengan memeriksa versi pip:

pip3 - penukaran

Memasang Pygame Zero

pip3 pasang pgzero - pengguna

Ini juga akan memasang Pygame. Pakej Pygame yang telah disusun sebelumnya

Jadi langkah pertama dalam perjalanan anda adalah dengan membuka Python 3 IDLE atau editor python kegemaran anda.

Langkah 3: "Hello World" di Pygame Zero

Secara lalai, tetingkap Pygame Zero dibuka pada ukuran lebar 800 piksel dengan tinggi 600 piksel. Anda boleh menyesuaikan

saiz tetingkap anda, terdapat dua pemboleh ubah yang telah ditetapkan yang boleh anda tetapkan, jika anda memasukkan WIDTH = 700 TINGGI = 800.

Pygame zero menyediakan fungsi yang telah ditentukan untuk mengendalikan gelung permainan yang biasanya dilakukan:

Fungsi undian ()

Kita dapat menulis fungsi ini ke dalam program kita sama seperti biasanya kita menentukan fungsi di Python.

Pygame Zero mengikuti peraturan pemformatan yang sama dengan Python, jadi anda perlu berhati-hati untuk memasukkan kod anda dengan betul.

#! / usr / bin / python3 # tetapkan jurubahasa

import pgzrun # import modul pgzero WIDTH = 700 # lebar tetingkap HEIGHT = 800 # ketinggian draw def window (): # pygame zero draw function screen. isi ((128, 128, 128)) # isi skrin dengan RGB color screen.draw.text ("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()

Pertama sekali, anda perlu menyimpan fail program anda dan memberikan namanya.

Kemudian buka tetingkap Terminal, pergi ke lokasi fail anda dan ketik:

./.py

Langkah 4: Melukis Pelakon Anda

Melukis Pelakon Anda
Melukis Pelakon Anda

Sekarang kita telah menetapkan tahap kita, kita dapat membuat Pelakon kita, mereka adalah objek dinamik di Pygame Zero.

Kita boleh memuatkan Pelakon dengan menaip di bahagian atas program:

kereta = Pelakon ("kereta lumba")

Di Pygame Zero gambar kita perlu disimpan dalam direktori yang disebut gambar, di sebelah fail program kita. Oleh itu, Pelakon kita akan mencari fail gambar dalam folder gambar yang disebut racecar.png. Ini mungkin berupa fail GIF atau JPG, tetapi disarankan agar gambar anda berupa fail-p.webp

Anda boleh menetapkan kedudukannya di layar dengan mengetik:

kereta.pos = 350, 560

Selepas itu dalam fungsi draw () kita dapat menaip

car.draw () # lukiskan kereta lumba kita pada kedudukan yang ditentukan

Program penuh akan seperti ini:

#! / usr / bin / ular sawa3

import pgzrun WIDTH = 700 # lebar tingkap TINGGI = 800 # tinggi tingkap kereta = Pelakon ("racecar") kereta.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # isi skrin dengan car.draw () pgzrun.go ()

Uji program anda untuk memastikan ini berfungsi.

Langkah 5: Kawal Pelakon

Kawal Pelakon
Kawal Pelakon

Setelah kereta kita dilukis di layar, tahap seterusnya adalah membolehkan pemain memindahkannya.

Kita boleh melakukan ini dengan menekan kekunci. Kita dapat membaca keadaan kekunci ini di dalam fungsi lain yang telah ditentukan yang disebut kemas kini ().

Fungsi kemas kini ()

Fungsi ini diperiksa secara berterusan semasa permainan sedang berjalan.

Kita perlu menulis beberapa kod untuk mengesan penekanan kekunci anak panah dan juga melakukan sesuatu mengenainya.

Oleh itu, kami akan menambahkan fungsi ini ke program kami

kemas kini def ():

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

Garis kod ini akan menggerakkan pelakon kereta ke kiri, kanan, ke depan dan ke belakang.

Langkah 6: Membina Trek

Membina Laluan
Membina Laluan

Sekarang kita mempunyai kereta yang boleh kita pandu, kita memerlukan trek untuk dipacu.

Kami akan membina jalan keluar dari Pelakon, satu baris pada satu masa. Kita perlu membuat beberapa senarai untuk mengawasi Pelakon yang kita buat.

Kita juga perlu menyediakan beberapa lagi pemboleh ubah untuk trek.

Kemudian mari kita buat fungsi baru yang disebut makeTrack (), Fungsi akan menambahkan satu trek Pelakon di sebelah kiri dan satu yang kanan, kedua-duanya menggunakan gambar kosong-p.webp

trackLeft = # senarai untuk menyimpan bareri kiri

trackRight = # senarai untuk menyimpan barries kanan trackCount = 0 # hitung bilangan barries trackPosition = 350 trackWidth = 150 # lebar antara barry kiri dan kanan def makeTrack (): # berfungsi untuk membuat satu barrie di kiri dan kanan global trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Pelakon ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Pelakon ("bare", pos = (trackPosition + trackWidth, 0)))) trackCount + = 1

Perkara seterusnya yang perlu kita lakukan ialah memindahkan bahagian trek ke bawah skrin ke arah kereta.

Mari kita tulis fungsi baru yang disebut updateTrack (), Fungsi ini dikemas kini di mana blok trek akan muncul. Potongan trek dibuat dengan nombor rawak sehingga setiap permainan berbeza.

trackDriction = Salah

SPEED = 4 # menetapkan kelajuan permainan dari randint import rawak # mengimport kelas randint dari modul rawak def updateTrack (): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 sambil b 32: if trackDirection == False: trackPosition + = 16 if trackDirection == True: trackPosition - = 16 if randint (0, 4) == 1: trackDirection = not trackDirection if trackPosition> 700 - trackWidth: trackDirection = Benar jika trackPosition < trackWidth: trackDirection = False makeTrack () # buat trek baru di bahagian atas skrin

Sila rujuk fail zip di bawah bernama "RaceGameDemo".

Sekiranya kita menjalankan kod kita pada masa ini, kita akan melihat trek bergerak ke arah kereta. Satu-satunya masalah ialah kita dapat menggerakkan kereta di atas halangan trek dan kita mahu menyimpan kereta di dalamnya dengan beberapa pengesanan perlanggaran.

Langkah 7: Kerosakan Kereta

Kemalangan kereta
Kemalangan kereta
Kemalangan kereta
Kemalangan kereta
Kemalangan kereta
Kemalangan kereta

Kita perlu memastikan bahawa kereta kita tidak menyentuh landasan Pelakon.

kita juga boleh menguji perlanggaran menggunakan kaedah colliderect () dalam fungsi updateTrack () kita.

Dalam permainan ini, kita akan mempunyai tiga keadaan berbeza dengan permainan yang tersimpan dalam permainan berubah-ubahStatus:

  • gameStatus == 0 # permainan sedang berjalan
  • permainanStatus == 1 # kemalangan kereta
  • gameStatus == 2 # permainan selesai

Kita perlu mengubah fungsi draw () dan fungsi update () kita untuk bertindak balas terhadap pemboleh ubah gameStatus.

Sentuhan terakhir

Yang perlu kita lakukan sekarang ialah memaparkan sesuatu jika gameStatus diatur ke 1 atau 2, misalnya kita harus memaparkan warna merah

bendera, jika kereta itu terhempas. Kita boleh melakukannya dengan kod di bawah:

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

Untuk melihat sama ada kereta telah sampai ke penghujung, kita harus mengira berapa bahagian trek yang telah dibuat dan kemudian mungkin ketika kita sampai ke 200, tetapkan gameStatus ke 2. Kemudian paparkan bendera kotak-kotak:

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

Kami juga akan memaparkan beberapa teks di layar seperti skor permainan semasa.

Lihat senarai kod lengkap untuk melihat bagaimana semua ini sesuai.

Langkah 8: Jalankan Permainan 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 dipasang secara lalai sejak pembebasan Raspbian Jessie pada bulan September 2015.

Cukup kemas kini Raspberry Pi anda dengan menggunakan arahan:

sudo apt-get kemas kini

Pergi ke lokasi fail anda dan taipkan Terminal.

pgzrun.py

Langkah 9: Adakah Anda Menang?

Adakah kamu menang?
Adakah kamu menang?

Anda boleh menjadikan permainan lebih mudah atau lebih sukar dengan mengubah pemboleh ubah trackWidth untuk menjadikan trek lebarnya berbeza. Anda boleh mengubah nilai SPEED untuk menjadikan trek bergerak lebih cepat atau lebih perlahan.

Langkah 10: Kesimpulannya

Pygame Zero adalah pilihan tepat bagi sesiapa sahaja yang ingin mula menulis permainan komputer.

Sekiranya anda mempunyai pertanyaan tentu anda boleh memberikan komen. Untuk melihat lebih banyak mengenai karya saya, sila lawati saluran saya:

myYouTube

myTwitter

myLinkedin

Terima kasih kerana membaca arahan ini ^^ dan selamat mencuba. Jumpa lagi. Ahmed Nouira.

Disyorkan: