Programok 2D játékok készítéséhez programozás nélkül. Programok játékok készítéséhez


Ki ne szeretne számítógépen vagy okostelefonon játszani? Valószínűleg csak néhány ilyen ember van.

Egyes játékosok számára a játékok iránti szeretetük olyan messzire megy, hogy kezdik megérteni magát a szórakoztatást, és arról álmodoznak, hogy maguk készítsenek játékokat. Nos, ma számos lehetőség kínálkozik ennek a dédelgetett álmnak a megvalósítására!

Ha szabadidődben szeretnéd megalkotni saját játékodat, nézd meg a speciális ingyenes programok listáját.

Turmixgép



Ingyenes professzionális programcsomag interaktív játékok és 3D számítógépes grafika készítéséhez.

Kezdőknek és profiknak is van elegendő eszköz a munkához. A Blender modellezési, animációs, videó- ​​és hangfeldolgozási eszközöket tartalmaz.

A program egy teljes értékű szerkesztő, amely már tartalmazza a fő textúrákat, eseménykezelőket és modelleket. Ha további funkciókra van szüksége, letöltheti a bővítményeket: hivatalos fejlesztők és felhasználók készítik őket.

De ebben a programban találsz leckéket a munkáról.

Hajrá, hozz létre új univerzumokat!

Unity 3D


Ez egy hatékony környezet alkalmazások és játékok fejlesztéséhez, beleértve a mobileszközöket is. A Unity 3D-vel készített játékok Windows, iOS, Android, Playstation 3, Xbox 360 és Wii rendszeren futnak. Bármilyen műfajú játékot készíthet; A textúrák és modellek könnyen importálhatók, és minden népszerű képformátum támogatott.

A szkripteket elsősorban JavaScriptben írják, de a kód írható C#-ban is.

A hivatalos weboldalon itt találhat oktatási anyagokat a környezetvédelemmel kapcsolatos munkáról (angol nyelven).

Contract Classic

Nyílt forráskódú 2D és 3D játékkészítő. A működéshez nincs szükség programozási ismeretekre. Csak annyit kell tennie, hogy hozzáad egy objektumot, és bekapcsolja az animációt.

Orosz nyelvű verzió nincs, de a felület nagyon áttekinthető, így akár alapszintű angol nyelvtudással is lehet dolgozni.

A tervező nem csak ingyenes - nyílt forráskódú, és ha szeretné, testreszabhatja és tetszés szerint szerkesztheti.

Megnézheti a Construct Classic leckéket.

Game Maker Lite



Ingyenes program bármilyen műfajú egyszerű játékok fejlesztéséhez: platform, puzzle, akció és 3D játékok. Alkalmas kezdőknek. Használhatja saját képeit és effektjeit, vagy beépített programjait. A képek és effektusok nagyobb választékának eléréséhez regisztrálnia kell.

A működéshez nincs szükség programozási ismeretekre, de egyes szkriptek igény szerint önállóan is írhatók. Tehát ez a program programozás oktatására is használható.

A kezdőknek szóló programban való munkavégzésről szóló leckék ezen az oldalon találhatók.

Unreal Development Kit

Ingyenes motor játékok készítéséhez. Nagyon erős, rengeteg funkcióval és eszközzel fejlett vizualizációkhoz és részletes szimulációkhoz. Számos modern platformra készíthet játékokat.

A program már tartalmaz textúrákat, modelleket, hangokat, sprite-okat és szkripteket. Nincs más hátra, mint kombinálni és létrehozni saját játékot.

Videó oktatóanyagok és kézikönyvek a programmal való munkához megtekinthetők.

Játékszerkesztő

Szerkesztő egyszerű kétdimenziós játékok létrehozásához Windows, iOS, Android, Linux operációs rendszerekhez.

Vannak beépített animációs készletek, amelyek felelősek a karakterek megjelenéséért. Használhatja saját grafikai elemeit. A program egy szabványos reakciókészletet is biztosít, amely meghatározza a karakter viselkedését a játékban. De sajátot is létrehozhat a Game Editor speciális szkriptnyelvével.

3D Rad



Ingyenes program 3D játékok és interaktív alkalmazások fejlesztésére. Nincs szükség kód használatára, így saját játékok létrehozása meglehetősen egyszerű.

A játék különböző objektumok kiválasztásával és a köztük lévő interakciók beállításával jön létre. Van egy funkció a modellek importálására, nagyszámú példa és minta. A kész játékokat teljes értékű webalkalmazásként vagy programként terjesztheti. Lehetőség van játékok weboldalakba ágyazására.

Játékkészítő: Studio

Ingyenes eszközkészlet mobiljátékok készítéséhez. Egy egyszerű, intuitív kezelőfelület, amely meglehetősen egyszerűvé teszi a játékok fejlesztését. Nincs szükség programozási ismeretekre, mivel nem kell kézzel kódot írni.

A program munkaablakában nincs semmi felesleges. A Game Maker: Studio segítségével fejlesztett játékok többplatformosak, és kész alkalmazások integrálhatók a Steambe.

NeoAxis 3D motor

Univerzális környezet 3D projektek fejlesztéséhez.
Ez egy kész motor saját modellekkel, textúrákkal, fizikával, sablonokkal és grafikával. Még 24 kész, teljes értékű kártya is létezik!
Nem csak játékok, hanem egyedi modellek és összetett szoftveres vizualizációk készítésére is használható.

Nem marad más hátra, mint bekapcsolni a fantáziáját és alkotni.

Szeretnél saját játékot létrehozni? Nincs mit. Válassz programot, és irány az álmod!

Ki szeretné próbálni saját 2D-s játék létrehozását? Íme a legjobb eszközök a munkához, még akkor is, ha Ön még új ebben a vállalkozásban.

Nehéz játékokat készíteni. Minél többet tud erről a folyamatról, annál jobban meg fog lepődni, hogy valaki valóban végigcsinálja. Ahogy a PC Gamer egyik korábbi írója, Tom Francis mondta a Gunpoint játék programozási folyamatának leírásakor: „A játékon való munka során egy következtetésre jutottam: a játékom tiszta őrület. Ez egy elmegyógyintézet betege. Teljesen elment az esze, és fel kell készülnöd arra, hogy minden ésszerű érvet tébolyult, sikoltozó hülyeségekkel fogadnak majd.

Könnyű érezni, hogy túlterheli a játék tervezésével és programozásával járó hatalmas munka, de több független fejlesztőt is megkérdeztünk, és mindannyian ugyanazt a tanácsot adtak az újoncoknak: csak csináld. Vágja bele magát a munkájába, bármennyire is ijesztőnek tűnik. Annak érdekében, hogy segítsünk megtenni ezt az első (ijesztő, de végül kifizetődő) lépést, összeállítottunk egy listát a 2D-s motorokról a feltörekvő játékfejlesztők számára. Reméljük, hogy a tapasztalt játéktervezők ajánlásaival együtt hasznos lesz az Ön számára.

GameMaker Studio 2

Licencköltség: 100 dollár a PC-s verzióhoz; ingyenes próbaverzió elérhető

Alkalmas: rövid 2D platformerek és RPG-k; keresztplatformos játékok

Példák a játékokra: Nidhogg, Hyper Light Drifter, Undertale, Esőveszély

profik

