Създайте първата си състезателна игра: 10 стъпки
Създайте първата си състезателна игра: 10 стъпки
Anonim
Image
Image
Образ
Образ

Ако сте направили малко кодиране на Python и искате да напишете игра, която може да имате в Pygame Zero.

В този урок ще пишем проста състезателна игра.

Стъпка 1: Широкият преглед

Модулът Pygame добавя много функции, които ви помагат да пишете игри в Python.

Pygame Zero отива още една крачка напред, за да ви позволи да пропуснете тромавия процес на създаване на всички тези контури на играта и настройване на структурата на вашата програма.

Pygame Zero е чудесен избор за всеки, който иска да започне да пише компютърни игри на Raspberry Pi или на всяка Linux машина.

Ще имаш нужда:

  • Машина, която работи с Linux OS
  • Редактор за писане на програма на python
  • Клавиатура
  • Малко въображение

Файлове:

github.com/AhmNouira/-Racing-Game

Стъпка 2: Предпоставки

Първо ще използвам лаптопа си с Ubuntu 18.04 OS. След това ще стартираме играта на Raspberry Pi в стъпка 8.

Преди да продължите с този урок, уверете се, че сте влезли като потребител с sudo права.

Инсталиране на pip за Python 3

Започнете, като актуализирате списъка с пакети, като използвате следната команда:

sudo apt актуализация

Използвайте следната команда, за да инсталирате pip за Python 3:

sudo apt инсталирате python3-pip

проверете инсталацията, като проверите версията на pip:

pip3 -версия

Инсталиране на Pygame Zero

pip3 инсталирайте pgzero --user

Това също ще инсталира Pygame. Предварително компилирани пакети Pygame

Така че първата стъпка във вашето пътуване ще бъде отварянето на Python 3 IDLE или любимия ви редактор на python.

Стъпка 3: „Hello World“в Pygame Zero

По подразбиране прозорецът Pygame Zero се отваря с размер 800 пиксела ширина и 600 пиксела височина. Можете да персонализирате

размера на вашия прозорец, можете да зададете две предварително зададени променливи, ако включите WIDTH = 700 HIGH = 800.

Pygame zero предоставя предварително дефинирани функции за обработка на игралния цикъл, който обикновено изпълнява:

Функцията draw ()

Можем да запишем тази функция в нашата програма по същия начин, както обикновено дефинираме функция в Python.

Pygame Zero следва същите правила за форматиране като Python, така че ще трябва да се погрижите да отстъпите правилно кода си.

#!/usr/bin/python3 # задайте интерпретатора

import pgzrun # import pgzero module WIDTH = 700 # ширина на прозореца HEIGHT = 800 # височина на прозореца def draw draw (): # pygame нулева функция за изтегляне screen.fill ((128, 128, 128)) # запълнете екрана с RGB цветен екран.draw.text ("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()

Първо трябва да запазите програмния файл и да му дадете име.

След това отворете прозорец на терминала, отидете на местоположението на вашия файл и въведете:

./.py

Стъпка 4: Рисуване на вашия актьор

Рисуване на вашия актьор
Рисуване на вашия актьор

Сега, когато имаме сценична настройка, можем да създадем нашите Актьори, те са динамични обекти в Pygame Zero.

Можем да заредим Актьор, като напишем в горната част на програмата:

автомобил = Актьор ("състезателна кола")

В Pygame Zero нашите изображения трябва да се съхраняват в директория, наречена images, до нашия програмен файл, така че нашият Актьор ще търси файл с изображение в папката с изображения, наречена racecar.png. Това може да е GIF или-j.webp

Можете да зададете позицията му на екрана, като въведете:

car.pos = 350, 560

След това в нашата функция draw () можем да въведем

car.draw () # изтеглете нашата състезателна кола на определената й позиция

Пълната програма ще бъде така:

#!/usr/bin/python3

import pgzrun WIDTH = 700 # ширина на прозореца HEIGHT = 800 # височина на прозореца car = Actor ("racecar") car.pos = 350, 560 def draw (): # pygame нулева функция draw draw.fill ((128, 128, 128)) # попълнете екрана с car.draw () pgzrun.go ()

Тествайте програмата си, за да се уверите, че тя работи.

Стъпка 5: Контролирайте актьора

Контролирайте актьора
Контролирайте актьора

След като нарисуваме колата си на екрана, следващият етап е да дадем възможност на играча да я премести.

Можем да направим това с натискане на клавиши. Можем да прочетем състоянието на тези ключове в друга предварително дефинирана функция, наречена update ().

Функцията update ()

Тази функция се проверява непрекъснато, докато играта работи.

Трябва да напишем някакъв код, за да открием натискането на клавиши със стрелки, както и да направим нещо по въпроса.

Така че ще добавим тази функция към нашата програма

def update ():

