Ako vytvoriť Pong hru - hyperPong

Poznámka: Dokončený projektový súbor pre tento návod nájdete na konci tohto článku.
Úvod
V tomto návode vytvoríme hru podobnú Pongu od základov. Pokryjeme niektoré pokročilé funkcie a správanie v hyperPade, takže tento návod predpokladá základné znalosti s editorom hyperPad. Ak sa chcete lepšie oboznámiť s vytváraním hry od nuly, môžete si najprv prečítať Kompletný návod - Vytvorenie platformovej hry nádav.
Pong je jednoduchá hra pre dvoch hráčov, ktorá sa skladá iba z dvoch rakiet a lopty a môže byť považovaná za jednoduchú digitálnu verziu stolného tenisu. Každý hráč ovláda raketu, pričom obaja sú na opačných stranách stola. Raketové pálky sa môžu pohybovať iba dopredu a dozadu, pričom posielajú loptu smerom k protihráčovi. Ak hráč zasiahne loptu, druhý hráč získava bod. Prvý hráč, ktorý dosiahne 11 bodov, vyhráva!
Pre našu hru Pong zahrnieme možnosť hrať v režime 1 hráč (Hráč vs. AI), 2 hráč (Hráč vs. Hráč) alebo 0 hráč „Sledovať“ režim (AI vs. AI).
Časť 1: Nastavenie projektu a hlavné menu
Začnime vytvorením nového projektu.
Otvorí menu Projektov v hyperPade a klepnite na Nový projekt. Dajte svojmu projektu názov a klepnite na Ďalej. Orientáciu môžeme nechať predvolene ako krajinný režim. Pre tento návod je podpora zariadenia nastavená na iPad 4:3. Na nasledujúcej obrazovke vyberte "Pohľad z vtáčej perspektívy" a zvyšok nechajte predvolene.
Teraz, keď máme nový projekt pripravený, rýchlo začneme s nastavovaním hlavného menu predtým, ako sa vrhneme priamo do samotnej hry. Prvá vec, ktorú urobíme, je premenovať našu scénu na „Hlavné menu“.
Klepne na tlačidlo menu Projekt/Scéna a klepnite na ikonu ozubeného kolesa vedľa „Scéna 1“.
Klepne na možnosť Nastavenia a premenovať našu scénu na „Hlavné menu“. Klepnite na Uložiť, aby ste uložili a zavreli okno s nastaveniami.
Ďalej, aby sme zostali verní raným retro hrám, ako je arkádový Pong, môžeme nastaviť pozadie na čiernu farbu.
Klepne na tlačidlo nastavení Scény a vyberte Pozadie. Klepnite na tlačidlo "Zmeniť farbu" a nastavte ho na čiernu (#000000FF).
Teraz pridajme názov na našu hlavnú menu. Klepnite na tlačidlo Špeciálne objekty a vyberte Názov.
Zadajte názov svojej hry do textového poľa ("hyperPong" bolo zadané pre tento tutoriál), nastavte veľkosť písma na niečo veľké, ale nie príliš veľké. Pre názov "hyperPong" je 72 bodov dobrá veľkosť. Zmeňte farbu na bielu (#FFFFFFFF) a umiestnite ju do stredu menu blízko vrcholu.
Teraz máme scénu hlavného menu, ktorú je možné zaplniť tlačidlami všetkých našich herných režimov. Necháme menu zatiaľ tak, ako je, a dokončíme ho, až keď budeme mať hrateľnú hru.
Časť 2: Nastavenie scény hry a rakety
Klepne na tlačidlo menu Projekt a klepnite na "Pridať scénu". Pomenujte ju "Hra" a klepnite na Vytvoriť. Teraz by ste mali vo scéne Hra vidieť prázdne plátno. Ako sme to urobili so scénou Hlavné menu, opäť klepnite na tlačidlo Nastavenia scény a zmeňte pozadie na čiernu (#000000FF).
Poďme sa pustiť do vytvárania našich hráčskych rakiet. Vytvorte prázdny objekt prechodom na tlačidlo Špeciálne objekty a vyberte "Prázdny objekt". Zmeňte jeho farbu na bielu (#FFFFFFFF) a uistite sa, že je posuvník nepriehľadnosti úplne aktivovaný.
Premeňte objekt na "Hrac-1" a nastavte jeho fyzický režim na Fyziku a nechajte Pasovateľné zapnute.
Dôvodom, prečo budeme udržiavať Pasovateľné zapnuté, je, aby sme mali väčšiu kontrolu nad tým, ako sa lopta bude interagovať s raketou, keď do nej narazí. Chceme mať možnosť riadiť rýchlosť a smer, ktorým sa lopta pohybuje, manuálne.
V vlastnostiach objektu Hrac-1 prejdite na kartu Transform a nastavte mierku X na 25% a presuňte ho doľava od herného poľa.
Ďalej pridáme nejaké ovládanie k našej rakete, aby mohla pohybovať. S vybranou raketou prejdite k editoru správania prechodom späť na kartu Fyzika.
Položte dolu joystick analógové správanie, ktoré nájdete v sekcii Interakcie (ak ho nemôžete nájsť, možno sa musíte prepnúť do pokročilého režimu). To automaticky vytvorí joystick vo vašej scéne editor.
Ale nechceme len povoliť rakete sa pohybovať cez pohyb joysticku. Takisto chceme, aby aj AI mohol vykonávať pohyby.
Pod sekciou Vlastné položte dolu Box Container. To bude na ukladanie toho, akým smerom sa raketa bude pohybovať. Takto bude aj hráč ovládajúci joystick, alebo AI vykonávajúce výpočty, pohybovať prerušením tejto jednej hodnoty. Predvoľte pre túto hodnotu 0. Je tiež dobrý nápad pre ňu dať dobre pomenovanie, „Smer pohybu“ sa zdá vhodný.
Po výbere Box Containera stlačte tlačidlo "Zmeniť vstupné pole" a klepnite na Áno. To vytvorí správanie na nastavenie vstupného poľa pre box container, takže môžeme zmeniť jeho hodnotu, keď to bude potrebné. Pripojte nastavenie vstupného poľa k joysticku analógového.
Vyberte správanie Set Input Field a presuňte hodnotu výstupu z joysticku analógového do Nové pole hodnoty. Vyberte vlastnosť "y". Teraz, Smer pohybu box container bude sledovať, ako ďaleko hráč posúva joystick hore alebo dole (y-os).
Teraz, keď sledujeme, ako ďaleko joystick pohybuje nahor alebo nadol, musíme ho tiež nastavovať na 0, ak hráč pustí joystick. Inak raketa bude naďalej pohybovať v smere, ktorý si pamätá naposledy.
Pod sekciou Interakcia, pridajte správanie zastavené dotykom a klepnite na ňu, aby ste otvorili jej vlastnosti. Predvolene sa sleduje, keď hráč zastaví dotyk na rakete, ale chceme sledovať, keď hráč zastaví dotyk na joysticku.
Klepne na vlastnosť objektu, aby ste to zmenili, a vyberte joystick. Možno budete musieť vybrať globálnu vrstvu UI, aby ste ju mohli vybrať. Keď je vybrané, klepnite na kontrolnú ikonu. Správanie by teraz malo vykazovať joystick ako sledovaný objekt.
Klepne na nastavenie vstupného poľa, ktoré sme vytvorili predtým, a zdvojnásobte ho. S duplikovaným nastavením vstupného poľa pripojte ho k správania zastaveného dotykom a nastavte hodnotu Nového vstupného poľa na 0.
Teraz naša hodnota box container Smer pohybu bude sledovať pohyby nahor a nadol joysticku a resetuje sa na 0, keď sa joystick uvoľní. To nám dáva excelentný spôsob, ako povedať našej rakete, ako sa pohybovať, tak pokračujme a dajme našej rakete nejaký pohyb.
Pod sekciou Vlastné znížte časovač správania. V jeho vlastnostiach nastavte interval na 0. Tento časovač bude vykonávať tak často, ako to môže (raz za rámec), čo nám dáva možnosť aktualizovať pohyb rakety veľmi často.
Prednastavením pohybu rakety sa uistíme, že hodnota pre box container Smer pohybu je obmedzená v rozumnej škále, pre prípad, že by šla príliš vysoko alebo príliš nízko. Inak sa naša raketa bude pohybovať príliš rýchlo v niektorých prípadoch.
Pod sekciou Logika položte dolu Minimálne správanie a Maximálne správanie. Pripojte Minimálne správanie k časovaču a Maximálne správanie k Minimu. Mali by ste mať niečo, čo vyzerá takto:
V nastaveniach vlastností Minimálneho správania nastavte prvú hodnotu na výstupnú hodnotu behavioru Smer pohybu a druhú hodnotu na 1.
Minimálne správanie vygeneruje najmenšie číslo, ktoré dostane. Takže, ak hodnota Smer pohybu ide nad 1, vygeneruje 1. Inak, jednoducho vygeneruje hodnotu pre Smer pohybu.
V nastaveniach vlastností Maximálneho správania nastavte prvú hodnotu na výstup Minimálny, a druhú hodnotu na -1.
Maximálne správanie vygeneruje najväčšie číslo, ktoré dostane. Takže, ak hodnota Smer pohybu ide pod -1, vygeneruje -1. Inak vygeneruje hodnotu Minimálne (ktorá je buď 1, alebo Smer pohybu, ktorá je nižšia).
To všetko znamená, že výsledná hodnota Maximálne je efektívne hodnota Smer pohybu, obmedzená medzi -1 a +1. To nám dáva plnú kontrolu nad tým, akou rýchlosťou sa raketa môže pohnúť!
Rozsah od -1 do +1 je ľahko zrozumiteľný a bude príliš pomalý, ak prímo použijeme túto hodnotu ako rýchlosť rakety.
Pod sekciou Logika znova znížte a umiestnite minimálne a maximálne parametre. Pripojte ich výsledok k maximálnemu správanie a nastavte prvú hodnotu na výsledok Maximálneho správania. Druhú hodnotu nastavte na dobrú "max rýchlosť" hodnotu.
Pre teraz nastavte na 20. Ak si myslíte, že raketa je počas hráčskej doby príliš pomalá alebo rýchla, jednoducho môžete nastaviť toto číslo na vyšší alebo nižší.
Správne funkcie dotiahnite na rýchlosť rakety. Pod sekciou Fyzika pridajte správanie Nastaviť rýchlosť a pripojte to k hodnotu výslednej rýchlosti. Nastavte pole „x“ na 0 a pole „y“ na výslednú hodnotu správania.
Vyskúšajte to! Keď otvoríte hru, raketa by sa mala pohybovať, ako ste pohybovali joystickom hore a dole.
Ak ste si to pravdepodobne všimli počas testovania, nič nezastaví rakety od opustenia obrazovky. V nasledujúcej časti pridáme niektoré hranice, aby sme všetko udržali vo výhľade.
Časť 3: Hranice hry
Predtým, než pokročíme, použijeme niekoľko foresightov a zvážme dobrý dizajn hry. Hráčska raketa nebude v strede obrazovky, ale skôr bližšie k okrajom, keď budeme ďalej dodávať našu hru. Toto sa stane problémom, pretože máme prvky UI (t.j. joysticky), ktoré sa prekrývajú s našimi hernými prvkami (t.j. rakety).
Namiesto toho, aby sme použili celú obrazovku ako hrateľnú oblasť, mali by sme posunúť hranice, aby naša raketa nešla pod joystick, kde sú naše prsty, čo by spôsobilo, že ich ťažko uvidíme. Takto nebudeme strácať prehľad o našej rakete blízko spodku hrateľnej oblasti. Môžeme tiež použiť tento posun ako tvrdú hranicu, aby sme zabránili našim objektom opustiť hrateľné pole.
Klepne na tlačidlo Špeciálne objekty a vytvorte nový prázdny objekt. Klepnite na nový prázdny objekt, aby ste otvorili jeho vlastnosti.
Nechajte jeho fyzikálny režim nastavený na Stenu a vypnite Pasovateľné. Nastavte jeho farbu, aby sme ju vizuálne mohli vidieť, nepriehľadná tmavošedá (#1F1F1FFF) sa hodí celkom dobre. Nastavte trenie na 0% a odraz na 100%.
Teraz sa prejdite na kartu Transformácie a nastavte mierku Y na 200%, a presuňte ju na vrch obrazovky. Teraz ju natiahnite tak, aby sa zmestila do celej šírky obrazovky. Môžete tiež zapnúť mriežku polohovanie, aby ste sa uistili, že je všetko presne umiestnené.
Teraz skopírujte stenu a presuňte kópiu na dno.
Skopírujte znova a nastavte jej mierku X na 200% namiesto toho. Potom natiahnite výšku tak, aby sa zmestila do obrazovky, a umiestnite ju na ľavú stranu obrazovky.
A opäť, skopírujte vertikálnu stenu a presuňte ju na pravú stranu obrazovky. Teraz by ste mali mať plne uzavreté hracie pole:
Keď teraz hrajete hru, pravdepodobne si okamžite všimnete, že môžete ísť cez steny, ako keby tam neboli. Je to spôsobené dvoma dôvodmi; nastavili sme raketu na "Pasovateľné" a nútime raketovú rýchlosť každý rámec. To je v poriadku, budeme musieť implementovať spôsob, ako zastaviť raketu pred pohybom do steny.
Implementácia tohto správania je kontrolovať polohu hráča v porovnaní s polohou steny. Ak je to pravda, pohybte hráča späť do hrateľnej oblasti.
Aby sme to mohli implementovať, klepnite na hornú stenu a zmeňte Y zakotvenie na 0%. Týmto sa zakotví pozícia steny na samom spodku ovládania. K tomu by ste možno museli odomknúť zakotvovacie polia klepnutím na ikonu Zamknúť.
Podobne ako s dolnou stenou, zmeňte dolné zakotvenie Y na 100%, tento bude zakotvený v jeho najvrchnejšej pozícii.
Teraz sme pripravení implementovať naše správanie kontroly hraníc. Klepnite na raketu a otvorte editor správania.
Na začiatok položte Get Bounding Box z sekcie Logika. Malo by mať predvolené nastavenie sledovania rakety. Toto správanie nám umožní získať dolné / ľavé súradnice a veľkosť rakety.
Teraz položte dolu 2 Get Position správanie z sekcie Transform a pripojte ich k správania Get Bounding Box v paralelnej konfigurácii.
Nastavte prvé Get Position správanie tak, aby sledovalo dolnú stenu a nastavením druhého správania Get Position tak, aby sledovalo hornú stenu. Môžete tiež tieto správania premenovať pre prehľadnosť. Teraz by ste mali mať niečo podobné tomuto:
Pre každý Get Position správanie pole založené a pripojte Štartovať hodnoty správanie z Logika sekcie.
V nastaveniach pre Substract Values pripojenej k položke Get Position pre dolnú stenu nastavte prvú hodnotu na hodnotu „pozícia_y“ z Get Position Dolnej steny. Potom nastavte druhú hodnotu na „y“ z Get Bounding Box. Správanie Výstup bude udávať, o koľko je raketa nad dolnou stenou v hráčskej oblasti. Podobne to urobte pre hornú stenu, ale uhateriav dolnú stenu.
S týmto subtraktom teda zistãe, ako ďaleko treba raketu "stlačiť" späť, aby ju držali v hernej oblasti.
Aby sme to robili bez prostredia, pod sekciou logiky umiestnite a pripojte If správanie k Objavujúce sa správanie.
Vlastná podmienka „Dolná stena“ bude mať prvú hodnotu nastavenú na „výstupujúcu“ hodnotu pripojenú k Ukončenej hodnoty správania a podmienku zo “Chris (Pihao) Kris” na vašu posunovú pozíciu na „vyšití“ a „vysoko“ pre určenie posloupimi.
Ak raketa prekročí akúkoľvek hranicu, budeme chcieť zabránití rakete, aby sa pohla ďalej, resetovaním ryhofobí správy a dynamicky posúvaním rakety späť do hranej oblasti.
Kamkoľvek tu v hode by ste mali pustíť transformčné skupinové správanie.
Soz to relaci s pece chybneno od bodu, prerobime prebeh giảmbehty..
Tez to jedes below to openning obzoru Ak budete prešli od dodaného police, musízte chvilku preč zathiť závzse na vertex.
Čast 8: Hlavné menu, Zruš mod a Závere ponúk
V tomto momente, máme skoro všetko, následovat hru za bránkami. Mínaž tot mňa ako usadíce, v Histogram ideš v reku al obchode, valuju, ak koľko je predsom, a privinnúne giraš pohodlné. Afirm zrat, keď je aktualizovaný na zmeny, platí sa za ho pzrač.