Mark Essen, a Nidhogg és a Nidhogg 2 játékok szerzője szerint a GameMaker nagyszerű a kezdők számára, mivel a szkriptek létrehozásának rendszere a lehető legegyszerűbb és legáttekinthetőbb, a Yoyo Games portálon pedig kézikönyvek gyűjteményét, ill. útmutatók ebben a témában. Az interneten számos kiegészítő található a motorhoz, amelyek lehetővé teszik, hogy testre szabhassa felülről lefelé irányuló platformer vagy RPG létrehozásához.

Alex Preston, a Hyper Light Drifter megalkotója szerint a GameMaker motor közössége felbecsülhetetlen segítséget nyújt a kezdőknek. Megjegyzi, hogy az új fejlesztőknek "...kapcsolatba kell lépniük a fejlesztői közösséggel, és el kell sajátítaniuk az összes motoreszközt, hogy eljussanak oda, ahol kell – ehhez pedig érdemes tanácsot kérni tapasztalt fejlesztőktől."

Mínuszok

Természetesen nem valószínű, hogy azonnal tud olyan játékot létrehozni, amelyet közzé lehet tenni a Steamen. "Mivel a GameMaker használata nagyon egyszerű, a projektek gyakran kiegyensúlyozatlanok lesznek" - mondja Essen. "Szeretem, hogy a fejlesztés korai szakaszában gyorsan felvázolhatod a játékod vázát, és a dizájnjára koncentrálhatsz, de ez később visszaüthet, különösen, ha nem tartja be a szervezeti szabványokat!"

Duncan Drummond, a szeretett Risk of Rain szerzője arra is rámutat, hogy a GameMaker könnyű kezelhetősége a fejlesztők rémálma lehet. "Gyorsan létrehozhat egy játékot egy motorral, de ha figyelmen kívül hagyja a hibáit a korai szakaszban, akkor később ez megnövekszik a játék költségeivel" - mondja. Drummond megjegyzi, hogy a GameMakerrel való munka sajátosságai nagyon eltérnek a többi motorral való munkavégzéstől, így ha a jövőben Unityre vagy bármilyen más motorra szeretne váltani, valószínűleg jobban jár, ha máshol keres.

„Ne felejtse el törölni a régi műveit! Minél gyakrabban kezdesz elölről egy játékot, annál tapasztaltabb leszel a játéktervezésben." - Mark Essen, Nidhogg

„Kezdje csak! Indítsa be a motort, olvassa el a kézikönyveket és kezdje el dolgozni, még akkor is, ha nem igazán tudja megtenni. Minél több hibát követsz el, annál több leckét tanulsz." - Alex Preston, Hyper Light Drifter

„Ne félj elkezdeni! Ez egy érdekes és viszonylag egyszerű módja a fejlesztésnek, és nem vesztegeti az idejét." - Duncan Drummond, Risk of Rain

Egység

Licencköltség: Ingyenes kezdőcsomag, 35 USD/hó Unity Plus esetén, 125 USD/hó Unity Pro esetében

Alkalmas: szinte minden indie játék

Példák a játékokra: , Galak-Z, Undortól nyugatra, Cuphead

A Unity a népszerű független játékok fejlesztésének egyik legfontosabb platformja, és bár lenyűgöző 3D-s képességekkel rendelkezik, néhány csodálatos 2D-s játékot is készített. A Unity-t nehezebb megtanulni, mint a listán szereplő többi motort, de a nagy fejlesztői közösség és a rengeteg online elérhető oktatóanyag segíthet az indulásban.

A hivatalos Unity weboldalon speciális kiegészítőket is találhat, amelyek lehetővé teszik a motor testreszabását a 2D játékok fejlesztéséhez. Például az ingyenes 2D Platformer bővítmény vagy az olyan eszközök, mint a Corgi Engine és a Rex Engine, amelyek kifejezetten platformjátékosokhoz szabott játékfizikát, vezérlőket és funkciókat kínálnak.

Joseph Humphrey-vel az inkle-től és Victor Thompsonnal az Asymmetric Publications-tól beszélgettünk, akik a Unity-vel kapcsolatos tapasztalataikról beszéltek.

profik

Thompson, aki korábban klasszikus módon készített játékokat, gyorsan a Unity rajongója lett, a nemrég megjelent West of Loathing megalkotásához használt motor. „A motorral való 2-3 évnyi munka után leginkább az izgatott, hogy milyen gyorsan lehet összeállítani a koncepciókat és a prototípusokat” – mondja. „Sok különböző motort használtam, kicsiket a saját projektjeimhez, nagyokat pedig AAA-játékok fejlesztéséhez, de a Unity messze a legjobb motor, amit láttam, mert lehetővé teszi számomra, hogy a legproduktívabb legyek.”

Mínuszok

Ha azonban egyetlen platformot fog használni az összes fejlesztéshez, bizonyos korlátokba ütközik. Ha hibát talál a Unityben, meg kell várnia, amíg a motor szerzői kijavítják, és ez nem mindig gyors. „Bár a motor szerint a hibajavítás a legfontosabb, a tintafejlesztők továbbra is a hibakeresési stabilitást tartják a motor egyik fő problémájának” – mondja Humphrey.

„Először is próbálj meg képet alkotni a fejedben a végjátékról, és arra koncentrálj – a végcélod ne a folyamat során szerzett tapasztalat legyen, hanem a kész termék. Természetesen jó egy-két leckét levonni a kudarcból, de szerintem sokkal fontosabb kitűzni egy célt, megtanulni mindent, amit a cél eléréséhez kell, és végül megvalósítani." - Victor Thompson, West of Undor

Ren'Py

Licencköltség: Ingyen

Alkalmas: 2D vizuális regények, szimulációk

Kompatibilis valamivel: Python

Példák a játékokra: Éljen a királynő, Analóg: Gyűlölettörténet

A Ren'Py egy könnyen megtanulható nyílt forráskódú motor. Bár alapvető programozási ismereteket igényel, a kezdeti szakaszban már csak szövegszerkesztővel és képszerkesztő alkalmazásokkal kell dolgozni. Ez egy kényelmes kiindulópont azok számára, akik a Python programozási nyelv elsajátítását tervezik a jövőben.

profik

„A Ren’Py nyílt forráskódú és többplatformos természete rengeteg lehetőséget biztosít a motor minden felhasználója számára” – mondja Bensley. „Szerintem az is egy plusz, hogy a motort kezdőknek tervezték, ugyanakkor módosítani kell a játék programkódját. Jobb, mint egy grafikus drag and drop felület, mert megmutatja, hogy a programozásban nincs semmi ijesztő."
A Ren’Py neked való, ha félsz attól, hogy a semmiből készíts egy játékot:

„Az egyik legnagyobb akadály, amellyel a legtöbb ember, aki korábban nem dolgozott játékfejlesztéssel, az a meggyőződés, hogy a programozás „túl nehéz”, és ezért meghaladja a képességeiket. Ez a motor pedig lehetővé teszi egy egyszerű játék gyors és sikeres létrehozását, amely magabiztosságot ad a kezdő fejlesztőknek, még akkor is, ha a jövőben nem tervezik csak vizuális regények kiadását. Ha egyszer létrehozol valamit, amit mások is játszhatnak, akár egy egyszerű projektet is, többé nem kérdőjelezed meg a képességeidet.”

Mínuszok

A Ren'Py kissé korlátozott a grafika és a játékfunkciók tekintetében. Ha 3D-s, Live2D-s, sebzési rendszerrel és egyéb funkciókkal rendelkező játékokat szeretne készíteni, akkor más lehetőségeket kell keresnie.

