Mundarija:

Birinchi poyga o'yini yarating: 10 qadam
Birinchi poyga o'yini yarating: 10 qadam

Video: Birinchi poyga o'yini yarating: 10 qadam

Video: Birinchi poyga o'yini yarating: 10 qadam
Video: Davlat raqam belgisini o‘zgacha usulda yashirgan haydovchi qo‘lga tushdi 2024, Iyun
Anonim
Image
Image
Rasm
Rasm

Agar siz Python -da kod yozgan bo'lsangiz va o'yin yozmoqchi bo'lsangiz, Pygame Zero -da bo'lishi mumkin.

Bu darslikda biz oddiy poyga o'yini yozamiz.

1 -qadam: keng qamrovli sharh

Pygame moduli Python -da o'yin yozishga yordam beradigan ko'plab funktsiyalarni qo'shadi.

Pygame Zero bir qadam oldinga siljiydi, bu sizga o'yinlarning barcha tsikllarini yaratish va dastur tuzilmasini o'rnatish jarayonini o'tkazib yuborishga imkon beradi.

Pygame Zero - bu Raspberry Pi yoki Linux -ning har qanday kompyuterida kompyuter o'yinlarini yozishni boshlamoqchi bo'lganlar uchun ajoyib tanlov.

Sizga kerak bo'ladi:

  • Linux OS bilan ishlaydigan mashina
  • Python dasturi yozish uchun muharrir
  • Klaviatura
  • Bir oz tasavvur

Fayllar:

github.com/AhmNouira/-Racing-Game

2 -qadam: old shartlar

Birinchidan, men noutbukni Ubuntu 18.04 OS bilan ishlataman. Keyin biz 8 -bosqichda Raspberry Pi -da o'yinni o'tkazamiz.

Ushbu qo'llanmani davom ettirishdan oldin, sudo huquqlariga ega foydalanuvchi sifatida tizimga kirganingizga ishonch hosil qiling.

Python 3 uchun pip o'rnatish

Quyidagi buyruq yordamida paketlar ro'yxatini yangilashdan boshlang:

sudo apt yangilash

Python 3 uchun pip o'rnatish uchun quyidagi buyruqdan foydalaning:

sudo apt install python3-pip

pip versiyasini tekshirish orqali o'rnatishni tekshiring:

pip3 -versiya

Pygame Zero -ni o'rnatish

pip3 o'rnatish pgzero --user

Bu Pygame -ni ham o'rnatadi. Oldindan tuzilgan Pygame to'plamlari

Sizning sayohatingizdagi birinchi qadam Python 3 IDLE yoki sevimli python muharririni ochish bo'ladi.

3 -qadam: Pygame Zero -da "Salom dunyo"

Odatiy bo'lib, Pygame Zero oynasi kengligi 800 piksel va balandligi 600 piksel o'lchamida ochiladi. Siz sozlashingiz mumkin

Agar siz WIDTH = 700 HIGH = 800 ni o'z ichiga olsangiz, derazangizning o'lchamini ikkita oldindan belgilash mumkin.

Pygame zero o'yinni boshqarish uchun oldindan belgilangan funktsiyalarni beradi:

Draw () funktsiyasi

Biz bu funktsiyani dasturimizga Python -dagi funktsiyani aniqlaganimiz kabi yozishimiz mumkin.

Pygame Zero Python bilan bir xil formatlash qoidalariga amal qiladi, shuning uchun siz o'z kodingizni to'g'ri kiritishga e'tibor qaratishingiz kerak bo'ladi.

#!/usr/bin/python3 # tarjimonni o'rnating

import pgzrun # import pgzero moduli WIDTH = 700 # oynaning kengligi HEIGHT = 800 # oynaning balandligi def draw (): # pygame nol chizish funksiyasi ekrani. to'ldirish ((128, 128, 128)) # ekranni RGB bilan to'ldirish rangli ekran.draw.text ("Salom dunyo!", (270, 320), # durang "Salom dunyo!" color = (255, 255, 255), shrift o'lchami = 40) pgzrun.go ()

Birinchidan, siz dastur faylini saqlashingiz va unga nom berishingiz kerak.

Keyin terminal oynasini oching, fayl manzilingizga o'ting va yozing:

./.py

4 -qadam: aktyoringizning rasmini chizish

Aktyoringizning rasmini chizish
Aktyoringizning rasmini chizish

