Cum să învățați Pygame

Pygame este un set multiplu de module Python conceput pentru crearea de jocuri. Modulele sunt proiectate pentru a fi simple, ușor de utilizat și distractive - o parte esențială a ideologiei lui Pygame. În acest post, vă voi arăta cum să utilizați Pygame și să împărtășiți sfaturile și resursele pentru a le învăța.

Acest ghid presupune că deja știți cum să codificați în Python. Dacă nu, verificați Cel mai bun mod de a învăța Python, Aflați Python, Tutorialul Python, Codecademy sau Aflați Python calea grea pentru a începe.

De ce Pygame?

E simplu

Python este adesea considerat cel mai bun "primul limbaj de programare" de învățat și a fost lăudat pentru sintaxa sa de învățare ușoară și curba de învățare graduală. Din acest motiv, mulți noi programatori încep să învețe Python. 

Pygame extinde Python, adoptă filosofia Python și își propune să fie ușor de folosit. În plus, aspiranții noștri dezvoltatori de jocuri care nu au experiență de programare pot folosi Pygame, deoarece pot să-l ia pe Python mai întâi.

Are o comunitate mare

Pygame a fost disponibil începând cu anul 2000 și, de atunci, o comunitate mare a construit în jurul său. Comunitatea susține că Pygame a fost descărcat de milioane de ori și a avut milioane de vizite pe site-ul său ". Ca rezultat al comunității mari, bug-urile raportate sunt reparate rapid, ajutorul este disponibil imediat și un număr mare de caracteristici suplimentare au fost adăugate. În plus, comunitatea asigură că dezvoltarea Pygame este distractivă; de exemplu, o competiție bi-anuală de joc Python este condusă pentru a promova platforma. Dimensiunea comunității este ceea ce separă Pygame de celelalte cadre de joc Python.

Este Open Source

Faptul că Pygame este open source înseamnă că bug-urile sunt în general fixate foarte repede de către comunitate. De asemenea, înseamnă că puteți extinde Pygame pentru a vă satisface nevoile și poate chiar să vă dați înapoi comunității. 

Pygame este scris în C, și luând o privire la cod este o modalitate foarte bună de a înțelege mai bine cum funcționează Python și Pygame.

Este extrem de portabil

Pygame este foarte portabil, deoarece suportă Windows, Linux, Mac OS X, BeOS, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX și QNX. În plus față de aceste platforme de calcul, există un subset Pygame pentru Android. Mai mult, Pygame nu are nevoie de OpenGL și poate utiliza DirectX, WinDIB, X11, framebuffer Linux și multe alte API-uri pentru a face grafica. Acest lucru asigură că un număr mai mare de utilizatori pot juca jocul dvs..

Noțiuni de bază

Instalare

Înainte de a instala Pygame, asigurați-vă că ați instalat Python. Veți observa că există două versiuni de Python: Python 2 și Python 3. Personal, vă recomand să utilizați Python 2 alături de Pygame, deoarece Python 2 este mai răspândit și există module Pygame care nu acceptă Python 3. Cu toate acestea, vă ar fi în continuare capabil să facă jocuri excelente folosind Python 3.

După ce vă asigurați că o versiune de Python rulează pe mașina dvs., puteți să ridicați Pygame de pe site-ul său de descărcare.

IDEs

În plus față de instalarea modulelor Pygame, vă recomandăm să instalați un Python IDE, ceea ce vă va ușura crearea și compilarea de jocuri.

Rețineți că un mediu integrat de dezvoltare, cunoscut sub numele de IDLE, este deja asociat cu Python. Cu toate acestea, IDLE a fost frecvent criticat pentru probleme de uzabilitate și eu personal nu pot să o recomand.

Preferința mea personală este PyScripter, dar PyCharm, Wing IDE, Python Tools pentru Visual Studio și Netbeans sunt toate opțiuni viabile. Ca de obicei, alegerea unui IDE se reduce la preferințele personale, așa că vă sugerez să le încercați pe toate și să vedeți care dintre ele vă place cel mai bine. 

Resurse

Iată câteva resurse care vă vor ajuta să începeți cu Pygame.

Universitatea din Colorado

Universitatea din Colorado oferă o introducere minunată în Pygame. Diapozitivele atașate vă vor asigura că știți și cum să utilizați componentele cheie ale programului Pygame. După ce ați citit acest document, trebuie să înțelegeți conceptele principale ale lui Pygame.

Tutoriale

