Avatar
Jurko Ďurko
Neregistrovaný
Avatar
Jurko Ďurko:

Zdravím. Som úplný začátečník v GM - free. Robím "space invaders" hru.
Neviem si poradiť s ovládaním: jednotlivé šípky majú určené svoje rychlosti pohybu loďou, ale stlačením dvoch šípek naraz sa, tak sa mi zdá, pripočitávajú rýchlosti. Ako to mám obmedziť? Respektíve chcel by som určiť, aby držaním 2 jednotlivých šípok bola špecifikovaná nová rychlosť.
Ďalšia vec: Chcel by som, aby sa loď po opustení kláves kĺzala. V GM je síce niečo ako "friction", ale to mi len blbne, prestane fungovať pohyb lodi pomocou kláves, atď...

 
Odpovědět 21.9.2013 22:45
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Jurko Ďurko
TomBen:

Friction je tření. Zpomaluje jakýkoliv pohyb až do nuly.
Funguje správně, jen nesmí být moc velké.
Nejsem si jistý, jestli jsem pochopil správně to, co píšeš
na začátku s těmi šipkami. Obvykle takové věci řeším tak,
že nějaká proměnná drží info o současném pohybu a při stisku
klávesy se reaguje podle toho, jaký pohyb byl do té doby.
Tzn. stisk klávesy nemusí působit pohyb rovnou, jen zaeviduje
požadavek na pohyb. Ve Stepu se porovná současný pohyb
s tím požadavkem a může se nechat provádět až podle toho.

Můžeš si prohlídnout kód z nějakých programů, které takový
pohyb používají a mají tu zdroják. Třeba můj Starspacer
má levopravý pohyb přes klávesy.

Nahoru Odpovědět 21.9.2013 23:55
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
Jurko Ďurko
Neregistrovaný
Avatar
Odpovídá na TomBen
Jurko Ďurko:

Hru som robil pomocou tutoriálu:
http://www.itnetwork.cz/…ka-strilecka

1. Použitím "friction" sa zastaví akýkoľvek pohyb, ako mám zabrániť aby sa nezastavil pohyb v create - "vspeed"?
Inak povedané, potrebujem aby pomocou "friction", sa zastavila rýchlost nie do nuly, ale do požadovanej rýchlosti. napr. speed z -7 do -2

2. Potrebujem aby držaním 2 tlačidiel (napr. up & left) nabehol nový sprite.

3. Ako spravím aby sa nejaký sprite opakoval len raz, príp. sprite v objektu? Napr. výbuch

4. Dáte niekto link na typy proměnných?
http://www.itnetwork.cz/…-a-operatory
Tu som už bol, ale potrebujem toho viacej a pochopiť ich jazyk.......

 
Nahoru Odpovědět 22.9.2013 12:31
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Jurko Ďurko
TomBen:

ad1/
Friction vyhoď a přidej vlastní snižování rychlosti,
které pak můžeš udělat s podmínkou nebo jen v horizontálním směru.
ad2/
nějak nevím v čem je problém ale třeba něco jako:

keyboard_check direct(vk_up)&& keyboard_check direct(vk_left)

ad3/
dáš ho do samostatného objektu výbuch a po animaci objekt odstraníš
ad4/
GM zná jen číslo a řetězec ( v linku tučně psané jsou všechno čísla )

Nahoru Odpovědět 22.9.2013 13:04
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
Jurko Ďurko
Neregistrovaný
Avatar
Odpovídá na TomBen
Jurko Ďurko:
  1. Ok. Jak udelám to snižovaní rychlosti??
  2. Tomu vubec nerozumím...

Skus mi to vysvetlit detailnejšie, čo mám urobit atd... Jak sem psal, sem nováček a v GM se teprve na nem učím...

 
Nahoru Odpovědět 22.9.2013 16:03
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Jurko Ďurko
TomBen:
  1. Např. hspeed=hspeed-0.05 ve Stepu.

    Hodnotu si vyzkoušej a případně změň.

  2. Musíš umět GML, jednodušší odpověď asi není.

    Prostě otestuješ obě tlačítka během jedné podmínky.

    Vše najdeš v manuálu nebo poctivě projdi zdejší tutoriály.

Uznávám, že to zabere trochu času navíc, ale vyplatí se to.
U programování je velmi málo univerzálních odpovědí a když
jedeš podle tutoriálu a uděláš vlastní změny, nemusí to být
tak snadné, jako byl původní tutoriál sám.

Nahoru Odpovědět 22.9.2013 17:09
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.
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 6 zpráv z 6.