tinta

Licencköltség: Ingyen

Alkalmas: szöveges kalandjátékok

Lelkiismeretesek vagyunk: Unity, C#, HTML

Példák a játékokra: 80 nap, varázslat!

Az Ink egy jó ingyenes kiegészítő a Unityhoz, ha dialógusszálakkal és kibővített történetmeséléssel szeretnéd feldobni a játékodat. Könnyen megtanulható, nem használ speciális kódot, és zökkenőmentesen integrálható a Unity rendszerrel. Ahogy a tinta készítője, Joseph Humphrey mondja, ez a motor egy „köztes” motor – miután tintával elkészített egy szkriptet, a Unity motor segítségével átvihető egy nagyobb játékba. Az Inky Editor azonban lehetővé teszi webes játékok létrehozását is.

profik

A sok párbeszédszálat tartalmazó nagy forgatókönyv létrehozása gyorsan zavarba ejtő káosztá válhat, így a tinta segít elkerülni, hogy a folyamat során eltévedjenek. „A játékszerzők a motor eszközeivel párbeszédet és szöveget hozhatnak létre könnyen használható interaktív szkriptformátumban, kulcsfontosságú jelzésekkel” – mondja Humphrey. „A Unity-ben futó tintamotor ezután képes elolvasni ezeket a szkripteket, és szöveget küldeni a játékon belüli képernyőkre.”

A nyílt forráskód fontos szerepet játszik az ambiciózus projektek kidolgozásában. Humphrey megjegyzi, hogy „a tintamotorban generált szöveget nem feltétlenül kell szövegként megjeleníteni. Például a Heaven’s Vault játékban a tintamotor dinamikus forgatókönyvet hoz létre, amelyet maga a játék értelmez egy interaktív, kalandelemeket tartalmazó grafikai regény formájában.”

Az ink kiváló eszköz azok számára is, akiket a puszta programozás helyett inkább a játékszkriptek írása érdekel. „... Folyamatosan növekszik azoknak az íróknak a száma, akik tintát használnak interaktív történetek írásához” – teszi hozzá Humphrey. „Ahol a víz íze olyan, mint a bor, az egyik ilyen példa. A Gone Home című játék szerzői hozták létre a tintamotor segítségével. Olyan híres forgatókönyvírók dolgoztak a játékon, mint Lee Alexander, Emily Short és Kara Ellison. Tehát ha szeretsz forgatókönyveket írni, és érdekel a játékfejlesztés, akkor az ink remek kiindulópont lehet."

Mínuszok

Az ink a legjobban a Unity motorral fejlesztett játékokhoz használható. Humphrey szerint "a tinta nem a Unity alternatívája, hanem inkább egy kiegészítő. Ezenkívül az ink az egyetlen interaktív szkriptkészítő eszköz, amelyet szándékosan hoztunk létre köztesként."

„Az egyetlen tanácsom, hogy próbáljak létrehozni egy demójátékot. Ha szeretné kitölteni a portfólióját, amely példákat mutat arra, hogy miben vagy jó, akkor itt az ideje, hogy elkezdje kitölteni. Hozd létre ezeket a példákat!”

2017 elején írtunk az RPG Maker hirtelen megjelenéséről a Steam platformon, és arról, hogy a motor rohamosan népszerűvé vált a feltörekvő indie fejlesztők körében. De vannak más eszközök is, amelyekre érdemes odafigyelni:

HaxeFlixel nyílt forráskódú és többplatformos.

Stencyl– programozás nélküli játékok készítésére szolgáló eszköz.

Építsd meg- ingyenes, alapján DirectX9, egy Windows játékkészítő, amelyet 2D játékok létrehozására terveztek. Kényelmes és egyszerű eseményalapú rendszert használ. Ezzel könnyedén megalkothatod azokat a szabályokat, amelyek szerint a játékod működni fog.

Nem kell tudnia programozni vagy szkripteket ismerni – semmi! Építsd meg világos kezdőknek és elég erős a profiknak. Ha csalódott más programok bonyolult logikai áramköreiben, próbálja ki Építsd meg. Könnyebb, mint amilyennek látszik!

Építsd meg nem kereskedelmi program, és önkéntesek fejlesztették ki. Jelenleg ingyenesen letöltheti a program teljes funkcionalitású verzióját bosszantó ablakok, hirdetések és korlátozások nélkül. A program teljesen működőképes verziója teljesen ingyenes!

Magamat Építsd meg GPL licenc alatt terjesztik. Ez a licenc azonban nem vonatkozik a programban létrehozott művekre. A segítségével készített műveit (játékok, programok stb.) terjesztheti és értékesítheti Építsd meg, és zárt forrásként is engedje el őket.

Indie játéktervezők, művészek vagy egyszerűen amatőrök lehet használni Építsd meg gyorsan és egyszerűen létrehozhatja saját virtuális világát programozás nélkül. Tanárok és diákok lehet használni Építsd meg hogy szórakoztató módon tanulja meg a logika alapelveit. Fejlesztők használhatja a programot drótvázak és prototípusok gyors létrehozására, vagy egyszerűen a kódolás alternatív, gyorsabb módjaként. Akárki is vagy Építsd meg számos funkcióval rendelkezik, amelyek segítenek megoldani a problémát.

Az alábbiakban a program főbb funkcióinak általános leírása található. Építsd meg.

Felület

Program interfész Építsd meg számos különböző füllel rendelkezik, amelyek gyors hozzáférést biztosítanak az eszközök széles skálájához. A felület teljes mértékben testreszabható, így tetszés szerint átszervezheti.

Tartalmaz egy projektvezérlő panelt, egy rétegek lapot, egy animáció lapot és egy tulajdonságpanelt. Ezek a panelek az Ön számára kényelmes helyen levehetők és rögzíthetők, méretük megváltoztatható és automatikus elrejtést is lehetővé tesz.

A szintszerkesztő teljesen vizuális, a WYSIWYG elvre épül, ami egyszerűvé és szórakoztatóvá teszi a játékszintek létrehozásának folyamatát. A panelen megtekintheti a hozzáadott effektusokat valós időben, elforgathatja és átméretezheti az objektumokat, valamint módosíthatja a projektbeállításokat. Tulajdonságok.

A programban van egy beépített is, amely lehetővé teszi sprite-ok, ikonok és textúrák létrehozását a szinten lévő objektumokhoz. Az objektumok különböző rétegekre helyezhetők el, ami lehetővé teszi parallaxis hatás létrehozását és a szintek szervezésének javítását.

Eseménylisták

Események itt Építsd meg olyan logikai blokkok listája, amelyek feltételekből és műveletekből állnak, amelyek viszont meghatározzák, hogyan kell pontosan működnie a játéknak. Nem kell semmilyen programozási nyelvet, szkriptet stb. használni vagy tanulni egy teljes értékű játék elkészítéséhez. Események itt Építsd meg egy nagyon hatékony eszköz, amely képes bármilyen játék létrehozására egyetlen sor programozás nélkül, ami különösen alkalmas kezdőknek. De még a tapasztalt programozók is sokkal gyorsabban érhetnek el eredményt a hagyományos programozáshoz képest.