Există o multitudine de tutoriale disponibile care vă vor învăța Pygame într-o manieră pas cu pas. Am ales mână trei dintre preferatele mele:

  • PyGame Tutoriale - Introducere simplă în programarea jocului: Cuprinde caracteristicile de bază ale lui Pygame
  • PyGame Basics Tutorial: O serie de șapte părți începând de la început, cu o secțiune deosebit de mare despre muzică și efecte sonore
  • Cartea de joc Python: începe cu principiile de bază, dar învață concepte avansate, inclusiv sprite, detecție coliziune pixel-perfectă și derulare

Seriale video

Dezvoltarea jocurilor în Python 3 Cu Pygame este o serie de tutoriale video disponibile ca playlist YouTube. Seria conține 29 de videoclipuri, începând cu afișarea imaginilor și redarea textului și deplasarea pentru a preda animația și introducerea de către utilizatori. Dacă preferați tutoriale video la tutoriale bazate pe text, nu ratați această serie. 

Cărți

Dacă sunteți începător atât pentru Python, cât și pentru Pygame, vă recomandăm să aruncați o privire la jocul Invent Your Own Computer cu Python. Această carte începe prin a vă învăța noțiunile de bază despre Python și susține această instrucțiune arătându-vă cum să faceți jocuri simple de linie de comandă. După ce ați asigurat că înțelegeți elementele de bază ale programului Python, cartea se mută pentru a învăța Pygame.

Pe de altă parte, dacă sunteți mâncărime pentru a sări direct în Pygame, Efectuarea de jocuri cu Python & Pygame este cartea pentru dvs. Până la sfârșitul acestei cărți, ați creat 11 jocuri și veți fi gata să mergeți singuri. 

Toate aceste cărți sunt gratuite și sunt online, astfel încât să puteți începe imediat!

Pasii urmatori

Citiți Documentația și Wiki

Aruncând o privire la documentație este un pas important pe drumul tău spre păstrarea Pygame. Aici veți găsi documente, tutoriale și referințe care acoperă toate caracteristicile Pygame. Documentația vă va permite să cunoașteți toate aspectele legate de Pygame, depășind ceea ce ați fi învățat prin resursele anterioare.

Pygame Wiki va ajuta, de asemenea, să răspundeți oricăror întrebări pe care le aveți despre platformă, așa că nu ezitați să aruncați o privire.

Uită-te la Cod

Privind la cod vă va ajuta să înțelegeți modul în care diferite părți ale Pygame interacționează pentru a face un joc complet. Mai mult, exemplele vă vor arăta cele mai bune practici și puteți lua câteva trucuri de-a lungul drumului.

Consultați exemplele oficiale Pygame pentru detalii despre modul de utilizare a modulelor individuale sau consultați proiectele publice Pygame de pe GitHub pentru a vedea un set complet de coduri. 

Participați la Comunitate

Pygame are un canal IRC activ și o listă de corespondență. (Lista de discuții este, de asemenea, disponibilă într-o interfață asemănătoare forumului.) Membrii comunității sunt dornici să ajute începătorii, așa că nu vă fie frică să puneți întrebări. 

După ce deveniți expert Pygame, contribuiți înapoi la comunitate și ajutați-i pe alții. Predarea altora vă va ajuta să învățați și veți consolida conceptele pe care le cunoașteți deja. 

Faceți-vă propriul joc

Resursele furnizate mai sus vor fi mai mult decât suficiente pentru a obține o înțelegere solidă a lui Pygame. Mai mult, dacă lucrați prin resurse, veți fi făcut mai multe jocuri. Cu toate acestea, vă îndemn să vă creați creația proprie; faceți mai mult decât construiți Tic-Tac-Toe sau Concentrație. Oricine poate urma un tutorial pentru a face un joc. Lasati-va creativitatea sa curga si puneti-va abilitatile la test prin construirea unui original joc.  

Sfaturi pentru dezvoltare

Utilizați grupurile

Pygame vine cu o caracteristică foarte puternică cunoscută sub numele de Grupuri, prin pygame.sprite.Group clasă. Un grup este în esență un container pentru obiecte sprite.

 De exemplu, dacă creez mai multe Glonţ Sprite, le pot adăuga la un grup numit gloanțe:

bullets = pygame.sprite.Group () pentru i în intervalul (10): bullets.add (Bullet ())

Lucrul cu grupurile este mult mai rapid decât lucrul cu spritele individuale. Puteți să sunați pur și simplu Group.update () pentru a actualiza toate spritele dintr - un grup, sau Group.draw () pentru a blit conținutul grup pentru dumneavoastră Suprafaţă. În plus, grupurile fac mai ușoară detectarea coliziunilor, deoarece Pygame are o metodă de verificare a coliziunilor dintre două grupuri: pygame.sprite.groupcollide ()

