Python og sin gratis spillutvikling bibliotek , pygame , håndtere mye av detaljene arbeidet med spillutvikling for deg, slik at du kan fokusere på spillet ditt design. Likevel ble Crysis ikke skrevet på en dag, så du må starte ut hvor videospill selv startet med å lage et spill som " Pong ". Det er kanskje ikke hva du får til spilldesign å gjøre, men det vil lære deg det grunnleggende og lar deg få et spill i gang raskt . Du trenger
pygame
Vis flere instruksjoner
en
Åpen Idle, standard Python IDE fra Windows Start-menyen . Klikk på " File" og " Nytt vindu ". Umiddelbart lagre den nye filen og gi den navnet " Ping.py. "
2
Få spillet miljø klar. Skriv inn følgende i din Ping.py fil : en
import os , sysimport pygamefrom pygame.locals import *
skjermen = pygame.display.set_mode ( ( 640480 ) )
denne importen fra Python ekstra kommandoer du trenger å skrive spillet ditt og skaper et nytt vindu for å kjøre spillet i. Hit " F5 " for å kjøre programmet . Alternativt , klikk " Kjør" og "Run Module" fra menyen . Begge vil ha samme resultat - en helt gjennomsiktig vindu vil dukke opp på skrivebordet ditt . Det vil være 640 piksler bred og 480 piksler høyt .
Og det vil krasje og gi deg en feilmelding ganske raskt fordi selv om vinduet ble opprettet , ble ingenting gjort med det.
3
Lag spillerens padle . Legg til følgende kode i spillet umiddelbart under den siste delen av koden : en
PADDLE_WIDTH = 50PADDLE_HEIGHT = 10p1Paddle = pygame.Rect ( 10 , 430 , PADDLE_WIDTH , PADDLE_HEIGHT )
PADDLE_COLOR = pygame.color . Color ( "røde " ) SCREEN_COLOR = pygame.color.Color ( "svarte" ) ;
p Dette forteller datamaskinen hvor mange piksler bred og høy spillerens padle bør være så godt som hvilken farge det skal være. Den forteller også Python som du vil padle å være 10 piksler fra venstre side av skjermen og 430 piksler fra toppen av skjermen . Husk, er skjermen 640 piksler bred og 480 piksler høyt , så padle vil være på venstre side av skjermen , nær bunnen .
Også definerer det at skjermen i seg selv vil ha fargen svart.
4
Lag pucken . Skriv inn følgende i spillet : en
puckSpeedX = 1puckSpeedY = 1
PUCK_COLOR = pygame.color.Color ( "grønn" ) puck = pygame.Rect ( 320,240,10,10 )
p Dette forteller datamaskinen hva farge pucken vil være og hvor den skal plasseres på skjermen. I dette tilfellet vil det være 320 piksler fra venstre og 240 piksler fra toppen. Det vil også være 10 piksler bred og 10 piksler høyt .
Slutt, siden pucken trekk av sin egen vilje , trenger den en fart. Ofte i en 2D spill som " Pong ", er det lettere å dele hastigheter i hvordan enorme et objekt beveger seg horisontalt og hvor fort den beveger seg vertikalt. I dette tilfellet vil pucken bevege seg horisontalt (X) med en hastighet på 1 , og vil bevege seg vertikalt (Y) med en hastighet på 1 også
5
Sett opp spillet løkke ved å skrive: .
mens Sant: p1Paddle.left = pygame.mouse.get_pos ( ) [ 0 ] puck.left = puck.left + puckSpeedXpuck.top = puck.top + puckSpeedYscreen.fill ( SCREEN_COLOR ) ; screen.fill ( PADDLE_COLOR , p1Paddle ) screen.fill ( PUCK_COLOR , puck ) pygame.time.delay ( 10 )
Going linje for linje , den "mens ekte" kommandoen forteller at spillet skal fortsette å kjøre på ubestemt tid eller inntil brukeren treffer " Lukk "-knappen på vinduet hans .
Deretter forteller den datamaskinen som spillerens padle bør være på samme sted på skjermen , horisontalt , enn musepekeren . På den måten kan spilleren følge pucken ved å flytte sin mus . Pucken selv er flyttet ved å legge sine X og Y hastigheter til sin posisjon på skjermen . Så det trekker bakgrunnen, spillerens padle og pucken , i den rekkefølgen. Hit " F5 " for å kjøre spillet .
Merke til noen problemer ? Ingen av grafikk blir trukket til skjermen. Nesten alle moderne spill bruker et triks som kalles "dobbel buffering " for å trekke til skjermen. Dette betyr at grafikk er trukket til minnet først og deretter trukket, alt på en gang , til skjermen senere . Uten dobbel buffering , spillgrafikk har en vane flimring . Å fortelle Python å faktisk skrive grafikken til dataskjermen , eller " snu buffer, " legge til følgende linje til spillet : en
pygame.display.flip ();
Trykk " F5 "for å kjøre spillet . Det er fortsatt en ganske stor feil i spillet: pucken bare flyr gjennom padle og utenfor skjermen som om det ikke var det
6
Legg dueller til pucken . . Dette kan kreve litt oppfriskning på freshman algebra . Legg denne koden til spillet ditt bue:
hvis puck.colliderect ( p1Paddle ) : puckSpeedY = puckSpeedY * -1
hvis puck.top < 0 eller puck.bottom > 480 : puckSpeedY = puckSpeedY * -1
hvis puck.left < 0 eller puck.right > 640 : puckSpeedX = puckSpeedX * -1
Going én etter én , vurdere hva som skjer her . Hvis pucken kolliderer med spillerens padle, så er det Y hastighet multiplisert med minus -1. Så, hvis Y- hastighet (husk at dette betyr vertikal hastighet ) var 1, er det nå minus -1. Så det beveger seg i nøyaktig motsatt retning vertikalt. Det samme skjer hvis pucken treffer øverst eller nederst på skjermen . Og til slutt , hvis pucken treffer venstre eller høyre side av skjermen , er dens X hastighet (eller dens horisontal hastighet ) multiplisert med minus -1. Hit " F5 " for å kjøre spillet ditt og se effekten.