Az események a lehetséges feltételek kiválasztásával jönnek létre. Ez nagyon egyszerű! Például létrehozol egy feltételt – amikor a karakterem hozzáér egy aranyérméhez. Most kiválasztasz egy akciót ehhez a feltételhez, például veszel egy érmét, és adj hozzá 1000 pontot a karakteredhez! Az események listáját úgy alakítottuk ki, hogy a lehető legvilágosabb és intuitívabb legyen, hogy erőfeszítés nélkül azonnali eredményeket érhessen el. Az események teljes listái könnyen csoportosíthatók, másolhatók, áthelyezhetők, és akár más szinteken is felhasználhatók, így megkímélheti az eseményeket minden szinten folyamatosan újra létrehozni.

Kipróbálhatja most, mindössze 5 perc alatt, és saját szemével győződjön meg arról, milyen egyszerű a programban való munkavégzés Építsd meg.

Tárgyak és viselkedések

Építsd meg magába foglalja több mint 60 objektum és 20 beépített viselkedés. Az objektumok segítségével sprite-okat hozhat létre, irányíthatja a játékot, zenét játszhat, hangokat játszhat, részecskeeffektusokat hozhat létre és még sok mást.

Tárgyak építészete Építsd meg lehetőséget ad minden érdeklődő C++ fejlesztőnek az SDK használatával, hogy beírja és objektumként használja őket Építsd meg, amely lehetővé teszi a program képességeinek korlátlan bővítését.

A viselkedések azonnal kibővítik az objektumok képességeit. Például a viselkedés hozzáadásával egy sprite-hoz Felület futással és ugrálással azonnal irányíthatja a szintet. Könnyedén változtathatod a futási sebességet, az ugráserőt stb., ami lehetővé teszi karaktered vagy a játék bármely más tárgyának viselkedését teljesen személyre szabhatod. A viselkedések időt takarítanak meg, mert megóvják attól, hogy ugyanazokhoz a feladatokhoz újra kelljen eseményeket létrehoznia. Például a viselkedés Áttűnés lehetővé teszi az objektumok automatikus eltűnését vagy megjelenését a játékszinten. A viselkedések lehetővé teszik az ellenségek irányítását, valósághű fizikai szimulációk létrehozását és még sok mást.

Hatások és vizualizáció

A létrehozott játék futtatásakor a renderelés a használatával történik DirectX9 hardveres gyorsítással, ami a videokártya használatával optimális teljesítményt nyújt, és lehetővé teszi a pixel shader használatát.

BAN BEN Építsd meg elérhető több mint 50 effektus, amellyel létrehozhat torzítás, keverés, elhomályosít, hullám- és lencsehatások, maszkokés még sok más. Alkalmazhat effektusokat adott objektumokra vagy akár egy teljes szintre. Mindegyik effektus rugalmas beállításokkal rendelkezik, amelyek segítségével gyorsan és egyszerűen hozhat létre gyönyörű és lenyűgöző speciális effektusokat.

Karácsonyi kirakós játék. Újévi kaland a Match-3 műfaj logikai rejtvényében Mary Jane. A megadott időn belül meg kell törni az összes zsetont úgy, hogy 3 vagy több zsetont teszel egymás után. A lenyűgöző grafika és hangzás hosszú ideig a képernyőhöz ragasztja. A játéknak csak 3 szintje van, aminek a végén egy gyönyörű és menő képernyővédőt fogsz látni!

Projektsztár. Klasszikus arcade shooter, ahol egy kis űrhajót irányítasz. A játéknak csak 1 szintje van, amelyben 5 féle ellenféllel kell megküzdenie. A játék nagyon hatékonyan és dinamikusan készült, nem engedi a játékost ellazulni, a filmzene pedig még jobban elmerít a játék hangulatában.

Big Boom. A legveszélyesebb gengszter-felforgató az „N” város központi börtönében tölti idejét. Boldogan kellett volna élnie, amíg meg nem hal, de a következő születésnapjára a gengszter tortát kap, csokoládébombával a feje tetején. A hülye őrök észre sem vették, hogy egy igazi bomba van a tortában! A torta elfogyasztása után a bandita elvette a bombát és...

Kalózok. Tengeri kaland az Arkanoid műfajban. Te irányítasz egy hajót, amelynek feladata a kalózhajók elpusztítása. Minden szinten a játék nehezebbé válik, és az ellenség agresszívebben viselkedik. A hajók elpusztításával érméket és bónuszokat keresel. A játéknak 4 fényes és dinamikus szintje van, amelyek teljesítése után egy gyönyörű képernyővédőt fog látni!

Közösség

Fórumunkon lelkes felhasználók egész közössége található, akik segítségével Építsd meg készítsenek saját egyedi műveket, és osszák meg őket más résztvevőkkel. Ön is csatlakozhat és megmutathatja alkotásait. Fórumunkon technikai támogatást kaphat, és megismerheti az új programkiadásokat Építsd meg, olvassa el a felhasználói leckéket, találjon hasonló gondolkodású embereket, akik közös projekteken dolgozhatnak, és sok hasznos információt megtudhat a programról.

Látogassa meg oldalunkat, ahol minden friss hírt közölünk a programmal kapcsolatban Építsd meg, és lépjen a videócsatornánkra Youtube oktatási videók, játékbemutatók és példák megtekintéséhez.

Átmenetileg Építsd meg fejlesztés alatt áll, így segíthet a javításban azzal, hogy bejelenti a program használata során tapasztalt problémákat, hogy a fejlesztők tudjanak róluk és kijavíthassák azokat.

Kérjük, jelentse a hibákat a hivatalosnak (angol nyelvű weboldal).

Ezen a nyomkövetőn nyomon követheti a teljes hibaelőzményt, és központilag tárolhatja, hogy ne felejtse el az esetleges változtatásokat. Hiba bejelentéséhez létre kell hoznia egy fiókot a(z) webhelyen. Ha Ön regisztrált felhasználó, a fejlesztők könnyedén felvehetik Önnel a kapcsolatot, ha további információra van szükség egy hibával kapcsolatban.

Figyelem: a SourceForge.net tracker hibaüzeneteit kizárólag angol nyelven kell közzétenni!

Fejlesztők Építsd meg használja a megadott információkat a talált hiba kijavításához. A hibajelentések gyakran nem adnak elegendő információt a fejlesztők számára a probléma megoldásához. Ezért Nagyon fontos, hogy a hibajelentés tartalmazza a következő pontokat:

  • Ne felejtse el kiegészíteni a hibaüzenetet .sapka fájl, amelyben van egy probléma. A lehető legegyszerűbbnek kell lennie, hogy gyorsan megtalálja és megértse a hiba természetét.
  • Írjon a .cap fájlba is lépésről lépésre útmutató a probléma előidézéséhez hogy a fejlesztők nyomon követhessék tevékenységeit, és lássák, mit látott a hiba bekövetkeztekor.
  • Adja meg Construct verziója, amelyet használ, és ha lehetséges, a videokártya jellemzőit (különösen fontos a grafikai és renderelési problémák megoldásánál).

Egy jó hibajelentésre példaként tekintse meg a viselkedést Platform (angol nyelvű weboldal).

Valószínűleg mindenki, aki játszott számítógépes játékokkal, legalább egyszer gondolkodott azon, hogy saját játékot készítsen, és visszavonult az előtte álló nehézségek elől. De egy játék egyszerűen létrehozható, ha van egy speciális program a kezében, és nem mindig van szüksége a programozási nyelvek ismeretére az ilyen programok használatához. Az interneten számos játéktervezőt találhat kezdőknek és profiknak egyaránt.

Ha úgy dönt, hogy elkezd játékokat készíteni, akkor feltétlenül keresnie kell magának fejlesztő szoftvert. Programokat válogattunk össze, amelyek segítségével programozás nélkül hozhat létre játékokat.

A Game Maker egy egyszerű tervezőprogram 2D-s és 3D-s játékok létrehozására, amely lehetővé teszi játékok létrehozását számos platformon: Windows, iOS, Linux, Android, Xbox One és mások. De a játékot minden operációs rendszerhez be kell állítani, mivel a Game Maker nem garantálja, hogy a játék mindenhol ugyanúgy működik.

A kivitelező előnye, hogy alacsony belépési korláttal rendelkezik. Ez azt jelenti, hogy ha még soha nem fejlesztett játékokat, akkor nyugodtan letöltheti a Game Maker-t - nem igényel különleges programozási ismereteket.

Játékokat készíthet vizuális programozási rendszerrel vagy a beépített GML programozási nyelv használatával. Javasoljuk, hogy tanulmányozza a GML-t, mivel segítségével a játékok sokkal érdekesebbek és jobb minőségűek.

A játékok létrehozásának folyamata itt nagyon egyszerű: sprite-ok létrehozása a szerkesztőben (kész rajzokat tölthet fel), különböző tulajdonságú objektumok létrehozása és szintek (szobák) létrehozása a szerkesztőben. A Game Maker játékfejlesztési sebessége sokkal gyorsabb, mint más hasonló motorokon.

Unity 3D

Az egyik legerősebb és legnépszerűbb játékmotor a Unity 3D. Segítségével bármilyen bonyolultságú és műfajú játékokat készíthet, ugyanazzal a vizuális programozói felülettel. Bár kezdetben a teljes értékű játékok Unity3D-n történő létrehozása magában foglalta a programozási nyelvek, például a JavaScript vagy a C# ismeretét, ezekre szükség van nagyobb projektekhez.

A motor rengeteg lehetőséget kínál, csak meg kell tanulnod használni. Ehhez rengeteg képzési anyagot talál az interneten. Maga a program pedig minden lehetséges módon segíti a felhasználót kreativitása terén.

Platformokon átívelő, stabilitás, nagy teljesítmény, felhasználóbarát felület – ez csak egy kis lista a Unity 3D motor előnyeiről. Itt szinte bármit létrehozhat: a Tetristől a GTA 5-ig. De a program a legjobban az indie játékfejlesztőknek felel meg.

Ha úgy dönt, hogy nem ingyenesen, hanem más áron is felveszi játékát a PlayMarketre, akkor az eladások bizonyos százalékát ki kell fizetnie a Unity 3D fejlesztőinek. És nem kereskedelmi használatra a program ingyenes.

És ismét vissza a tervezőkhöz! A Clickteam Fusion egy program 2D-s játékok létrehozására drag'n'drop felülettel. Itt nem kell programozni, mert a játékokat darabonként fogja össze, mint egy építőkészletet. De úgy is készíthet játékokat, hogy minden objektumhoz kódot ír.

Ezzel a programmal bármilyen bonyolultságú és bármilyen műfajú játékot készíthet, lehetőleg statikus képpel. Ezenkívül az elkészített játék bármilyen eszközön elindítható: számítógépen, telefonon, PDA-n stb.

A program egyszerűsége ellenére a Clickteam Fusion számos változatos és érdekes eszközzel rendelkezik. Van egy tesztelési mód, amelyben ellenőrizheti a játékot a hibákért.

A Clickteam Fusion nem drága a többi programhoz képest, ráadásul ingyenes demóverziót is letölthet a hivatalos weboldalról. Sajnos a program nem alkalmas nagy játékokhoz, de kis játéktermekhez pont megfelelő.

Egy másik nagyon jó program kétdimenziós játékok készítésére a Construct 2. A vizuális programozás segítségével különféle népszerű és nem túl népszerű platformokra készíthet játékokat.

Egyszerű és intuitív kezelőfelületének köszönhetően a program olyan felhasználók számára is megfelelő, akik még soha nem foglalkoztak játékfejlesztéssel. Ezenkívül a kezdők számos oktatóanyagot és játékpéldát találnak a programban, az összes folyamat részletes magyarázatával.

A szabványos beépülő modulok, viselkedések és vizuális effektusok mellett ezeket saját maga is hozzáadhatja, ha letölti az internetről, vagy ha Ön tapasztalt felhasználó, írhat beépülő modulokat, viselkedéseket és effektusokat JavaScriptben.

De ahol vannak előnyei, ott vannak hátrányai is. A Construct 2 fő hátránya, hogy a további platformokra történő exportálás csak harmadik féltől származó programok segítségével történik.

A CryEngine az egyik legerősebb 3D-s játékok készítésének motorja, amelynek grafikus képességei minden hasonló programot felülmúlnak. Itt születtek olyan híres játékok, mint a Crysis és a Far Cry. És mindez programozás nélkül is lehetséges.

Itt egy nagyon nagy készletet talál a játékfejlesztéshez, valamint olyan eszközöket, amelyekre a tervezőknek szüksége van. Gyorsan létrehozhat modellvázlatokat a szerkesztőben, vagy azonnal a helyszínen.

Az EdgeEngin fizikai rendszere támogatja a karakterek, járművek inverz kinematikáját, a kemény és lágy testek, folyadékok és szövetek fizikáját. Így a játék tárgyai egészen valósághűen fognak viselkedni.

A CryEngine természetesen nagyon klassz, de ennek a szoftvernek az ára megfelelő. A program próbaverzióját megtekintheti a hivatalos weboldalon, de csak haladó felhasználók vásárolhatják meg, akik képesek fedezni a szoftver költségeit.

A Game Editor egy másik játéképítő a listánkon, amely hasonlít egy egyszerűsített Game Makerhez. Itt egyszerű 2D játékokat készíthet különösebb programozási ismeretek nélkül.

Itt csak színészekkel fog dolgozni. Ezek lehetnek karakterek és „belső” elemek is. Minden szereplőnek sokféle tulajdonsága és funkciója lehet. A műveleteket kód formájában is írhatja, vagy egyszerűen kiválaszthat egy kész szkriptet.

Ezenkívül a Game Editor segítségével játékokat készíthet számítógépre és telefonra egyaránt. Ehhez egyszerűen mentse el a játékot a megfelelő formátumban.

Sajnos nem valószínű, hogy nagy projektet hoz létre a Game Editor segítségével, mivel ez sok időt és erőfeszítést igényel. További hátrány, hogy a fejlesztők felhagytak a projektjükkel, és egyelőre nem várható frissítés.

És itt van a Unity 3D és a CryEngin versenytársa - Unreal Development Kit. Ez egy másik erőteljes játékmotor 3D-s játékok fejlesztéséhez számos népszerű platformon. A játékokat itt is programozási nyelvek használata nélkül lehet létrehozni, hanem egyszerűen kész események objektumokhoz rendelésével.

A program elsajátításának bonyolultsága ellenére az Unreal Development Kit nagyszerű lehetőségeket kínál a játékok létrehozására. Azt tanácsoljuk, hogy tanulja meg mindegyiket használni. Szerencsére rengeteg anyagot találsz az interneten.

Nem kereskedelmi használatra ingyenesen letöltheti a programot. De amint elkezd pénzt kapni a játékért, kamatot kell fizetnie a fejlesztőknek, a kapott összegtől függően.