Endi bizda sahna to'plami bor, biz aktyorlarimizni yaratishimiz mumkin, ular Pygame Zero -dagi dinamik ob'ektlar.

Biz aktyorni dasturning yuqori qismiga yozib yuklashimiz mumkin:

mashina = aktyor ("poyga mashinasi")

Pygame Zero -da bizning rasmlarimiz dastur deb nomlangan katalogda saqlanishi kerak, shuning uchun aktyorimiz racecar.png deb nomlangan rasmlar papkasida rasm faylini qidiradi. Bu GIF yoki-j.webp

Siz uning o'rnini ekranda o'rnatishingiz mumkin:

mashina.pos = 350, 560

Shundan so'ng, draw () funktsiyasida biz yozishimiz mumkin

car.draw () # poyga mashinamizni belgilangan joyga torting

To'liq dastur shunday bo'ladi:

#!/usr/bin/python3

import pgzrun WIDTH = 700 # oynaning kengligi HEIGHT = 800 # oynaning balandligi = Actor ("racecar") car.pos = 350, 560 def draw (): # pygame zero draw funksiyasi ekrani.fill ((128, 128, 128)) # ekranni car.draw () pgzrun.go () bilan to'ldiring

Ishlayotganingizga ishonch hosil qilish uchun dasturingizni sinab ko'ring.

5 -qadam: aktyorni boshqaring

Aktyorni nazorat qilish
Aktyorni nazorat qilish

Mashinamizni ekranda chizganimizdan so'ng, keyingi bosqich - o'yinchini uni harakatlantirishiga imkon berish.

Biz buni tugmachalarni bosib qilishimiz mumkin. Biz ushbu kalitlarning holatini update () deb nomlangan boshqa oldindan belgilangan funktsiyadan o'qishimiz mumkin.

Update () funktsiyasi

O'yin ishlayotgan vaqtda bu funktsiya doimiy ravishda tekshiriladi.

Biz o'q tugmalarining bosilishini aniqlash va bu haqda biror narsa qilish uchun kod yozishimiz kerak.

Shunday qilib, biz bu funktsiyani dasturimizga qo'shamiz

def update ():

agar klaviatura chapda: car.x -= 2 bo'lsa klaviatura. o'ngda: car.x += 2 bo'lsa klaviatura.up: car.y -= 2 bo'lsa klaviatura. pastga: car.y += 2

Bu kod satrlari aktyor mashinasini chapga, o'ngga, oldinga va orqaga siljitadi.

6 -qadam: trekni qurish

Yo'lni qurish
Yo'lni qurish

Endi biz boshqaradigan mashinaga ega bo'lganimiz uchun, uning yurishi uchun yo'l kerak.

Biz o'z trekimizni aktyorlardan birma -bir quramiz. Biz yaratgan aktyorlarni kuzatib borish uchun bizga ba'zi ro'yxatlar tuzish kerak bo'ladi.

Shuningdek, biz trek uchun yana bir nechta o'zgaruvchini o'rnatishimiz kerak bo'ladi.

Keling, makeTrack () deb nomlangan yangi funktsiyani yarataylik, funktsiya chap va o'ng tomonda bitta aktyor qo'shadi, ikkalasi ham rasmlarimiz papkasida bare-p.webp

trackLeft = Chap barglarni saqlash uchun # ro'yxat

trackRight = O'ng tog'oralarni saqlash uchun # ro'yxat trackCount = 0 # barrikalar sonini hisoblang trackPosition = 350 trackWidth = 150 # chap va o'ng panjara orasidagi kenglik def makeTrack (): # chap va o'ng global trekda bitta barri qilish uchun # funktsiya., trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Aktyor ("yalang'och", pos = (trackPosition-trackWidth, 0))) trackRight.append (Aktyor ("yalang'och", pos = (trackPosition + trackWidth, 0))) trackCount += 1

Biz qilishimiz kerak bo'lgan keyingi narsa - ekranning pastki qismlarini mashina tomon siljitish.

Keling, updateTrack () deb nomlangan yangi funktsiyani yozamiz, bu trek bloklari paydo bo'ladigan joyni yangilaydi, trek qismlari tasodifiy sonlar yordamida yaratilgan, shuning uchun har bir ijro boshqacha.

trackDriction = noto'g'ri

