Diskuze: Rozcvička 002 v GM ( pohyb )
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.
Pro jistotu zopakuji WCG.
Jako jazyk se očekává především GML, ale inciativním
příznivcům jiných jazyků nebudu bránit, pokud nepůjde o extrémní flame.
Odměna není žádná kromě nehynoucí slávy na devbook.cz
Klidně ti do soutěže věnuji placky
No, když bude někdo šikovný a udělá to superhezky..
Jinak je to úkol na 20 minut se znalostí středoškolské matiky,
takže žádný hardcore.
Zdá se, že pohyb po zalomené dráze zatím nikoho moc neinspiroval.
To je ovšem docela škoda, protože umět psát kvalitní kódy pro pohyb
je jedna z nejzákladnějších dovedností v Game Makeru. Nejde bez toho
dělat dobré hry ani akční, ani plošinovky a někdy zvláštní typy
pohybu
dokáží originálně vylepšit i bludišťovky a RTSka.
No, když to nikdo nedá, hodím sem v neděli večer svoje řešení.
!ZMĚNA - ODMĚNA!
Protože věřím, že schopnosti většina z vás má, zkusím přidat trochu
té
motivace a doplňuji rozcvičku o odměnu.
Mám objednané mince s vyraženým nápisem Gamedesigner's Star
upevněné
v klíčence. Získá je každý, kdo bude mít tři splněné rozcvičky.
Každá
rozcvička bude aktivní dokud neuzavřu diskuzi, takže momentálně jsou
k dispozici dvě aktivní rozcvičky a třetí zveřejním nejspíš koncem
příštího týdne.
Mám otázku: Pokud už mám splněné toto zadání, tak mám dát odkaz na zdrojový kód sem anebo ti ho mám poslat jako zprávu?
JJ. Tohle je důležité.
Teď když je za to odměna, bude třeba to posílat jako PM.
Rozcvička uzavřena!
Tenhle úkol šlo splnit na vícero způsobů. Protože zadání bylo
metodicky
volné, šlo splnit poměrně snadno použitím předkreslené dráhy (path),
tak
jak to bleskurychle vyrobil Appleman. Větší výzvou byl výpočet polohy
bodu na obvodu trojúhelníka, ale protože tohle nikdo nezvládl, můžete
se
alespoň kouknout na moje řešení. Není to nijak těžké. Vzorce jde
snadno
najít třeba na wikipedii nebo na matematicky zaměřených webech.
Kód je rozdělen na výpočet polohy vrcholů:
center_x=x;
center_y=y;
delka_strany=250;
T=0; krok=0.005;
//---------------------------------
odvesna=(sqrt(3)/3)*delka_strany;
prepona1=(sqrt(3)/6)*delka_strany;
prepona2=delka_strany/2;
faze=1;
A_x=center_x-prepona2;
A_y=center_y+prepona1;
B_x=center_x+prepona2;
B_y=center_y+prepona1;
C_x=center_x;
C_y=center_y-odvesna;
a samotný pohyb od vrcholu k vrcholu je pak běžný lineární,
který se odehrává rovnou v eventu draw:
//pohyblivka
T+=krok;
//korekce a faze
if (T>1)
{ T=T-1; faze+=1; if faze>3 faze=1; }
if T<0 T=0;
switch faze
{
case 1:
mx=A_x+(T*(B_x-A_x));
my=A_y+(T*(B_y-A_y));
break
case 2:
mx=B_x+(T*(C_x-B_x));
my=B_y+(T*(C_y-B_y));
break
case 3:
mx=C_x+(T*(A_x-C_x));
my=C_y+(T*(A_y-C_y));
break
default: mx=center_x; my=center_y; break;
}
draw_circle_color(mx,my,5,c_red,c_red,0);
draw_circle_color(mx,my,2,c_black,c_red,0);
//trojuhelnik carovany
draw_line_width_color(A_x,A_y,B_x,B_y,5,c_black,c_black);
draw_line_width_color(B_x,B_y,C_x,C_y,5,c_black,c_black);
draw_line_width_color(C_x,C_y,A_x,A_y,5,c_black,c_black);
ke stažení exe a gmk:
http://uloz.to/…cvicka-2-zip
Zobrazeno 11 zpráv z 11.