Et spill er ingenting uten input, og med Pygames støtte for både mus- og berøringsinngang kan du sikre at spillet ditt er tilgjengelig.
I denne tiden er berøringsskjermenheter overalt. Det er ingen overraskelse at spillutviklere i økende grad bruker berøringsinndata i spillene sine, og rammeverk gjør dette enklere og enklere.
PyGame gjør det enkelt å lage spill og applikasjoner som kan dra nytte av berøringsinnganger.
PyGames Touch Support
PyGame har innebygd støtte for arbeid med berøringsinnganger. Dette inkluderer støtte for mus- og fingerberøringsinnganger.
For å oppdage en mus kan du bruke pygame. MUSKNAPPEN NED og pygame. MUSEKNAPP OPP arrangementer. For eksempel:
til begivenhet i pygame.event.get():
hvis event.type == pygame. MUSKNAPP NED:
skrive ut("Museknapp trykket")
For å oppdage fingerberøringsinnganger kan du bruke pygame. FINGEREN NED og pygame. FINGERUPP arrangementer. For eksempel:
til begivenhet i pygame.event.get():
hvis event.type == pygame. FINGEREN NED:
skrive ut("Finger berørte skjermen")
Opprette et enkelt spill
Du finner all koden i denne GitHub-repoen.
Start med å lage et enkelt spill. Dette spillet vil bestå av en spillerkarakter som du kan flytte rundt på skjermen ved hjelp av berøringsinnganger. For å gjøre dette må du lage en spillløkke og en spillerkarakter.
Før du begynner, sørg for at du har pip installert på enheten din, og bruk deretter følgende kommando for å installere PyGame modul:
pip installer pygame
Importer nå PyGame-modulen i spillkoden din:
import pygame
pygame.init()
Deretter oppretter du spillvinduet og et spillobjekt:
# Sett opp skjermen
størrelse = (400, 400)
skjerm = pygame.display.set_mode (størrelse)# Lag et spillerobjekt
spiller = pygame. Flate((50, 50))
player.fill((255, 0, 0))
# Still inn startposisjonen til spilleren
player_pos = [175, 175]
Til slutt lager du spillløkken:
# Spillsløyfen
kjører = ektesamtidig som løping:
# Se etter hendelser
til begivenhet i pygame.event.get():
hvis event.type == pygame. SLUTTE:
kjører = Falsk# Oppdater spillerposisjonen
player_pos[0] += 5
player_pos[1] += 5# Tegn spilleren
screen.blit (player, player_pos)
# Oppdater skjermen
pygame.display.update()
Merk at koden ovenfor bare skaper et enkelt spill der spillerkarakteren beveger seg rundt på skjermen. For å gjøre spillet mer interessant, kan du legge til fysikk og kollisjoner å skape hindringer for spilleren å overvinne.
Mouse Touch-innganger for spillerbevegelse
Nå som du har et spill med en spillerkarakter, kan du begynne å legge til berøringsinndata. For å gjøre dette, må du legge til en hendelsesbehandler for museinngangene. Legg til pygame. MUSKNAPPEN NED og pygame. MUSEKNAPP OPP hendelser til spillsløyfen.
Opprett en hendelsesbehandler for museinngangene. Når en spiller trykker på museknappen, oppdater karakterens posisjon til gjeldende museposisjon. Programmet vil ignorere utgivelsen av museknappen, siden det ikke trenger å gjøre noe i så fall.
# Spillsløyfen
kjører = ektesamtidig som løping:
# Se etter hendelser
til begivenhet i pygame.event.get():
hvis event.type == pygame. SLUTTE:
kjører = Falsk
# Se etter museinnganger
elif event.type == pygame. MUSKNAPP NED:
mus_x, mus_y = hendelse.pos
player_pos[0] = mus_x
player_pos[1] = mus_y
elif event.type == pygame. MUSEKNAPP:
sende
screen.fill((0, 0, 0))# Tegn spilleren
screen.blit (player, player_pos)
# Oppdater skjermen
pygame.display.update()
Du kan også legge til ekstra logikk til hendelsesbehandleren for å få spilleren til å bevege seg som svar på museinngangen.
Fingerberøringsinnganger for spillerbevegelse
I tillegg til museinnganger kan du også legge til fingerberøringsinnganger. For å gjøre dette, må du legge til en hendelsesbehandler for finger-touch-inngangene.
Legg til pygame. FINGEREN NED og pygame. FINGERUPP hendelser til spillsløyfen:
# Spillsløyfen
kjører = ektesamtidig som løping:
# Se etter hendelser
til begivenhet i pygame.event.get():
hvis event.type == pygame. SLUTTE:
kjører = Falsk
# Se etter museinnganger
elif event.type == pygame. MUSKNAPP NED:
mus_x, mus_y = hendelse.pos
player_pos[0] = mus_x
player_pos[1] = mus_y
elif event.type == pygame. MUSEKNAPP:
sende
# Se etter fingerinnganger
elif event.type == pygame. FINGEREN NED:
finger_x, finger_y = event.pos
player_pos[0] = finger_x
player_pos[1] = finger_y
elif event.type == pygame. FINGERUP:
sendescreen.fill((0, 0, 0))
# Tegn spilleren
screen.blit (player, player_pos)
# Oppdater skjermen
pygame.display.update()
Legg merke til hvor lik dette er til hendelsesbehandleren for museinndata. Denne hendelsesbehandleren oppdaterer karakterens posisjon når spilleren trykker fingeren på skjermen. Når de slipper fingeren, skjer det ingenting. Dette lar deg lage et spill du kan kontrollere ved hjelp av både mus- og fingerberøringsinnganger. Husk at du også kan bruke andre arrangementer som f.eks pygame. FINGREBEVEGELSE å reagere på fingerbevegelser.
Pygames ekstra berøringsfunksjoner
Med de grunnleggende berøringsfunksjonene på plass, kan du begynne å legge til mer avanserte funksjoner. PyGame har noen få innebygde funksjoner som kan hjelpe deg å legge til flere berøringsfunksjoner i spillet ditt.
Den første funksjonen er pygame.mouse.set_visible() funksjon. Denne funksjonen lar deg skjule musepekeren. Dette kan være nyttig hvis du vil lage et spill som bare bruker berøringsinnganger og ikke musen.
Her er et eksempel på hvordan du bruker set_visible() funksjon:
pygame.mouse.set_visible(Falsk)
De pygame.mouse.set_pos() funksjonen setter musepekeren til en bestemt posisjon på skjermen. Dette er nyttig hvis du vil flytte musen til et bestemt sted uten å bruke museinngangene.
Nedenfor er et eksempel på hvordan du bruker set_pos() funksjon:
pygame.mouse.set_pos(200, 200)
Du kan bruke pygame.mouse.get_rel() funksjon for å få den relative bevegelsen til musen. Du kan bruke denne til å oppdage hvor langt musen har beveget seg siden siste musehendelse.
Slik kan du bruke get_rel() funksjon:
dx, dy = pygame.mouse.get_rel()
Til slutt kan du bruke pygame.mouse.get_pressed() funksjon for å sjekke om spilleren trykker på en museknapp. Dette kan være nyttig når du lager spill med mus/berøringskontroller.
Nedenfor er et eksempel på hvordan du bruker get_pressed() funksjon:
mouse_buttons = pygame.mouse.get_pressed()
PyGame tilbyr også en MUS HJUL hendelsestype som du kan bruke til å oppdage musehjulrulling. Den støtter både vertikale og horisontale ruller.
Her er et eksempel:
til begivenhet i pygame.event.get():
hvis event.type == pygame. MUS HJUL:
hvis event.y > 0:
skrive ut("Mushjul rullet opp")
elif event.y < 0:
skrive ut("Mushjul rullet ned")
Lag interaktive spill med berøringsinnganger
Med berøringsinngangene på plass kan du nå lage interaktive spill. Du kan for eksempel lage et spill der spilleren kan bevege seg rundt på skjermen ved hjelp av berøringsinnganger. Du kan også lage bevegelsesbaserte spill, der spilleren kan utføre forskjellige bevegelser for å utløse handlinger i spillet.
Mulighetene er uendelige når det kommer til å lage spill med berøringsinnganger. Ved hjelp av PyGame kan du lage spill som er både morsomme og interaktive. Så kom deg ut og begynn å skape!