SPEED = 4 # tasodifiy importdan o'yin tezligini o'rnatadi # randint sinfini tasodifiy moduldan import updateTrack (): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 b 32: if trackDirection == False: trackPiroj += 16 agar trackDirection == To'g'ri: trackPosition - = 16 bo'lsa randint (0, 4) == 1: trackDirection = not trackDirection if trackPosition> 700 - trackWidth: trackDirection = TrackPosition < trackWidth: trackDirection = False makeTrack () # ekranning yuqori qismida yangi trek yaratish.

Iltimos, quyida "RaceGameDemo" deb nomlangan zip faylini ko'ring.

Agar biz hozirda o'z kodimizni ishlatsak, biz mashinaga qarab yugurayotgan trekni ko'rishimiz kerak. Yagona muammo shundaki, biz mashinani yo'l to'siqlari bo'ylab harakatlantira olamiz va biz mashinani to'qnashuvni aniqlash bilan ushlab turishni xohlaymiz.

7 -qadam: avtohalokat

Avtohalokat
Avtohalokat
Avtohalokat
Avtohalokat
Avtohalokat
Avtohalokat

Biz mashinamiz aktyorlar trekka tegmasligiga ishonch hosil qilishimiz kerak.

updateTrack () funktsiyamizdagi colliderect () usuli yordamida to'qnashuvlarni tekshirib ko'rishimiz mumkin.

Bu o'yinda biz o'zgaruvchan gameStatus -da saqlanadigan o'yinning uchta turli holatiga ega bo'lamiz:

  • gameStatus == 0 # o'yin ishlamoqda
  • gameStatus == 1 # avtohalokat
  • gameStatus == 2 # o'yin tugadi

GameStatus o'zgaruvchisiga javob berish uchun draw () funktsiyasini va update () funktsiyasini o'zgartirishimiz kerak bo'ladi.

Tugatish ishlari

Biz hozir qilishimiz kerak bo'lgan narsa, agar gameStatus 1 yoki 2 ga o'rnatilgan bo'lsa, masalan, qizil rangni ko'rsatishimiz kerak.

bayroq, agar mashina qulagan bo'lsa. Buni quyidagi kod yordamida qilishimiz mumkin:

screen.blit ("qizil bayroq", (230, 230))

Mashinaning tugashini bilish uchun biz qancha trek bo'limlari yaratilganligini hisoblashimiz kerak, keyin 200 ga yetganda, gameStatus -ni 2 -ga qo'ying, keyin katakli bayroqni ko'rsating:

screen.blit ("tugatish bayrog'i", (230, 230))

Shuningdek, biz ekranda o'yinning joriy hisobi kabi matnni ko'rsatamiz.

Kodlarning to'liq ro'yxatini ko'rib chiqing va bularning barchasi bir -biriga qanday mos kelishini bilib oling.

8 -qadam: O'yinni Raspberry Pi -da ishga tushiring

Raspberry Pi -da o'yinni ishga tushiring
Raspberry Pi -da o'yinni ishga tushiring
Raspberry Pi -da o'yinni ishga tushiring
Raspberry Pi -da o'yinni ishga tushiring

Raspberry Pi -da pgzero sukut bo'yicha 2015 yil sentyabr oyida Raspbian Jessie chiqarilgandan beri o'rnatilgan.

Raspberry Pi -ni quyidagi buyruq yordamida yangilang:

sudo apt-get yangilanishi

Fayl joylashuviga o'ting va terminalni kiriting.

pgzrun.py

9 -qadam: Siz yutdingizmi?

Siz yutdingizmi?
Siz yutdingizmi?

Yo'lni boshqa kenglikka aylantirish uchun trackWidth o'zgaruvchisini o'zgartirib, o'yinni osonlashtirishi yoki qiyinlashtirishi mumkin. Yo'lning tez yoki sekin harakatlanishi uchun SPEED qiymatini o'zgartirishingiz mumkin.

10 -qadam: Xulosa

Pygame Zero - kompyuter o'yinlarini yozishni boshlamoqchi bo'lganlar uchun ajoyib tanlov.

Agar sizda biron bir savol bo'lsa, izoh qoldirishingiz mumkin. Mening ishlarim haqida ko'proq ma'lumot olish uchun mening kanalimga tashrif buyuring:

myYouTube

myTwitter

myLinkedin

Buni o'qiganingiz uchun tashakkur ^^ va kuningiz yaxshi o'tsin. Ko'rishguncha. Ahmad Nouira.

Tavsiya: