Diskuze: Přednost mají cykly
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 13 zpráv z 13.
//= 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.
A tohle je co za zrůdu?
if (Pausa.visible == false)
Pausa.visible = true;
else
Pausa.visible = false;
Máš snad něco proti tomuto zápisu?
Pausa.visible = ! Pausa.visible;
Ahoj,
nejspíš proto, že se ten kód přímo ve hře aplikuje až po provedení
celého bloku.
Tj. ty sice změníš viditelnost ale objekt ji má stále původní.
Ten kód moc nechápu.
Stačilo by něco jako:
pause = true;
while (pause) {
draw_text(10,10, "Pause")
screen_refresh()
sleep(500)
pause = !keyboard_check_direct(ord("P"))
}
Nebo nejjednodušeji zobrazit message. To hru taky pauzne.
Já předtím myslel, že děláš v C# a ty ses dal na GM, takže jsem odpověděl na něco jiného pak jsem si toho všiml tam jsem to přepsal.
A co je špatně na mém zápisu? - ano kód má byt co nejmenší, ale toto stejně můj problém neřeší,...
Já bych dělal raději v XNA, ale neš do toho proniknu, uspokojím se s GM - jen dočasně,...
neš = než
Chtěl jsem udělat pěkný barevný a s hezkým fontem nápis - Pauza. Pro
pokračování stiskněte ... Tak jsem to dal do objektu...
Kit ti chtěl říct že
!true == false
Na XNA tu v nejbližší době přibudou tutoriály
Když použiješ kratší zápis, snáze v něm najdeš logickou chybu. Když jsem si ten tvůj příklad přepsal do kratší formy, uviděl jsem ji hned.
Vím, že dnes se tolik nehledí na rychlost aplikací, můžou být i líné, ale pokud kratší a přehlednější zápis vygeneruje efektivnější kód, tak proč toho nevyužít? I kdyby to efektivnější nebylo, smysl to má.
Když jsem u toho nápisu - u objektů je v GM možnost Persistent - prvně jsem to pochopil tak, že pokud budu chtít mít třeba menu v každé místnosti, tak ho dám jednou a na toto kliknu - ale nic. Takže pokud bych měl do každé místnoti strkat ten nápis, tak to opravdu udělám přes dialog,...
Měl bys mít nějaký objekt controler, který bude persistent - to
znamená, že je trvalý. Ten bude kontrolovat hru, spravovat tu pauzi
etc...
Je to popsáno i v sekci GameMaker.
Tak mám problém i se zprávou. Pořád se spouští dokola - přitom jsem použil vyčištění
klávesy P. KDyž pod zprávu dám třeba restartovat místnost, nebo ukončit,
tak je to OK - já bych to ale rád beze změn.
nechtel jsi aby to fungovalo takto?
kod umisti do stepu
// deaktivace pauzy libovolnou klavesou a zviditelneni objektu
if (Pausa.visible == false){
keyboard_wait();
Pausa.visible = true;
}
// aktivace pauzy levym tl.mysi nebo si zmen na neco jineho
if mouse_check_button_released(mb_left) {Pausa.visible=false;}
Zobrazeno 13 zpráv z 13.