Python týden Geek tričko zdarma
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde
Pouze tento sleva až 80% na kurzy Python
Avatar
Vladimíra Keslová:10.4.2017 1:38

Zdravím :)
s GameMakerem a vlastně i celkově s tímto "oborem" jsem začala cca před 24h :D Měla bych dva dotazy.
První je ten, že jsem si na internetu našla a upravila příkazy pro pohyb, kde je: if keyboard_chec­k(vk_up) . Co znamená nebo značí vk v závorce? Možná při odpovědi na tuto otázku dostanu zároven odpověd na otázku druhou, ale kdyby náhodou..
Otázka druhá zní, jaký příkaz napsat, pokud potřebuji: když zmáčknu na klávesnici písmeno R?
Pro zkušené programátory možná absolutní prkotina, ale pro mě momentálně nevyřešitelný úkol :D
Takže za jakoukoli radu děkuji :)

 
Odpovědět 10.4.2017 1:38
Avatar
Vladimíra Keslová:10.4.2017 3:05

Tak už jsem přišla na to, co je vk a že R je 0x52, ale mám tu zase jiný problém :D píše mi to chybu, takže kde mám chybu? :D :)

 
Nahoru Odpovědět 10.4.2017 3:05
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Vladimíra Keslová
TomBen:10.4.2017 12:37

Myšlenka byla v podstatě správná.
Čísla jde zapsat mnoha způsoby, ale ten cos použila, není podporovaný.
Funkční jsou tyto varianty:

if keyboard_check($52) ...nějaká akce        //šestnáctkový zápis
if keyboard_check(82) ...nějaká akce          //desítkový zápis téhož čísla
if keyboard_check( ord('R') ) ...nějaká akce  //nejpohodlnější zápis pro čtení lidmi

To stejné platí pro všechna písmena. Pro zvláštní klávesy existují předdefinované konstanty - zmíněné vk_, které GM napovídá při psaní a jsou uvedeny v helpu.

Editováno 10.4.2017 12:37
Nahoru Odpovědět 10.4.2017 12:37
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Vladimíra Keslová:11.4.2017 20:20

Super, děkuji mockrát :) chybu už mi to nehází, ale nefunguje to tak jak by mělo :/ takže další otázka, jestli to mám správně poskládané, nebo tam něco nechybí? Znovu přikládám obrázek celého zápisu :)
Jde o to, aby se při zmáčknutí R odečetl život a restartovalo kolo. Restart se daří, ale životy se stále neodečítají :(

 
Nahoru Odpovědět 11.4.2017 20:20
Avatar
chain
Redaktor
Avatar
chain:11.4.2017 22:16

Zdravim
Na to ze poznas Gamemaker nejake dva dni tak klobuk dolu predtym ze uz pises v kodoch a neriesis ho cez ikonky...

Co sa tyka uvedeneho problemu so zivotami, je to v tom, ze kazde kolo nastavis lifes na 3 a potom 1life odpocitas po stlaceni klavesy R
Cize riesenie, dat lives z drawu do creatu (tam sa nastavia hodnoty na zaciatku) a v drawe uz len podmienku na stlacenie R....

PS: dufam, ze eventy Create a Draw ti nieco hovoria a nepletiem ta, okrem toho bolo by fajn zvyknut si aj na event Step;)

Hodne zdaru

Editováno 11.4.2017 22:17
 
Nahoru Odpovědět 11.4.2017 22:16
Avatar
Vladimíra Keslová:11.4.2017 23:25

Děkuji, bylo to spíš z donucení, protože přes ikonky mi zrovna tohle nešlo :D ale časem se chci naučit psát vše v kódech, jen uplně nevím jak je dohledávat. To jsem se také chtěla zeptat, jestli se dá někde kouknout na to co tam mám přes ikonky, jak je to psané v kódech? :)

Jinak nevím jestli jsem to pochopila uplně správně. Teď jsem to zkoušela přehodit z Draw do Create, zkusila jsem to různě a buď se mi to nezobrazilo vůbec, nebo se mi to stále neodečítá :/ přikládám zase obrázek, jestli jsem to vůbec pochopila dobře :)

A eventy Create a Draw mi něco říkají :D a Step už jsem také zkoušela, už nevím u čeho, každopádně už tam není, takže jsem to asi vyřešila jinak :D :)

 
Nahoru Odpovědět 11.4.2017 23:25
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Vladimíra Keslová
TomBen:12.4.2017 0:23

GM má skvěle napsaný vestavěný help. Za předpokladu, že člověk umí anglicky se lze prakticky všechno potřebné naučit tam. Navíc je to celé poměrně intuitivní.
Události říkají kdy se má něco stát a kód nebo ikona říká, co se má stát.

Kód který položíš do události Create se provede 1x a to přesně v okamžiku vytvoření instance ( výskytu ) daného objektu. Ve tvém případě je to počáteční počet životů. Kód v Create:

Lives=10;

Událost Step se provádí mnohokrát za vteřinu neustále a samovolně po celou dobu existence každé instance. Tady lze otestovat stisk klávesy - testování se děje průběžně pořád.

if keyboard_check_released(ord('R')) Lives--;

V události Draw má být pokud možno jen vykreslovací kód. Vykreslování napsané do jiných událostí nebude fungovat. Událost se provádí stále dokola podobně jako Step. Aby bylo něco vidět delší dobu, je to třeba po celou tu dobu opakovaně vykreslovat. Bývá výhodné vykreslovat text relativně k poloze instance objektu v místnosti (room).

draw_text(x,y,'Lives: '+string(Lives));
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 12.4.2017 0:23
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Vladimíra Keslová:17.4.2017 13:16

Tak už jsem to konečně vyřešila, měla jsem tam ještě jednu chybku někde jinde, která mi to ovlivňovala :)
Mockrát děkuji za rady, ale myslím, že o mě ještě uslyšíte :D :)

 
Nahoru Odpovědět  +1 17.4.2017 13:16
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.