Az Unreal Development Kit projekt nem áll meg, és a fejlesztők rendszeresen tesznek közzé kiegészítéseket és frissítéseket. Továbbá, ha bármilyen problémája van a programmal való munka során, lépjen kapcsolatba a hivatalos webhelyen található támogatási szolgálattal, és biztosan segítenek.

A Kodu Game Lab valószínűleg a legjobb választás azoknak, akik elkezdenek 3D-s játékfejlesztéssel foglalkozni. A színes és áttekinthető felületnek köszönhetően a játékok létrehozása ebben a programban érdekes és egyáltalán nem nehéz. Általánosságban elmondható, hogy ezt a projektet iskolások tanítására fejlesztették ki, de még felnőttek számára is hasznos lesz.

A program nagyon jó abban, hogy megértse, hogyan készülnek a játékok és mik azok. Mellesleg, egy játék létrehozásához nincs is szükség billentyűzetre - mindent meg lehet csinálni egy egérrel. Ide nem kell kódot írni, csak az objektumokra és eseményekre kell kattintani.

A Code Game Lab különlegessége, hogy egy ingyenes orosz nyelvű program. És ez, ne feledje, nagyon ritka a komoly játékfejlesztő programok között. Sok oktatási anyag is található, érdekes küldetések formájában.

De bármennyire is jó a program, vannak hátrányai is. A Kodu Game Lab egyszerű, igen. De nincs annyi eszköze, amennyit szeretnénk. Ez a fejlesztői környezet a rendszererőforrások tekintetében is meglehetősen igényes.

A 3D Rad egy meglehetősen érdekes program 3D-s játékok létrehozásához a számítógépen. Mint az összes fent említett program, ez is vizuális programozási felületet használ, ami a kezdő fejlesztőknek tetszeni fog. Idővel megtanulja, hogyan hozhat létre szkripteket ebben a programban.

Ez azon kevés programok egyike, amelyek kereskedelmi használatra is ingyenesek. Szinte minden játékmotort meg kell vásárolni, vagy a bevétel egy százalékát le kell vonni. A 3D Radban bármilyen műfajú játékot létrehozhat, és pénzt kereshet vele.

Érdekes módon a 3D Rad-ban létrehozhat többjátékos vagy hálózati játékot, és akár játékcsevegést is létrehozhat. Ez a program másik érdekessége.

A tervező a vizualizáció minőségével és a fizikai motorral is örömet okoz. Testreszabhatja a kemény és puha testek viselkedését, és a kész 3D modelleket is rákényszerítheti a fizika törvényeinek betartására, ha rugókat, csuklókat stb. ad hozzájuk.

Egy másik érdekes és színes program - Stencyl - segítségével fényes és színes játékokat hozhat létre számos népszerű platformon. A programnak nincsenek műfaji megkötései, így itt minden ötletet életre kelthet.

A Stencyl nem csupán egy alkalmazásfejlesztő szoftver, hanem egy olyan eszközkészlet, amely megkönnyíti az alkalmazás létrehozását, és lehetővé teszi, hogy a legfontosabbra összpontosítson. Ebben az esetben nem kell saját kezűleg megírnia a kódot – mindössze annyit kell tennie, hogy a blokkokat a kóddal együtt mozgatja, ezzel megváltoztatva az alkalmazás főszereplőinek viselkedését.

Természetesen a program ingyenes verziója meglehetősen korlátozott, de ez is elegendő egy kicsi és érdekes játék létrehozásához. Sok oktatóanyagot is talál, valamint a hivatalos wiki enciklopédiát - Stencylpedia.

Ez csak egy kis része az összes létező játékkészítési programnak. A listán szereplő programok szinte mindegyike fizetős, de bármikor letölthet egy próbaverziót, és eldöntheti, megéri-e a pénzt. Reméljük itt találsz valamit magadnak, és hamarosan láthatjuk az általad készített játékokat.



Ez az oktatóanyag elsősorban azoknak szól, akik még nem ismerik az Android-fejlesztést, de hasznos lehet a tapasztaltabb fejlesztők számára is. Itt elmondjuk, hogyan hozhat létre egyszerű 2D-s játékot Androidon játékmotorok használata nélkül. Ehhez az Android Studiót használtam, de bármilyen más megfelelően konfigurált fejlesztői környezet használható.

1. lépés: Találjon ki egy játékötletet
Vegyünk például egy meglehetősen egyszerű ötletet:

A képernyő alján egy űrhajó látható. A megfelelő gombok megnyomásával balra és jobbra mozoghat. Az aszteroidák felülről függőlegesen lefelé mozognak. A képernyő teljes szélességében megjelennek, és különböző sebességgel mozognak. A hajónak ki kell kerülnie a meteoritokat, ameddig csak lehetséges. Ha egy meteorit eltalálja, akkor a játéknak vége.


2. lépés: Hozzon létre egy projektet
Az Android Studio programban válassza a Fájl > Új > Új projekt lehetőséget a felső menüből.

Itt írjuk be az alkalmazás nevét, tartományát és elérési útját. Kattintson a Tovább gombra.

Itt lehet megadni az androidos verziót. Androidos karórát és tévét is választhat. De nem vagyok benne biztos, hogy az alkalmazásunk mindezeken működni fog. Tehát jobb, ha mindent úgy ír be, mint a képernyőképen. Kattintson a Tovább gombra.

Itt ki kell választani az Üres tevékenységet. És kattintson a Tovább gombra.

Itt hagyunk mindent a régiben, és kattintsunk a Befejezés gombra. Tehát a projekt létrejött. Térjünk át a harmadik lépésre.

3. lépés: Képek hozzáadása

5. lépés Szerkessze a MainActivity osztályt

Először is adja hozzá a View.OnTouchListener implementációt az osztálydefinícióhoz. Az osztálydefiníció most a következő lesz:

