Kezdjük írásban Mario
Továbbra is egy sor hozzászólás játékfejlesztés ..
Mit tegyünk, hogy dolgozzon? Az elején, hogy van, hogy a vászon, amelyen festünk. A DelphiX mi vászonra - ez TDXDraw komponens (ami a DelphiX lapon). Component TDXDraw kattintva a jobb egérgombbal, miután az eredeti ablak jelenik meg az űrlapon. Most mi kell érteni a rajz a vásznon. Vászon hasonló rajz grafikonok.
Kezdjük írásban Mario.
Kezdjük írásban Mario.(Sajnálom, de nem vagyok művész :))
Ez a minimum koordináta az x és y - 0.
Vászon is képviselteti magát egy táblázatban a koordinátáit, ahol azt a saját színe. Például:
Ez azt jelenti,. a szín koordinátái (1,1) = $ 0000FF (piros).
Most hozzunk létre hősünk - Mario. sor után
eljárás DoCollision (Sprite: TSprite; var Kész: logikai érték); felülbírálhatja;
eljárás Domové (MoveCount: Egész szám); felülbírálhatja;
Most próbáljuk megérteni, mi van leírva ebben a csodálatos kódot.
Bejelentünk TMarioHero osztályban.
Az ő „apa” TImageSprite - jelent az, hogy a „gyermek”, azaz TMarioHero mindent tud. hogy tudja, hogyan kell „Apa”.
eljárás Domové (MoveCount: Egész szám); felülbírálhatja;
Szereljük szét a darabokat fölött írt kódot.
Leírtuk nevezett eljárás Domové és a bemenő paramétereket (durván, hogy zárójelben). Bemeneti paraméter, van egy MoveCount - száma mozgása hősünk. Miután „” mi írjuk a változó típusa van ez Integer (egész szám). És végül, a legérdekesebb szót a felülírás, fent azt mondtam, hogy egy gyermek is mindent megtenni, hogy az apja tudja. Apa is tudja, hogyan kell mozogni, de fenntartott szó - a felülírás azt jelenti, hogy a fia vagy hősünk nem - ez a maga módján.
eljárás DoCollision (Sprite: TSprite; var Kész: logikai érték); felülbírálhatja;
kezeli ütközés sprite vagy játékelemek leírjuk a jövőben.
Most ismét visszatérünk az elmélet (de nem sokáig!). Már említettem az előző bejegyzésben, hogy én választottam DirectX annak a ténynek köszönhető, hogy ő is képes működni, nemcsak grafikus, hanem input eszközök.
Csodálatos alkatrész TDXInput (amely lehetővé teszi, hogy működjön együtt az egér és a joystick, nem utolsósorban a programozás!)
Kezdjük írásban Mario.
Kezdjük írásban Mario.
(Ami szintén DelphiX lapon)
Ez lehetővé teszi számunkra, nem nyomasztó összetett programozás beviteli eszközök, valamint egy ugrás kezdődik a fő feladat.
Mivel a komponens maga is tudja, milyen hatással volt elég e felszabadító alulról felfelé, vagy csak akkor tudjuk beállítani valamilyen kulcs lesz bizonyos intézkedéseket. Kétszer kattintva a komponens mi így megjelenik egy ablak,
Kezdjük írásban Mario.
Kezdjük írásban Mario.Joystick, amelynek két fül (joystick) és a billentyűzet (Keyboard).
Az első telepítés dolgozni a joystickot. és a második billentyűzet esemény.
Kezdjük írásban Mario.
Kezdjük írásban Mario.Mint például. Fel (UP), Le (Le), Jobb (bal), Bal (jobb), és további 32 állítható.
Most kell írni, mit fog csinálni a mozgás a hős (amely be van állítva DXInput). Keresse meg a sort a „körülbelül Mario” írta nekünk:
Kezdjük írásban Mario.
Kezdjük írásban Mario.
tedd az egérmutatót a szó Domové után „kattintsunk”, amelyek módosítanák a mutató aktív nevében Domové eljárást. Nyomja meg a Ctrl + Shift + C Delphi maga hoz létre egy eljárást, és akkor nem kell leírni, hogy (egyes részei) is. Delphi generált kód:
eljárás TMarioHero.DoMove (MoveCount: Egész szám);
már lebontották a leírás az eljárás most van néhány nagyon fontos sor kezdődik (start) end (vég) minden, ami a közép-le fog bekövetkezni, ha az eljárás hívása.
A fenntartott szó örökölt hívások „Daddy”. mit fog tenni mindent. hogy ő tudja, és az ok vállaljuk mi is. Én személy szerint nem szeretem ebben az időben csatlakozott Delphi. Én jobban érthető lesz, mint programozó és a fordító, hogy megértsék - ezt a sort, ha képesek vagyunk megváltoztatni azt:
eljárás TMarioHero.DoMove (MoveCount: Egész szám);
vagyis arra gondolunk, hogy mi képességeinek fejlesztésével „pápa”, és ezúttal ez érthető, hiszen hívjuk a mozgásképesség pápa MoveCount (integer).
Amíg hagyjuk - az eljárást, és lépni a „warm-up”.
Elfelejtettem figyelmeztet a hang (vagy style) programozás. Minden létrehozott komponens nem kell, hogy hagyja el az alapértelmezett nevet, akkor jobb, átnevezni azt saját tevékenység típusát. Például, már van két komponense - a DXInput1 és DXDraw1, de jobb lenne nekik, hogy hagyják el a nevét, de hogy távolítsa el a számlálót. És akkor megkapjuk DXInput és DXDraw. Természetesen - általában nem súlyos, de még mindig elsősorban maguknak lesz kényelmesebb.
Miért változik a neveket?
Annak érdekében, hogy lehetővé tenné, hogy megértsék a fő célja az alkatrész.
Most viszont, hogy a képeket. A csomag DelphiX összes felhasznált képek révén TDXImageList komponenst.
Kezdjük írásban Mario.
Kezdjük írásban Mario.
DXImageList - ez csak egy lista a képeket. Támogatja a következő típusú fájlok:
és más kevésbé ismert formátumot. Együttműködik a listában a komponens létezik a St-elemek.
Kezdjük írásban Mario.
Kezdjük írásban Mario.Ha rákattint az értékét, haladunk tovább a fent említett listában. Elem hozzáadása a listához rá kell kattintani a gombra Új (pont)
Kezdjük írásban Mario.
Kezdjük írásban Mario.Amikor létrehoz egy nevet (név) üres, azaz Nem mi nincs bekötve. Hogyan fogjuk csatolni kell a kép név nélkül? Átnevezése! Azt javaslom, a név - háttérben. De kiderül, hogy még csak megnevezett tételt a listában nem rendelt neki a kép. Töltsd fel nagyon egyszerű! Értékre kattintva a kép (Kép) „repülni” formájában Képszerkesztő ablakban.
Kezdjük írásban Mario.
Kezdjük írásban Mario.Kattintson a Letöltés gomb (Load) megnyílik minden a megszokott fájl megnyitása párbeszédablak.
Most, hogy „mondd” összetevője, hogy mit tegyen. Mindent. meg kell tennünk, mielőtt létrehoz egy formája fordul elő, amikor az esemény OnCreate. Ehhez válassza ki a forma. hogy az ellenőr az ellen (Object Inspecter) kötődést mutattak szigetek formában. Tojó események (Events) Kell találni OnCreate eseményt, és kattintson az értékét. Delphi maga hoz létre egy eljárást.
eljárás TMainForm.FormCreate (Sender: TObject);
// Itt leírjuk az akció kezdetekor.
Most. meg kell csinálni a mai „leckét”?
* Mozgatja Mario (Ez nem fog futni, amíg sima)
Mindenekelőtt meg kell magyarázni, hogy mi vászon felhívni minden, amit mondani neki.
Ehhez hozzá TDXTimer komponenst. Hozzunk létre egy eseményt OnTimer:
eljárás TMainForm.DXTimerTimer (Sender: TObject; LagCount: Egész szám);
Most, hogy a jövőben ez fogja frissíteni az vásznon minden n-másodperc, ami úgy van kialakítva, az Object Inspector.
Sv engedélyezve, és ActiveOnly kell True.
Az optimális érték az Interval - 33zh.
1.) Egy alap készítése.
DelphiX komponensek nagyon könnyen használható, én nem csak beszélünk róla. És most hozzon létre egy osztályt, amely a „Papa” jelentése - DXSpriteEngine.Engine (konkrétabb sprite, mint a korábban általunk alkalmazott), majd a „fia” képes lesz mindent apja.
Most azt fogja magyarázni az eredményt minden sora után karakterek után //
Miután az összes változások OnCreate eljárás kód lesz:
eljárás TMainForm.FormCreate (Sender: TObject);
// Itt leírjuk az akció kezdetekor.
A TBackgroundSprite.Create (DXSpriteEngine.Engine) do // mindent. amelyet további leírását a programban a zárójelben tulajdonságok TBackgroundSprite.Create (DXSpriteEngine.Engine)
image: = ImageList.Items.Find ( 'háttér'); // a kép a mi töltjük ImageList alkatrész lista elem háttér
Image.Transparent: = false; // eltávolítani az átláthatóság
SetMapSize (800.640); // állítsa a szélessége megegyezik a teljes vászon háttér, mert ez nem fogja megváltoztatni
Mozaik: = false; // a háttér nem egy cserép (nem álló kép szelet)
Most, ha futunk, megkapjuk a következő eredményt. Egy szilárd háttér.
Kezdjük írásban Mario.
Kezdjük írásban Mario.Az első munka, amit viselte!
Most zaymomsya hősünk. Meg kell találni a szakasz var.
Ha rendesen csinálni a szakaszban említett kell kódot, mint