Conversia suprafețelor tale

Asigurați-vă că faceți conversia a Suprafaţă ori de câte ori creați una prin apelarea convertit() metodă. Această metodă modifică formatul pixel al unui a Suprafaţă pentru a se potrivi cu cea a afișajului Suprafaţă. Dacă această metodă nu este apelată, o conversie pixel va trebui făcută de fiecare dată când blitz ceva la dvs. Suprafaţă-o operație foarte lentă.

 De exemplu, în loc de:

ballPicture = pygame.image.load ('ball.png')

 apel:

ballPicture = pygame.image.load ('ball.png') convert ()

sau dacă trebuie să setați alfa:

ballPicture = pygame.image.load ('ball.png') convert_alpha ()

Rețineți că convert_alpha () nu va duce la aceeași creștere a performanței ca la convertit(), deoarece formatul de pixeli nu va fi o potrivire exactă pentru Suprafaţă fereastră. Cu toate acestea, rezultă o îmbunătățire a vitezei de mișcare.

Actualizare versus Flip

Ambii pygame.display.update () și pygame.display.flip () actualizați conținutul ferestrei de joc. Cu toate acestea, simpla chemare a acestor metode actualizează întregul ecran, reducând în mod semnificativ rata cadrelor. În schimb, luați în considerare numai actualizarea unei anumite părți a ecranului (ori de câte ori se vor efectua modificări) prin apelare pygame.display.update ()și trecând a RECT reprezentând zona care urmează să fie actualizată în metodă. În acest sens, veți vedea o îmbunătățire vastă a performanței.

Rețineți că, uneori, întregul ecran va trebui să fie actualizat și, în aceste cazuri, ambele metode vor funcționa bine. 

Module suplimentare

Amintiți-vă că am menționat comunitatea mare și utilă a lui Pygame mai devreme în post. Vă recomandăm să profitați de această comunitate descărcând module suplimentare făcute de membrii săi. Aceste module vă vor ajuta să facilitați dezvoltarea rapidă a jocului și să simplificați procesul de creare a jocului.

 Favoritele mele personale includ:

  • Pyganim: face ușor să adăugați animații sprite la jocurile dvs.
  • input.py: Simplifică manipularea controlului în Pygame atunci când se utilizează mai multe metode de controler
  • Python Utilities: O colecție mare de utilități Pygame

Puteți găsi mai multe biblioteci pe site-ul Pygame.

Jocuri executabile

Dacă doriți ca jocul dvs. să fie cu adevărat cross-platform, trebuie să luați în considerare scenariul în care utilizatorii dvs. nu au Python și Pygame instalate pe mașinile lor.

Luați în considerare extinderea py2exe pentru a face executabile Windows și extensia py2app pentru a crea aplicații pentru Mac OS X. 

Showcase

Pygame nu a fost folosit foarte des comercial, deoarece Python nu este cunoscut pentru capacitățile sale de dezvoltare a jocului. Cu toate acestea, Pygame a fost folosit pentru a crea multe jocuri independente de succes:

Galcon

Galcon este un joc multi-player galactic de acțiune-strategie, și poate fi cel mai proeminent joc dezvoltat cu Pygame. Acesta a primit premiul "Top 10 Game of the Year" în 2007, de la GameTunnel, unul dintre primele site-uri de recenzie indie.

Frets on Fire

Frets on Fire, o clona open-source Guitar Hero a fost creata in Pygame, ca o intrare in Competitia de Dezvoltare a Jocurilor Adunarii 2006 de catre Unreal Voodoo.

Fete periculoase de liceu în probleme!

Multi-premiatul joc de rol, "Dangerous High School Girls in Trouble!", De către dezvoltatorul independent Mousechief, a fost un finalist la IndieCade 2008.

PyWeek

PyWeek este o provocare bi-anuală de programare a jocurilor care acceptă doar jocurile create în Python. Astfel, multe observații sunt create folosind Pygame. O listă a câștigătorilor anteriori este disponibilă pe site-ul PyWeek.

Concluzie

În acest post, v-am dat o introducere în dezvoltarea jocurilor cu Python și Pygame. Sper că am reușit să vă intereseze Pygame și să vă învăț mai multe despre asta. Nu ezitați să puneți întrebările dvs. aici sau în diferite forumuri Pygame. Acum sunteți gata să vă începeți călătoria în lumea lui Pygame. Mult noroc!