Nyilvános osztály MainActivity kiterjeszti AppCompatActivity valósítja meg a View.OnTouchListener (
Adjuk hozzá az osztályhoz a szükséges statikus változókat (osztályváltozókat):

Nyilvános statikus logikai érték isLeftPressed = false; // bal gomb megnyomva public static logikai érték isRightPressed = false; // jobb gomb megnyomva
A védett void onCreate(Bundle savedInstanceState) eljárásban (
add hozzá a sorokat:

GameView gameView = new GameView(this); // játék létrehozásaView LinearLayout gameLayout = (LinearLayout) findViewById(R.id.gameLayout); // gameLayout megkeresése gameLayout.addView(gameView); // és add hozzá a gameView gombot leftButton = (Button) findViewById(R.id.leftButton); // gombok keresése Button rightButton = (Button) findViewById(R.id.rightButton); leftButton.setOnTouchListener(this); // és hozzáadjuk ezt az osztályt figyelőként (az onTouch lenyomva működik) rightButton.setOnTouchListener(this);
Osztályok Lineáris elrendezés, Gomb stb. pirossal vannak kiemelve, mert még nem lettek hozzáadva az Importáláshoz.
A piros kiemelés hozzáadásához és eltávolításához az importáláshoz, mindegyiknél meg kell nyomnia az Alt+Enter billentyűkombinációt.
A GameView piros színnel lesz kiemelve, mert ez az osztály még nem létezik. Később létrehozzuk.

Most hozzáadjuk az eljárást:

Nyilvános logikai érték onTouch(View gomb, MotionEvent mozgás) ( switch(button.getId()) ( // határozza meg, melyik gomb kis- és nagybetűje R.id.leftButton: kapcsoló (motion.getAction())) ( // annak meghatározása, hogy le van-e nyomva vagy elengedve case MotionEvent. ACTION_DOWN: isLeftPressed = true; break; case MotionEvent.ACTION_UP: isLeftPressed = false; break; ) break; case R.id.rightButton: kapcsoló (motion.getAction())) ( // annak meghatározása, hogy le van-e nyomva vagy elengedve case MotionEvent.ACTION_DOWN: isRightPressed = true; break; case MotionEvent.ACTION_UP: isRightPressed = false; break; ) break; ) true return; )
Ha valaki össze van zavarodva? Így kell kinéznie az eredményül kapott MainActivity osztálynak:

com.spaceavoider.spaceavoider csomag; android.support.v7.app.AppCompatActivity importálása; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; public class MainActivity kiterjeszti AppCompatActivity valósítja meg a View.OnTouchListener-t ( nyilvános statikus logikai érték isLeftPressed = false; // bal gomb meg van nyomva public static logikai érték isRightPressed = false; // jobb gomb lenyomva @A védett void felülírása aCreate(Bundle savedInstanceState)(onCreate) ( super. savedInstanceState) ; setContentView(R.layout.activity_main); GameView gameView = new GameView(this); // gameView LinearLayout létrehozása gameLayout = (LinearLayout) findViewById(R.id.gameLayout); // gameLayout keresése gameLayout.addView(gameView) ; / / és add hozzá a játékotView Button leftButton = (Button) findViewById(R.id.leftButton); // keresd meg a gombokat Button rightButton = (Button) findViewById(R.id.rightButton); leftButton.setOnTouchListener(this); // és adja hozzá ezt az osztályt figyelőként (ha megnyomja, az onTouch működni fog) rightButton.setOnTouchListener(this); ) public boolean onTouch(View gomb, MotionEvent mozgás) ( switch(button.getId()) ( // határozza meg, melyik gomb kis- és nagybetűje R .id.leftButton : kapcsoló (motion.getAction()) ( // annak meghatározása, hogy lenyomva vagy felengedve a MotionEvent.ACTION_DOWN: isLeftPressed = true; szünet; case MotionEvent.ACTION_UP: isLeftPressed = false; szünet; ) szünet; case R.id.rightButton: switch (motion.getAction()) ( // annak meghatározása, hogy le van-e nyomva vagy elengedve case MotionEvent.ACTION_DOWN: isRightPressed = true; break; case MotionEvent.ACTION_UP: isRightPressed = false; break; ) break; ) true return; ) )
Tehát a MainActivity osztály készen áll! Ez elindítja a még nem létrehozott GameView osztályt. A bal gomb megnyomásakor pedig a statikus változó LeftPressed = true, a jobb gomb megnyomásakor pedig isRightPressed = igaz. Lényegében csak ennyit csinál.

Először is győződjünk meg arról, hogy az űrhajó megjelenik a képernyőn, és hogy a vezérlőgombok megnyomásakor mozog. Az aszteroidákat későbbre hagyjuk.

6. lépés: Hozd létre a GameView osztályt

Most végre hozzuk létre azt a hiányzó GameView osztályt. Tehát kezdjük. Adjunk hozzá kiterjesztéseket a SurfaceView futtatható implementációkhoz az osztálydefinícióhoz. A mobileszközök képernyőfelbontása eltérő. Lehet ez egy régi kis telefon 480x800 felbontással, vagy egy nagy táblagép 1800x2560 felbontással. Annak érdekében, hogy a játék minden eszközön ugyanúgy nézzen ki, a képernyőt 20 részre osztottam vízszintesen és 28 részre függőlegesen. A kapott mértékegységet egységnek neveztem. Választhat más számokat is. A lényeg az, hogy a köztük lévő kapcsolat megközelítőleg megmaradjon, különben a kép megnyúlik vagy összenyomódik.

Nyilvános statikus int maxX = 20; // vízszintes méret public static int maxY = 28; // függőleges méret nyilvános statikus lebegő egységW = 0; // pixel egységenként vízszintesen nyilvános statikus lebegő egységH = 0; // pixel egységenként függőlegesen
A W egységet és a W egységet később számítjuk ki. Más változókra is szükségünk lesz:

Privát logikai érték firstTime = igaz; privát logikai gameRunning = igaz; privát Hajóhajó; private Thread gameThread = null; privát Festék festék; privát vászonvászon; privát SurfaceHolder felületHolder;
A kivitelező a következő lesz:

Public GameView(Context context) ( szuper(kontextus); //objektumok inicializálása felület rajzolásáhozHolder = getHolder(); paint = new Paint(); //a szál inicializálása gameThread = new Thread(this); gameThread.start(); )
A run() metódus végtelen ciklust fog tartalmazni. A ciklus elején az update() metódus kerül végrehajtásra
amely kiszámolja a hajó új koordinátáit. Ezután a draw() metódus kirajzolja a hajót a képernyőre. És a végén a control() metódus 17 ezredmásodpercig szünetel. 17 ezredmásodperc után a run() újra lefut. És így tovább a gameRunning == igaz változóig. Ezek a módszerek:

@Override public void run() ( while (gameRunning) ( update(); draw(); control(); ) ) private void update() ( if(!firstTime) ( ship.update(); ) ) private void draw () ( if (surfaceHolder.getSurface().isValid()) ( //ellenőrizze, hogy a felület érvényes-e if(firstTime)( // inicializálás első indításkor firstTime = false; unitW = felületHolder.getSurfaceFrame().width() /maxX ; // kiszámítja a pixelek számát az egységbenH = felületHolder.getSurfaceFrame().height()/maxY; ship = new Ship(getContext()); // hajó hozzáadása ) canvas = felületHolder.lockCanvas() ; // zárja be a vászonvászont .drawColor(Color.BLACK); // töltse ki a hátteret fekete hajóval.drow(paint, canvas); // rajzolja meg a hajó felületétHolder.unlockCanvasAndPost(canvas); // nyissa meg a vásznat ) ) private void control() ( // szünet 17 ezredmásodpercig próbálkozzon ( gameThread.sleep(17); ) fogás (InterruptedException e) ( e.printStackTrace(); ) )
Az első indításkor ügyeljen az inicializálásra. Ott kiszámítjuk az egységben lévő pixelek számát, és hozzáadjuk a hajót. Még nem hoztuk létre a hajót. De először létrehozzuk a szülőosztályát.

7. lépés: Hozza létre a SpaceBody osztályt

Ez lesz a Hajó és Aszteroida osztályok szülője. Tartalmazni fogja az összes e két osztályra jellemző változót és metódust. Változók hozzáadása:

Védett úszó x; // védett lebegő koordináták y; védett úszóméret; // méretvédett lebegési sebesség; // sebességvédett int bitmapId; // képazonosító védett Bitmap bitmap; // kép
és módszerek

Void init(Context context) ( // tömörítse a képet a kívánt méretre Bitmap cBitmap = BitmapFactory.decodeResource(context.getResources(), bitmapId); bitmap = Bitmap.createScaledBitmap(cBitmap, (int)(méret * GameView.unitW) , ( int)(méret * GameView.unitH), false); cBitmap.recycle(); ) void update())( // az új koordinátákat itt számítjuk ki ) void drow(festékfesték, vászonvászon)( // rajzol egy kép canvas.drawBitmap (bitmap, x*GameView.unitW, y*GameView.unitH, paint);)
8. lépés: Hozza létre a Hajó osztályt

Most hozzuk létre a Hajó osztályt. Ez örökli a SpaceBody osztályt, ezért a kiterjesztett SpaceBody-t hozzáadjuk az osztálydefinícióhoz.

Írjunk egy konstruktort:

Nyilvános szállítás (Kontextus kontextus) ( bitmapId = R.drawable.ship; // a kezdeti paraméterek mérete = 5; x=7; y=GameView.maxY - méret - 1; sebesség = (lebegő) 0,2; init(context) ; // inicializálja a hajót)
és felülírja az update() metódust

@A public void update() felülbírálása ( // a hajó mozgatása a megnyomott gombtól függően if(MainActivity.isLeftPressed && x >= 0)( x -= speed; ) if(MainActivity.isRightPressed && x<= GameView.maxX - 5){ x += speed; } }
Ezzel kész is az űrhajó! Mindent összeállítunk és futtatunk. Egy űrhajónak kell megjelennie a képernyőn. A gombok megnyomásakor balra és jobbra kell mozognia. Most hozzáadjuk a felülről zuhanó aszteroidákat. Ha összeütközik egy hajóval, a játék véget ér.

9. lépés: Hozza létre az aszteroida osztályt

Adjuk hozzá az aszteroida osztályt. A SpaceBody osztályt is örökli, ezért a kiterjesztett SpaceBody-t hozzáadjuk az osztálydefinícióhoz.

Adjuk hozzá a szükséges változókat:

Privát int sugár = 2; // sugár privát lebegés minSpeed ​​= (lebegés) 0,1; // minimális sebesség privát lebegés maxSpeed ​​= (lebegés) 0,5; // maximális sebesség
Az aszteroidának egy véletlenszerű pontban kell megjelennie a képernyő tetején, és véletlenszerű sebességgel le kell repülnie. Ehhez az x-et és a sebességet egy véletlenszám-generátor segítségével adjuk meg a konstruktorában.

Nyilvános aszteroida (kontextus) ( Véletlen véletlen = new Random(); bitmapId = R.rajzolható.aszteroida; y=0; x = random.nextInt(GameView.maxX) - sugár; méret = sugár*2; sebesség = minSpeed + (max.Speed ​​- minSpeed) * random.nextFloat(); init(context); )
Az aszteroidának függőlegesen lefelé kell mozognia egy bizonyos sebességgel. Ezért az update() metódusban sebességet adunk az x koordinátához.

@A public void update() felülbírálása ( y += sebesség; )
Szükségünk lesz egy módszerre is annak meghatározására, hogy egy aszteroida ütközött-e hajóval.

Nyilvános logikai isCollision(úszó hajóX, úszó hajóY, úszó hajóméret) ( return !(((x+méret)< shipX)||(x >(hajóX+hajóméret))||((y+méret)< shipY)||(y >(shipY+shipSize))); )
Nézzük meg közelebbről. Az egyszerűség kedvéért a hajót és az aszteroidát négyzeteknek tekintjük. Itt az ellenkezőjéről indultam el. Vagyis én határozom meg, hogy a négyzetek mikor NEM metszik egymást.

((x+méret)< shipX) - корабль слева от астероида.
(x > (hajóX+hajóméret)) - az aszteroida jobb oldalán lévő hajó.
((y+méret)< shipY) - корабль сверху астероида.
(y > (shipY+shipSize)) - hajó az aszteroida alól.

E négy kifejezés között a || (vagy). Vagyis ha legalább egy kifejezés igaz (ami azt jelenti, hogy a négyzetek NEM metszik egymást), akkor a kapott kifejezések is igazak.

Ezt az egész kifejezést megfordítom a jellel!. Ennek eredményeként a metódus igazat ad vissza, amikor a négyzetek metszik egymást. Amire pontosan szükségünk van.

Az összetettebb alakzatok metszéspontjának meghatározásáról olvashat.

10. lépés: Adjon hozzá aszteroidákat a GameView-hoz

Változók hozzáadása a GameView-hoz:

Privát ArrayList aszteroidák = új ArrayList<>(); // az aszteroidák itt lesznek tárolva private final int ASTEROID_INTERVAL = 50; // idő, amely után az aszteroidák megjelennek (iterációban) private int currentTime = 0;
2 módszert is hozzáadunk:

Privát void checkCollision())( // menjen végig az összes aszteroidán, és ellenőrizze, hogy valamelyik hozzáér-e a hajóhoz (Aszteroida aszteroida: aszteroidák) ( if(asteroid.isCollision(ship.x, ship.y, ship.size)) ( // a játékos elvesztette a játékotRunning = false; // állítsa le a játékot // TODO add explosion animation ) ) ) private void checkIfNewAsteroid())( // minden 50 iterációban új aszteroida hozzáadása if(currentTime >= ASTEROID_INTERVAL)( Kisbolygó aszteroida = új aszteroida(getContext() ); aszteroidák.add(aszteroida); aktuálisIdő = 0; )else( currentTime ++; ) )
A run() metódusban pedig hívásokat adunk ezekhez a metódusokhoz a control() hívás előtt.

@Override public void run() ( while (gameRunning) ( update(); draw(); checkCollision(); checkIfNewAsteroid(); control(); ) )
Ezután az update() metódusban hozzáadunk egy ciklust, amely végighalad az összes aszteroidán, és meghívja rajtuk az update() metódust.

Privát void update() ( if(!firstTime) ( ship.update(); for (Aszteroida aszteroida: aszteroidák) ( asteroid.update(); ) ) )
Ugyanezt a ciklust adjuk hozzá a draw() metódushoz.

Privát void draw() ( if (surfaceHolder.getSurface().isValid()) ( //ellenőrizze, hogy a felület érvényes-e if(firstTime)( // inicializálás az első indításkor firstTime = false; unitW = felületHolder.getSurfaceFrame(). width( )/maxX; // kiszámítja a pixelek számát az egységbenH = felületHolder.getSurfaceFrame().height()/maxY; ship = new Ship(getContext()); // hajó hozzáadása ) vászon = felületHolder. lockCanvas(); // a vászon bezárása canvas.drawColor(Color.BLACK); // a háttér kitöltése fekete hajóval.drow(paint, canvas); // rajzolja meg a hajót (Aszteroida aszteroida: aszteroidák)( // rajzol az aszteroidák asteroid.drow(festék, vászon); ) felületHolder.unlockCanvasAndPost(canvas); // vászon megnyitása ) )
Ez minden! Elkészült a legegyszerűbb 2D-s játék. Forduljunk, fussunk, és meglátjuk, mi lesz!
Ha valaki zavarban van, vagy valami nem működik, letöltheti a forrást.

A játék természetesen primitív. De új funkciók hozzáadásával javítható. Először is végre kell hajtania a képernyőről elrepült aszteroidák eltávolítását. A hajót képessé teheti aszteroidákra lövöldözni, hogy a játék fokozatosan felgyorsuljon, hozzáadhat időzítőt, rekordtáblázatot stb. Ha ez érdekes számodra, írok egy folytatást, ahol leírom mindezt.

Ez minden. Írjon véleményeket, kérdéseket, témákat, amelyek érdeklik a folytatáshoz.