Vytvorenie jednoduchej hry s pravidelnou streľbou v Pygame

V tomto článku si ukážeme, ako vytvoriť jednoduchú hru s pravidelnou streľbou pomocou knižnice Pygame. Po úspešnom vytvorení našej prvej hry Pong v Pygame, nič nebráni sa do nej rovno pustiť!

Základná štruktúra hry

Naša hra bude spustiteľná s ľubovoľným rozlíšením, hoci preferované je 1080. V hre budú dvaja hráči, ktorí sa budú môcť pohybovať nejakou rýchlosťou. Podobne ako hráča si vytvoríme tiež loptu, ktorá sa bude pohybovať ľubovoľným smerom. Krokom počas kola, bude nám fungovať ako časovač (round_tick).

Objekty v hre

V hre mali byť inštancie samostatných tried. Zjednodušíme, avšak sa bude stále jednať o objekt. Parametre by sa nemali prenášať cez parametre alebo dokonca cez nebezpečné globálne premenné. Preto si vyberieme jedno písmo, ktoré budeme používať. Potom nám už zostáva iba vytvoriť jednotlivé písma.

Vykresľovanie objektov

Objekty vytvoríme ako Pygame obdĺžniky. To nás asi neprekvapí. Všetky objekty majú svoju plochu, hrúbku.

Stavy hry

Je dôležité zamyslieť sa nad budúcnosťou a rozhodnúť sa, aké stavy naša hra bude mať. Ako tieto stavy reprezentovať? Budeme potrebovať odkaz na aktuálny stav, ktorý sa bude volať. Jednotlivé stavy môžeme pridať priamo do cyklu v main().

Prečítajte si tiež: Úspechy Veroniky Vargovej v streľbe

Začiatok hry

Začnime s prvým stavom, teda so začiatkom hry. Hráč si bude môcť vybrať, či chce hrať proti druhému hráčovi alebo počítaču (computer), ak bude chcieť hrať proti počítaču.

Resetovanie pozícií

Po každom kole budeme potrebovať vrátiť hráčov do pôvodnej pozície a vyresetovať lopte smer a rýchlosť.

Pohyb hráčov

Začneme tým, že sa vysporiadame s pohybmi hráčov pomocou klávesov (napr. S). Pohyby hráčov už máme teda vyriešené.

Implementácia jednoduchej AI

Vytvoríme jednoduchú dvojriadkovú AI. Ak je lopta na rovnakej hladine, ako je hráč, nemusí sa hýbať. Ak je lopta nižšie než hráč, musí ísť hráč nižšie (tj. hráčov sa musí pohybovať v kladných číslach). Ak je lopta vyššie, musí sa hráč posunúť o záporné číslo. Cieľom je, aby sa hráč presne zarovnal s loptou, teda získať rozdiel súradníc lopty a hráča. Teraz vieme, o koľko sa má hráč ovládaný pomocou AI pohnúť, ale nesmieme zabudnúť, že ani on nemôže ísť za hranice obrazovky.

Pohyb lopty a kolízie

Lopta sa bude pohybovať po kružnici. Ak narazí do pravej alebo ľavej strany, pripíšeme bod príslušnému hráčovi. Ak by jeden z hráčov nebol schopný loptu dostatočne rýchlo odraziť, hra by bola nudná. Čo sme ale zabudli zakomponovať, je samozrychlujúca sa lopta. Rýchlosť sa zvýši o 1. A je to!

Prečítajte si tiež: Lukostreľba: história a počiatky

FPS a ukončenie hry

FPS (snímok za sekundu) je dôležitý parameter. Hra by sa mala ukončiť, ak niekto nepoužil kláves Q, aby sa hra vypla, popr. nebolo vyžiadané inak.

Prečítajte si tiež: Recenzia FIFA 19

tags: #pravidelna #strelba #v #pygame