Spēle nav nekas bez ievades, un, izmantojot Pygame atbalstu gan peles, gan pieskāriena ievadei, varat nodrošināt, ka spēle ir pieejama.
Mūsdienās skārienekrāna ierīces ir visur. Nav pārsteigums, ka spēļu izstrādātāji arvien vairāk savās spēlēs izmanto pieskāriena ievadi, un ietvari to padara vienkāršāku un vienkāršāku.
PyGame ļauj viegli izveidot spēles un lietojumprogrammas, kas var izmantot pieskāriena ievades priekšrocības.
PyGame pieskārienu atbalsts
PyGame ir iebūvēts atbalsts darbam ar skārienvadiem. Tas ietver atbalstu peles un pirkstu pieskāriena ievadei.
Lai noteiktu peli, varat izmantot pygame. PELES POGA UZ LEJU un pygame. PELES POGA AUGŠU notikumiem. Piemēram:
priekš notikumu iekšā pygame.event.get():
ja event.type == pygame. PELES POGA UZ LEJU:
drukāt ("Nospiesta peles poga")
Lai noteiktu pirkstu pieskārienu ievadi, varat izmantot pygame. PIRKSTI LĪDZI un pygame. PIRKSTS notikumiem. Piemēram:
priekš notikumu iekšā pygame.event.get():
ja event.type == pygame. PIRKSTI DZEJĀ:
drukāt ("Pirsts pieskārās ekrānam")
Vienkāršas spēles izveide
Jūs varat atrast visu kodu šis GitHub Repo.
Sāciet, izveidojot vienkāršu spēli. Šī spēle sastāvēs no spēlētāja varoņa, ar kuru varēsiet pārvietoties pa ekrānu, izmantojot skārienvadus. Lai to izdarītu, jums būs jāizveido spēles cilpa un spēlētāja varonis.
Pirms sākat, pārliecinieties, ka jums ir pip ir instalēts jūsu ierīcē, pēc tam izmantojiet šo komandu, lai instalētu PyGame modulis:
pip instalēt pygame
Tagad importējiet PyGame moduli savā spēles kodā:
imports pygame
pygame.init()
Pēc tam izveidojiet spēles logu un spēles objektu:
# Iestatiet displeju
izmērs = (400, 400)
ekrāns = pygame.display.set_mode (izmērs)# Izveidojiet spēlētāja objektu
spēlētājs = pygame. Surface((50, 50))
player.fill((255, 0, 0))
# Iestatiet atskaņotāja sākotnējo pozīciju
player_pos = [175, 175]
Visbeidzot, izveidojiet spēles cilpu:
# Spēles cilpa
skriešana = Taisnībakamēr darbojas:
# Pārbaudiet notikumus
priekš notikumu iekšā pygame.event.get():
ja event.type == pygame. IZIET:
skriešana = Nepatiesi# Atjauniniet spēlētāja pozīciju
player_pos[0] += 5
player_pos[1] += 5# Uzzīmējiet atskaņotāju
screen.blit (player, player_pos)
# Atjauniniet displeju
pygame.display.update()
Ņemiet vērā, ka iepriekš minētais kods rada tikai vienkāršu spēli, kurā spēlētāja varonis pārvietojas pa ekrānu. Lai padarītu spēli interesantāku, varat pievienot fiziku un sadursmes radīt šķēršļus, kas spēlētājam jāpārvar.
Peles pieskāriena ievades atskaņotāja kustībai
Tagad, kad jums ir spēle ar spēlētāja tēlu, varat sākt pievienot skārienvadus. Lai to izdarītu, peles ievadēm būs jāpievieno notikumu apstrādātājs. Pievienojiet pygame. PELES POGA UZ LEJU un pygame. PELES POGA AUGŠU notikumus spēles cilpā.
Izveidojiet notikumu apdarinātāju peles ievadēm. Kad spēlētājs nospiež peles pogu, atjauniniet varoņa pozīciju uz pašreizējo peles pozīciju. Programma ignorēs peles pogas atlaišanu, jo tādā gadījumā tai nav jāveic nekādas darbības.
# Spēles cilpa
skriešana = Taisnībakamēr darbojas:
# Pārbaudiet notikumus
priekš notikumu iekšā pygame.event.get():
ja event.type == pygame. IZIET:
skriešana = Nepatiesi
# Pārbaudiet, vai nav peles ievades
elifs event.type == pygame. PELES POGA UZ LEJU:
pele_x, peles_y = notikums.poz
player_pos[0] = pele_x
player_pos[1] = peles_y
elifs event.type == pygame. MOUSE BUTTONUP:
caurlaide
screen.fill((0, 0, 0))# Uzzīmējiet atskaņotāju
screen.blit (player, player_pos)
# Atjauniniet displeju
pygame.display.update()
Varat arī pievienot papildu loģiku notikumu apstrādātājam, lai atskaņotājs pārvietotos, reaģējot uz peles ievadi.
Pirkstu pieskāriena ievades atskaņotāja kustībām
Papildus peles ievadēm varat pievienot arī pirkstu pieskārienu ievades. Lai to izdarītu, jums būs jāpievieno notikumu apstrādātājs pirksta pieskāriena ievadēm.
Pievienojiet pygame. PIRKSTI LĪDZI un pygame. PIRKSTS spēles cikla notikumi:
# Spēles cilpa
skriešana = Taisnībakamēr darbojas:
# Pārbaudiet notikumus
priekš notikumu iekšā pygame.event.get():
ja event.type == pygame. IZIET:
skriešana = Nepatiesi
# Pārbaudiet, vai nav peles ievades
elifs event.type == pygame. PELES POGA UZ LEJU:
pele_x, peles_y = notikums.poz
player_pos[0] = pele_x
player_pos[1] = peles_y
elifs event.type == pygame. MOUSE BUTTONUP:
caurlaide
# Pārbaudiet, vai nav ievadīti pirksti
elifs event.type == pygame. PIRKSTI DZEJĀ:
pirksts_x, pirksts_y = notikums.poz
player_pos[0] = pirksts_x
player_pos[1] = pirksts_y
elifs event.type == pygame. FINGERUP:
caurlaidescreen.fill((0, 0, 0))
# Uzzīmējiet atskaņotāju
screen.blit (player, player_pos)
# Atjauniniet displeju
pygame.display.update()
Ievērojiet, cik tas ir līdzīgs peles ievades notikumu apstrādātājam. Šis notikumu apstrādātājs atjaunina varoņa pozīciju, kad spēlētājs nospiež pirkstu uz ekrāna. Kad viņi atlaiž pirkstu, nekas nenotiek. Tas ļauj jums izveidot spēli, kuru varat vadīt, izmantojot gan peles, gan pirksta pieskārienu ievadi. Ņemiet vērā, ka varat izmantot arī citus pasākumus, piemēram, pygame. PIRKSTI KUSTĪBA reaģēt uz pirkstu kustībām.
Pygame papildu pieskāriena funkcijas
Izmantojot pamata pieskāriena funkcijas, varat sākt pievienot papildu funkcijas. PyGame ir dažas iebūvētas funkcijas, kas var palīdzēt pievienot spēlei vairāk pieskāriena funkciju.
Pirmā iezīme ir pygame.mouse.set_visible() funkciju. Šī funkcija ļauj paslēpt peles kursoru. Tas var būt noderīgi, ja vēlaties izveidot spēli, kas izmanto tikai pieskārienu ievadi, nevis peli.
Šeit ir piemērs, kā izmantot set_visible() funkcija:
pygame.mouse.set_visible(Nepatiesi)
The pygame.mouse.set_pos() funkcija iestata peles kursoru noteiktā vietā uz ekrāna. Tas ir noderīgi, ja vēlaties pārvietot peli uz noteiktu vietu, neizmantojot peles ievades.
Tālāk ir sniegts piemērs, kā lietot set_pos() funkcija:
pygame.mouse.set_pos(200, 200)
Jūs varat izmantot pygame.mouse.get_rel() funkcija, lai iegūtu peles relatīvo kustību. Varat to izmantot, lai noteiktu, cik tālu pele ir pārvietojusies kopš pēdējā peles notikuma.
Tādā veidā jūs varat izmantot get_rel() funkcija:
dx, dy = pygame.mouse.get_rel()
Visbeidzot, jūs varat izmantot pygame.mouse.get_pressed() funkciju, lai pārbaudītu, vai atskaņotājs nospiež kādu peles pogu. Tas var būt noderīgi, veidojot spēles ar peles/skārienvadības ierīcēm.
Tālāk ir sniegts piemērs, kā lietot get_pressed() funkcija:
mouse_buttons = pygame.mouse.get_pressed()
PyGame nodrošina arī a PELES RATIENS notikuma veids, ko varat izmantot, lai noteiktu peles ritenīti. Tā atbalsta gan vertikālo, gan horizontālo ritināšanu.
Šeit ir piemērs:
priekš notikumu iekšā pygame.event.get():
ja event.type == pygame. PELES RATIENS:
ja notikums.y > 0:
drukāt ("Peles ritenis ritināts uz augšu")
elifs notikums.y < 0:
drukāt ("Peles ritenis ritināts uz leju")
Izveidojiet interaktīvas spēles ar skārienvadu
Izmantojot skārienjutīgās ievades, tagad varat izveidot interaktīvas spēles. Piemēram, varat izveidot spēli, kurā spēlētājs var pārvietoties pa ekrānu, izmantojot pieskāriena ievadi. Varat arī izveidot uz žestiem balstītas spēles, kurās spēlētājs var veikt dažādus žestus, lai aktivizētu darbības spēlē.
Iespējas ir bezgalīgas, veidojot spēles ar pieskāriena ievadi. Ar PyGame palīdzību jūs varat izveidot spēles, kas ir gan jautras, gan interaktīvas. Tāpēc dodieties ārā un sāciet radīt!