Et spil er intet uden input, og med Pygames understøttelse af både mus- og touch-input kan du sikre, at dit spil er tilgængeligt.

I denne tid er touchscreen-enheder overalt. Det er ingen overraskelse, at spiludviklere i stigende grad bruger touch-input i deres spil, og rammer gør dette nemmere og nemmere.

PyGame gør det nemt at skabe spil og applikationer, der kan drage fordel af berøringsinput.

PyGames Touch Support

PyGame har indbygget understøttelse til at arbejde med berøringsindgange. Dette inkluderer understøttelse af mus og fingertouch input.

For at opdage en mus kan du bruge pygame. MUSKNAPPEN NED og pygame. MUSEKNAPOP begivenheder. For eksempel:

til begivenhed i pygame.event.get():
hvis event.type == pygame. MUSEKNAP NED:
Print("Museknap trykket")

For at registrere fingerberøringsindgange kan du bruge pygame. FINGEREN NED og pygame. FINGERUP begivenheder. For eksempel:

til begivenhed i pygame.event.get():
hvis event.type == pygame. FINGEREN NED:
Print("Finger rørte skærmen")

Oprettelse af et simpelt spil

instagram viewer

Du kan finde al koden i denne GitHub Repo.

Start med at lave et simpelt spil. Dette spil vil bestå af en spillerfigur, som du kan flytte rundt på skærmen ved hjælp af berøringsinput. For at gøre dette skal du oprette en spilløkke og en spillerkarakter.

Før du begynder, skal du sikre dig, at du har pip installeret på din enhed, og brug derefter følgende kommando til at installere PyGame modul:

pip installer pygame

Importer nu PyGame-modulet i din spilkode:

importere pygame
pygame.init()

Derefter skal du oprette spilvinduet og et spilobjekt:

# Indstil displayet
størrelse = (400, 400)
skærm = pygame.display.set_mode (størrelse)

# Opret et spillerobjekt
spiller = pygame. Overflade((50, 50))
player.fill((255, 0, 0))

# Indstil afspillerens startposition
player_pos = [175, 175]

Til sidst skal du oprette spilløkken:

# Spilløkken
kører = Rigtigt

mens kører:
# Tjek for begivenheder
til begivenhed i pygame.event.get():
hvis event.type == pygame. AFSLUT:
kører = Falsk

# Opdater spillerpositionen
player_pos[0] += 5
player_pos[1] += 5

# Tegn afspilleren
screen.blit (player, player_pos)

# Opdater displayet
pygame.display.update()

Bemærk, at ovenstående kode kun skaber et simpelt spil, hvor spillerens karakter bevæger sig rundt på skærmen. For at gøre spillet mere interessant, kan du tilføje fysik og kollisioner at skabe forhindringer for spilleren at overvinde.

Mouse Touch-indgange til spillerbevægelse

Nu hvor du har et spil med en spillerkarakter, kan du begynde at tilføje touch-input. For at gøre dette skal du tilføje en hændelseshandler til museindgangene. Tilføj pygame. MUSKNAPPEN NED og pygame. MUSEKNAPOP begivenheder til spilløkken.

Opret en hændelseshandler til musens input. Når en spiller trykker på museknappen, skal du opdatere figurens position til den aktuelle museposition. Programmet vil ignorere frigivelsen af ​​museknappen, da det ikke behøver at foretage sig noget i det tilfælde.

# Spilløkken
kører = Rigtigt

mens kører:
# Tjek for begivenheder
til begivenhed i pygame.event.get():
hvis event.type == pygame. AFSLUT:
kører = Falsk
# Tjek for museindgange
elif event.type == pygame. MUSEKNAP NED:
mouse_x, mouse_y = begivenhed.pos
player_pos[0] = mus_x
player_pos[1] = mus_y
elif event.type == pygame. MUSEKNAPOP:
passere

screen.fill((0, 0, 0))

# Tegn afspilleren
screen.blit (player, player_pos)

# Opdater displayet
pygame.display.update()

Du kan også tilføje ekstra logik til hændelseshandleren for at få afspilleren til at bevæge sig som svar på musens input.

Finger Touch-indgange til spillerbevægelse

Ud over museindgange kan du også tilføje fingerberøringsindgange. For at gøre dette skal du tilføje en hændelseshandler til finger-touch input.

Tilføj pygame. FINGEREN NED og pygame. FINGERUP begivenheder til spilløkken:

# Spilløkken
kører = Rigtigt

mens kører:
# Tjek for begivenheder
til begivenhed i pygame.event.get():
hvis event.type == pygame. AFSLUT:
kører = Falsk
# Tjek for museindgange
elif event.type == pygame. MUSEKNAP NED:
mouse_x, mouse_y = begivenhed.pos
player_pos[0] = mus_x
player_pos[1] = mus_y
elif event.type == pygame. MUSEKNAPOP:
passere
# Tjek for fingerinput
elif event.type == pygame. FINGEREN NED:
finger_x, finger_y = begivenhed.pos
player_pos[0] = finger_x
player_pos[1] = finger_y
elif event.type == pygame. FINGERUP:
passere

screen.fill((0, 0, 0))

# Tegn afspilleren
screen.blit (player, player_pos)

# Opdater displayet
pygame.display.update()

Læg mærke til, hvor ens dette er med hændelsesbehandleren for musens input. Denne hændelseshandler opdaterer karakterens position, når spilleren trykker fingeren på skærmen. Når de slipper fingeren, sker der ikke noget. Dette giver dig mulighed for at skabe et spil, som du kan styre ved hjælp af både muse- og fingerberøringsinput. Husk at du også kan bruge andre arrangementer som f.eks pygame. FINGERBEVÆGELSE at reagere på fingerbevægelser.

Pygames ekstra berøringsfunktioner

Med de grundlæggende berøringsfunktioner på plads, kan du begynde at tilføje mere avancerede funktioner. PyGame har et par indbyggede funktioner, der kan hjælpe dig med at tilføje flere berøringsfunktioner til dit spil.

Den første funktion er pygame.mouse.set_visible() fungere. Denne funktion giver dig mulighed for at skjule musemarkøren. Dette kan være nyttigt, hvis du vil oprette et spil, der kun bruger berøringsinput og ikke musen.

Her er et eksempel på, hvordan du bruger set_visible() fungere:

pygame.mouse.set_visible(Falsk)

Det pygame.mouse.set_pos() funktionen indstiller musemarkøren til en bestemt position på skærmen. Dette er nyttigt, hvis du vil flytte musen til et bestemt sted uden at bruge museindgangene.

Nedenfor er et eksempel på, hvordan du bruger sæt_pos() fungere:

pygame.mouse.set_pos(200, 200)

Du kan bruge pygame.mouse.get_rel() funktion for at få musens relative bevægelse. Du kan bruge dette til at registrere, hvor langt musen har bevæget sig siden sidste musehændelse.

Sådan kan du bruge get_rel() fungere:

dx, dy = pygame.mouse.get_rel()

Endelig kan du bruge pygame.mouse.get_pressed() funktion for at kontrollere, om afspilleren trykker på en museknap. Dette kan være nyttigt, når du laver spil med mus/berøringskontroller.

Nedenfor er et eksempel på, hvordan du bruger get_pressed() fungere:

mouse_buttons = pygame.mouse.get_pressed()

PyGame giver også en MUSEHJUL begivenhedstype, som du kan bruge til at registrere musehjulsrullninger. Den understøtter både lodrette og vandrette ruller.

Her er et eksempel:

til begivenhed i pygame.event.get():
hvis event.type == pygame. MUSEHJUL:
hvis event.y > 0:
Print("Musehjul rullet op")
elif event.y < 0:
Print("Musehjul rullet ned")

Opret interaktive spil med berøringsindgange

Med touch-indgangene på plads kan du nu oprette interaktive spil. For eksempel kan du lave et spil, hvor spilleren kan bevæge sig rundt på skærmen ved hjælp af touch-input. Du kan også oprette gestus-baserede spil, hvor spilleren kan udføre forskellige gestus for at udløse handlinger i spillet.

Mulighederne er uendelige, når det kommer til at skabe spil med touch-input. Ved hjælp af PyGame kan du skabe spil, der både er sjove og interaktive. Så kom derud og begynd at skabe!