Pygame er et kryssplattformsett med Python-moduler designet for å skape spill. Modulene er designet for å være enkle, enkle å bruke og morsomme - en viktig del av Pygams ideologi. I dette innlegget vil jeg vise deg hvordan du bruker Pygame, og dele tips og ressurser for å lære det.
Denne veiledningen forutsetter at du allerede vet hvordan du skal kode i Python. Hvis ikke, sjekk ut den beste måten å lære python, lære python, pythonveiledningen, codecademy eller lære python den harde måten å komme i gang.
Python regnes ofte som det beste "første programmeringsspråket" for å lære, og har blitt rost for sin lette å lære syntaks og gradvis læringskurve. Av denne grunn begynner mange nye programmerere ved å lære Python.
Pygame utvider Python, vedtar Pythons filosofi, og tar sikte på å være enkel å bruke. I tillegg kan håper nye spillutviklere uten programmeringsopplevelse bruke Pygame, da de raskt kan plukke opp Python først.
Pygame har vært tilgjengelig siden 2000, og siden da har et stort samfunn bygget opp rundt det. Samfunnet hevder at Pygame har blitt lastet ned millioner ganger, og har hatt millioner av besøk på sin nettside ". Som et resultat av det store samfunnet, rapporteres feilene raskt, hjelp er lett tilgjengelig, og et stort antall ekstra funksjoner er lagt til. Videre sikrer samfunnet at Pygame-utviklingen er morsom; For eksempel drives en toårig Python-spillkonkurranse for å fremme plattformen. Størrelsen på samfunnet er det som skiller Pygame fra de andre Python-spillene.
Det faktum at Pygame er åpen kildekode betyr at bugs vanligvis settes raskt av samfunnet. Det betyr også at du kan utvide Pygame for å dekke dine behov og kanskje til og med gi tilbake til samfunnet.
Pygame er skrevet i C, og å ta en titt på koden er en fin måte å bedre forstå hvordan Python og Pygame jobber.
Pygame er svært bærbar, da den støtter Windows, Linux, Mac OS X, BeOS, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX og QNX. I tillegg til disse databehandlingsplattformene finnes en Pygame-undergruppe for Android. Videre krever Pygame ikke OpenGL og kan bruke DirectX, WinDIB, X11, Linux framebuffer og mange andre APIer for å gjengi grafikk. Dette sikrer at et større antall brukere kan spille spillet ditt.
Før du installerer Pygame, sørg for at du har installert Python. Du vil merke at det er to versjoner av Python: Python 2 og Python 3. Personlig anbefaler jeg at du bruker Python 2 ved siden av Pygame, da Python 2 er mer utbredt, og det finnes Pygame-moduler som ikke støtter Python 3. Men du vil fortsatt kunne lage flotte spill med Python 3.
Etter at du har sikret at en versjon av Python kjører på maskinen, kan du hente Pygame fra nedlastingswebsiden.
I tillegg til å installere Pygame-modulene, anbefaler jeg at du installerer en Python IDE, som gjør det enklere for deg å lage og kompilere spill.
Legg merke til at et integrert utviklingsmiljø, kjent som IDLE, allerede kommer med Python. IDLE har imidlertid ofte blitt kritisert for bruksproblemer, og jeg kan ikke personlig anbefale det.
Min personlige preferanse er PyScripter, men PyCharm, Wing IDE, Python Tools for Visual Studio og Netbeans er alle levedyktige alternativer. Som alltid kommer valget av en IDE til personlig preferanse, så jeg foreslår at du prøver dem alle og ser hvilken du liker best.
Her er noen ressurser som hjelper deg med å komme i gang med Pygame.
University of Colorado gir en flott introduksjon til Pygame. Slides festet vil sikre at du vet om og hvordan du bruker nøkkelkomponentene til Pygame. Etter at du har lest dette dokumentet, bør du forstå kjernekonseptene til Pygame.
Det finnes en rekke opplæringsprogrammer som vil lære deg Pygame i en trinnvis måte. Jeg har håndplukket tre av mine favoritter:
Spillutvikling i Python 3 Med Pygame er en videoopplæringsserie tilgjengelig som en YouTube-spilleliste. Serien inneholder 29 videoer, som begynner med å vise bilder og gjengi tekst, og går videre for å undervise animasjon og brukerinngang. Hvis du foretrekker videoopplæringer til tekstbaserte opplæringsprogrammer, ikke gå glipp av denne serien.
Hvis du er nybegynner til både Python og Pygame, anbefaler jeg å ta en titt på Invent dine egne dataspill med Python. Denne boken starter ved å lære deg grunnleggende om Python og støtter denne instruksjonen ved å vise deg hvordan du lager enkle kommandolinjespill. Etter at du har forstått grunnleggende om Python, går boken videre til å undervise Pygame.
På den annen side, hvis du er kløe å hoppe rett inn i Pygame, er å lage spill med Python & Pygame boken for deg. Ved slutten av denne boken har du laget 11 spill og vil være klar til å gå alene.
Alle disse bøkene er gratis og er online, slik at du kan komme i gang med en gang!
Ta en titt på dokumentasjonen er et viktig skritt på veien til Pygame mastery. Her finner du dokumenter, veiledninger og referanser som dekker alle funksjonene i Pygame. Dokumentasjonen vil gi deg kunnskap om alle aspekter av Pygame, og går utover det du ville ha lært gjennom de tidligere ressursene.
Pygame Wiki vil også hjelpe deg med å svare på eventuelle spørsmål du måtte ha om plattformen, så ikke nøl med å ta en titt.
Å se på kode vil hjelpe deg å forstå hvordan ulike deler av Pygame samhandler for å lage et komplett spill. I tillegg vil eksempler vise deg beste praksis, og du kan hente opp noen triks underveis.
Ta en titt på de offisielle Pygame-eksemplene for detaljer om hvordan du bruker individuelle moduler, eller sjekk ut offentlige Pygame-prosjekter på GitHub for å se et komplett sett med kode.
Pygame har en aktiv IRC-kanal og mailingliste. (Postliste er også tilgjengelig i et forumlignende grensesnitt.) Medlemmer av samfunnet er ivrige etter å hjelpe nybegynnere, så vær ikke redd for å stille spørsmål.
Når du blir en Pygame-ekspert, bidrar du tilbake til samfunnet og hjelper andre. Undervisning andre vil hjelpe deg å lære, og vil styrke de konseptene du allerede vet.
Ressursene som er gitt ovenfor, vil være mer enn nok til å få en solid forståelse av Pygame. Videre, hvis du jobber deg gjennom ressursene, har du laget flere spill. Men jeg oppfordrer deg til å lage din egen skapelse; gjør mer enn å bygge Tic-Tac-Toe eller Concentration. Alle kan følge en veiledning for å lage et spill. La kreativiteten flyte og sette ferdighetene dine til test ved å bygge en opprinnelig spill.
Pygame kommer med en veldig kraftig funksjon kjent som grupper, gjennom pygame.sprite.Group
klasse. En gruppe er i hovedsak en beholder for spriteobjekter.
For eksempel, hvis jeg lager flere Kule
sprites, jeg kan legge dem til en gruppe som heter kuler
:
kuler = pygame.sprite.Group () for jeg i rekkevidde (10): bullets.add (Bullet ())
Arbeide med grupper er mye raskere enn å jobbe med individuelle sprites. Du kan bare ringe Group.update ()
å oppdatere alle sprites innenfor en gruppe, eller Group.draw ()
å tømme innholdet i Gruppe
til din Flate
. Videre gjør grupper enklere kollisjonsdeteksjon, fordi Pygame har en metode for å sjekke for kollisjoner mellom to grupper: pygame.sprite.groupcollide ()
.
Kontroller at du konverterer en Flate
når du oppretter en ved å ringe konvertere()
metode. Denne metoden endrer pikselformatet for a Flate
for å matche den på skjermen Flate
. Hvis denne metoden ikke blir kalt, må en pikselkonvertering gjøres hver gang du blitter noe til din Flate
-en veldig langsom operasjon.
For eksempel, i stedet for:
ballPicture = pygame.image.load ('ball.png')
anrop:
ballPicture = pygame.image.load ('ball.png'). konvertere ()
eller hvis du må sette alfaen:
ballPicture = pygame.image.load ('ball.png') .convert_alpha ()
Noter det convert_alpha ()
vil ikke resultere i samme ytelsesøkning som konvertere()
, siden pikselformatet ikke vil være et eksakt samsvar for Flate
vindu. Likevel resulterer det i en forbedret blitshastighet.
Både pygame.display.update ()
og pygame.display.flip ()
oppdater innholdet i spillvinduet. Men bare ved å kalle disse metodene, oppdateres hele skjermen, noe som senker rammeprosessen kraftig. I stedet kan du bare vurdere å oppdatere en bestemt del av skjermen (uansett hvor endringer skal gjøres) ved å ringe pygame.display.update ()
og passerer en rect
som representerer området som skal oppdateres til metoden. Ved å gjøre dette vil du se en stor forbedring i ytelsen.
Merk at det til tider må hele skjermen bli oppdatert, og i disse tilfellene vil begge metodene fungere fint.
Husk at jeg nevnte Pygams store og hjelpsomme samfunn tidligere i innlegget. Jeg anbefaler at du utnytter dette fellesskapet ved å laste ned tilleggsmoduler laget av sine medlemmer. Disse modulene vil bidra til å lette den raske utviklingen av spillet ditt, og forenkle spillopprettingsprosessen.
Mine personlige favoritter inkluderer:
Du finner flere biblioteker på Pygame-nettstedet.
Hvis du vil at spillet skal være virkelig kryssplattform, må du vurdere scenariet der brukerne ikke har Python og Pygame installert på sine maskiner.
Vurder py2exe-utvidelsen for å lage Windows-kjørbare og Py2app-utvidelsen for å lage programmer for Mac OS X.
Pygame har ikke blitt brukt veldig ofte kommersielt, da Python ikke er kjent for spillutviklingsmulighetene. Likevel har Pygame blitt brukt til å skape mange vellykkede uavhengige spill:
Galcon er et multi-player galaktisk action-strategispill, og kan være det mest fremtredende spillet utviklet med Pygame. Den mottok som en pris som et topp 10 spill av året i 2007 fra GameTunnel, en av de første indie spill gjennomgang nettstedene.
Frets on Fire, en open-source Guitar Hero klon ble opprettet i Pygame, som en oppføring til Assembly 2006 Game Development Competition av Unreal Voodoo.
Det multi-prisbelønte rollespillet Dangerous High School Girls in Trouble!, Av uavhengig utvikler Mousechief, var en finalist i IndieCade 2008.
PyWeek er en toårig spillprogrammeringsutfordring som bare aksepterer spill som er opprettet i Python. Dermed er mange innleveringer opprettet ved hjelp av Pygame. En liste over tidligere vinnere er tilgjengelig på PyWeek-nettsiden.
I dette innlegget har jeg gitt deg en introduksjon til spillutvikling med Python og Pygame. Jeg håper at jeg har lykkes med å få deg interessert i Pygame og lære deg mer om det. Ikke nøl med å stille spørsmålene dine her eller i ulike Pygame forum. Du er nå klar til å begynne reisen inn i Pygames verden. Lykke til!