ако keyboard.left: car.x -= 2 if keyboard.right: car.x += 2 if keyboard.up: car.y -= 2 if keyboard.down: car.y += 2

Тези редове от код ще преместват актьора наляво, надясно, напред и назад.

Стъпка 6: Изграждане на пистата

Изграждане на пистата
Изграждане на пистата

Сега, когато имаме кола, която можем да управляваме, се нуждаем от писта, по която да караме.

Ще изграждаме песента си от Актьори, един по един. Ще трябва да направим някои списъци, за да следим актьорите, които създаваме.

Също така ще трябва да настроим още няколко променливи за пистата.

След това нека да направим нова функция, наречена makeTrack (), Функцията ще добави един трек Actor отляво и един отдясно, като и двете използват изображението bare-p.webp

trackLeft = # списък за съхраняване на левите бариери

trackRight = # списък за съхраняване на десните бариери trackCount = 0 # пребройте броя на бариерите trackPosition = 350 trackWidth = 150 # ширина между левия и десния бариери def makeTrack (): # функция, за да направите една бариера в лявата и дясната глобална trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount += 1

Следващото нещо, което трябва да направим, е да преместим участъците от следата надолу по екрана към колата.

Нека напишем нова функция, наречена updateTrack (), Тази функция се актуализира, където ще се появят блоковете на песните. Парчетата са създадени от случайни числа, така че всяко възпроизвеждане е различно.

trackDriction = False

SPEED = 4 # задава скоростта на играта от случаен импорт randint # импортира класа randint от произволен модул def updateTrack (): глобален trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0, докато b 32: ако trackDirection == False: trackPosition += 16 if trackDirection == True: trackPosition - = 16 if randint (0, 4) == 1: trackDirection = not trackDirection if trackPosition> 700 - trackWidth: trackDirection = True ако trackPosition < trackWidth: trackDirection = False makeTrack () # създайте нова песен в горната част на екрана

Моля, вижте по -долу zip файла, наречен "RaceGameDemo".

Ако изпълним нашия код в момента, трябва да видим следа, която се извива към колата. Единственият проблем е, че можем да преместваме колата през бариерите и искаме да задържим колата вътре в тях с известно откриване на сблъсък.

Стъпка 7: Автомобилна катастрофа

Автомобилна катастрофа
Автомобилна катастрофа
Автомобилна катастрофа
Автомобилна катастрофа
Автомобилна катастрофа
Автомобилна катастрофа

Трябва да се уверим, че колата ни не докосва актьорите.

можем също така да тестваме за сблъсъци, използвайки метода colliderect () в нашата функция updateTrack ().

В тази игра ще имаме три различни състояния на играта, съхранявани в нашата променлива gameStatus:

  • gameStatus == 0 # играта работи
  • gameStatus == 1 # автомобилна катастрофа
  • gameStatus == 2 # играта приключи

Ще трябва да променим функцията draw () и update (), за да отговорим на променливата gameStatus.

Довършителни щрихи

Всичко, което трябва да направим сега, е да покажем нещо, ако gameStatus е настроено на 1 или 2, например трябва да покажем червено

флаг, ако колата се е разбила. Можем да направим това с кода по -долу:

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

За да видим дали колата е достигнала финала, трябва да преброим колко участъци от пистата са създадени и след това може би, когато стигнем до 200, задайте gameStatus на 2. След това покажете карирания флаг:

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

Също така ще покажем текст на екрана като текущия резултат на играта.

Разгледайте пълния списък с кодове, за да видите как всичко това съвпада.

Стъпка 8: Стартирайте играта на Raspberry Pi

Стартирайте играта на Raspberry Pi
Стартирайте играта на Raspberry Pi
Стартирайте играта на Raspberry Pi
Стартирайте играта на Raspberry Pi

На Raspberry Pi pgzero е инсталиран по подразбиране от пускането на Raspbian Jessie през септември 2015 г.

Просто актуализирайте Raspberry Pi с помощта на командата:

sudo apt-get update

Отидете на местоположението на вашия файл и въведете терминала.

pgzrun.py

Стъпка 9: Спечелихте ли?

Спечели ли?
Спечели ли?

Можете да направите играта по -лесна или по -трудна, като промените променливата trackWidth, за да направите песента с различна ширина. Можете да промените стойността на SPEED, за да направите движението по -бързо или по -бавно.

Стъпка 10: Заключение

Pygame Zero е чудесен избор за всеки, който иска да започне да пише компютърни игри.

Ако имате някакви въпроси, разбира се, можете да оставите коментар. За да видите повече за моите творби, моля, посетете канала ми:

myYouTube

myTwitter

myLinkedin

Благодаря, че прочетохте тази инструкция ^^ и приятен ден. Ще се видим. Ахмед Нуира.

Препоръчано: