Lekce 1
(Vytvoření nového projektu, textury, rotace)

První věc , kterou si musíme udělat je nějaký jednoduchý model (mýstnost,hala,…) v 3D Studiu MAX.Model může vypadat například takto:


Vyrenderovaný model:

V Delphi vytvořte nový projekt a na form umístěte komponenty GLScene1 , GLSceneViewer1 a GLCadencer1.U GLSceneViewru nastavte Alig na alClient a u komponenty GLCadencer1 vyberte v položce Scene GLScene1.

Nyní v GLScene Editoru vytvořte v sekci Cameras Kameru (GLCamera1) a v sekci Scene objects vytvořte GLLightSource1 který „vložte“ do Kamery (GLCamera1).V sekci Scene objects ještě vytvořte FreeForm (Mesh objectsàFreeForm).Nyní u komponenty GLSceneViewer1 vyberte v položce Cameras námi vytvořenou kameru GLCamera1.

Do procedury FormCreate vložte : FreeForm1.LoadFromFile('cesta k souboru *.3DS');

Na místo textu 'cesta k souboru' vložte cestu k modelu který chcete načíst.V našem případě to bude vypadat takto: FreeForm1.LoadFromFile('model.3DS'); (soubor model.3DS se nachází ve stejném adresáři jako program).

Když nyní spustíte projekt nejde vidíte jen šedé okno bez modelu ,proto musíme ještě nastavit pozice objektu FreeForm.

V Object TreeView vyberte FreeForm1 a nastavte PitchAngle na 90.Abychom nemuseli pracně nastavovat pozici objektu rozevřeme si proto položku AutoCentering a všechny v ní umístěné položky nastavíme na True (macCenterX, macCenterY, macCenterZ, macUserBarycenter) .

Pokud teď spustíte projekt už vidíte model.S pouhým modelem díru do světa her J neuděláte a tak uděláme další krůček ,a to pohyb v tomto modelu.

V GLScene Editoru v sekci Scene objects vytvoříme DummyCube1 ,kterou nazveme třeba Player a přesuneme do ní naši kameru (GLCamera1) se světlem (GLLightSource1).Po provedení tohoto přesunu by měl obsah GLScene Editoru vypadat takto:

 

Pokud tak vypadá je vše pořádku a můžeme pokračovat dál.

Hráče budeme ovládat pomocí klávesnice a proto musíme do Uses vložit Keyboard

Nyní musíme zajistit pohyb hráče v objektu.To zařídíme tak ,že do procedury OnProgress u komponenty GLCadencer1 vložíme tyto řádky :

if iskeydown(27) then close;
if (iskeydown(38)) then begin Player.Move(-0.1) ; end;
if iskeydown(40) then begin Player.Move(0.1); end;
if iskeydown(37) then Player.Turn(-0.9);
if iskeydown(39) then Player.Turn(0.9);

Přičemž čísla 27,38,40,…. Jsou čísla kláves 27 à Esc , 37 à šipka doleva, 38 à šipka nahoru, 39 à šipka doprava, 40 à šipka dolů.Kdo je zvyklí na ovládání hry pomocí kláves W,A,S,D tak zde je očíslování těchto kláves:

 W à 87

 A à 65

S  à 83

D   à 68

Jinak je myslím vše jasné takže to nemusím vysvětlovat (snad) J.

Spusťte projekt a ….. můžete se pohybovat …. celkem slušné ne?

 

No myslím ,že toho pro dnešek bylo dost.Příště si ukážeme jak zamezit procházení zdmi a vylepšíme design naší aplikace textury ,oblohu atd.…

 


Autor článku
Hollow

©2004 Reload GAMES
Zdrojové kódy dnes vytvořeného programu: zde.