Diskuze: dvojité stisknutí klávesy
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 42 zpráv z 42.
//= 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.
Dobrý den,
pokud chcete, aby se provedla určitá akce pokud jsou stisknuty právě tyto
dvě klávesy můžete to udělat následovně:
Do step eventu objektu vložíte Code v němž bude následující
podmínka:
if ((keyboard_check_direct(vk_control)) && (keyboard_check_direct(vk_alt)))
{
//akce
}
Když chci, např. u keyboard_clear(key), tak za key jdou dosadit
číslovky, ke každé klávese 1.
Tak je tomu i u myši, že? (mouse_clear(key))
mouse_clear(1) 1=LMB
To jde asi i u klávesnice.
Myš: mouse_clear(mb_left)
Není něco takového i u klávesnice?
(keyboard_clear(kb_A))-neexistuje
Hááá
Zkoušel jsem různé kombinace kláves, ale tahle mě nenapadla, dík
Použiješ ord('A'), který vrátí ordinální hodnotu (tedy číselný
kód) libovolného znaku na klávesnici. Šipky sis mohl odvodit vk_left,
vk_right...
Příště prosím založ nové vlákno, šetří nám to čas a můžeme
potom více pracovat na komunitě a materiálech nebo řešit vaše dotazy.
Takhle to musíme přesouvat
Zkusil jsem a vidím... no, nefunguje to..
Dal jsem normálně při eventu Up
keyboard_clear(vk_up)
To samé při
keyboard_clear(ord("W"));
Nedělám něco špatně???
Děláš to dobře, tam záleží, který objekt se vyhodnotí jako první. To clear se může provést až potom, co se provede up u jiného objektu. Tohle není moudré použití. Možná pomůže nastavit Depth na nějaké záporné číslo u toho objektu, ale nejsem si jistý.
Depth?????
Tak to by mě nenapadlo......
Myslíš, že depth určuje pořadí objektů? Myslel jsem, že depth je
pořadí jen po grafické stránce.
Nastavil jsem Depth na -9999, čili na nejnižší ze všech objektů.
Nic, keyboard se prostě neclearne
Tuším, že se i provádí události podle depth, ale nejsem si tím na 100% jistý.
Prostě problém je, že se ti vykoná ta událost v jiném objektu dřív, než to clearneš. Nesmíš clearovat klávesu v eventu té klávesy.
Aha, tak to je blbý, co navrhuješ dál???? Možná bych mohl nastavit kolizi se semí (je to skákačka), že při kolizi by se dalo
keyboard_clear(vc_up);
zkoušel jsem to
keyboard_clear(vk_up)
dát do kolize se zemí, do Stepu, a furt nic...
O to, aby když držíš šipku nahoru tak aby pořát neskákal jak s ohněm pod nohama, ale skočil jenom jednou
To zkusím, ale myslím, že jsem to už zkoušel. Řeknu výsledek
http://ulozto.cz/…clearing-gmk
Něco na ten smysl, když to dokážete opravit tak, aby to nestoupalo při
držení šipky nahoru neustále nahoru, ale vrátilo se to na zem, vyřešíte
mi ten problém. (Dám hlas!)
Úplně jednoduše,
if (!place_free(x,y+1))
vspeed = -7;
Pokud je pod panďulákem solid object -> skoč.
Dal jsem ten skript do mojí hry a skákání se pořád nezastaví. Tohle by asi vážně fungovalo jenom na tom vzoru, ale já potřebuju, aby zůstal stát na zemi. Zkusil jsem to s kombinací
keyboard_clear(vk_up)
, ale zas nic. Dávám to hlas aspoň za pokus.
A proč tam furt cpeš to keyboard_clear?
Pošli mi třebas na mail pokud to nechceš publikovat veřejně tvůj problém,
podívám se na to. Takhle tu vaříme z vody.
Je mi líto, jak jsem říkal, má to už díky HD grafice přes 100MB,
takže by mi to můj super internet nezmák...
Keyboard_clear proto, že fakt nevim, jak jinak...
Tady to je:
http://ulozto.cz/…4/game-gmres
Problémový objekt se jmenuje "blu"
Stále nevidím důvod proč to děláš tak složitě a nedáš tam tu jednoduchou podmínku? Prostě tam nech jen akci <up> a v ní ten kód. V tom případě bude panáček skákat pouze pokud je pod ním zem. Pokud máš jiné požadavky, kdy bude moci panáček skákat a kdy ne. Tak je popiš.
Prostě potřebuju tohle:
Šipka nahoru - výskok(ze země)
...šipka nahoru se pořád drží...
Z výskoku se pomocí ve stepu, jak je tam
if vspeed < 10
then vspeed = 10
...šipka nahoru se pořád drží...
Hráč dopadne na zem.
...šipka nahoru se pořád drží...
Hráč zůstává na zemi
...šipka nahoru se pořád drží...
Dokud se šipka nahoru nepustí, hráč zůstává na zemi..
...Hráč zůstává na zemi...
...Šipka nahoru je nyní puštěna...
...Nic se neděje, hráč pořád stojí na zemi...
Hráč zvovu stiskne šipku nahoru...
-> děj se znovu opakuje.....
Ale tohle přeci musí fungovat, máš tam něco špatně. Co myslíš tím, že skáče jako blázen? Skákat přeci může jen tehdy, když je pod ním zeď. Když je ve vzduchu, tak neskáče, to ti taky samo řeší omezování skákání. Podívej se do sekce GameMaker, je tam přeci ukázka plošinovky.
Pokud řešíš něco jiného, tak nám to vysvětli, jistě to půjde udělat jednoduše bez mazání bufferu kláves, to je trochu overkill...
Jestli ses koukal na ty resoulci, co jsem ti poslal, tak to tam je a ten
týpek i přes to furt skáče...
Vůbec nechápu, proč v té události Keyboard Up nastavuješ 2x Vspeed? Máš tam nějakou podmínku v kódu, která je blbě a potom máš tu samou v ikonách, ale znegovanou, takže tedy ano, samozřejmě, že skáče. Udělej to podle toho tutoriálu, co tu máme. Říkali jsme ti to už tisíckrát, nevím, co tu takovou dobu řešíš a hledáš komplikovaná řešení přes nějaké clearování kláves, když je to tak jednoduché a funkční řešení je zde uvedeno.
Mimochodem buď programuj ikonami nebo kódem, ale ne obojím, tohle je hrůza. Také nerozumím, proč máš Execute code v blocích, když nad nimi není žádná podmínka.
To v ikonkách jsem tam už měl, zbytek mi řekl Davos, tak jsem to tam namixoval všechno dohromady... Jestli je tam chyba, řekni jaká. Mě to obvykle přes clearování fungovalo, takže jsem doufal v to, že to bude fungovat i teď... Žádný jiný tutorialy kromě těch mejch na skákačku a toho, cos dělal myslím ty (ale je dost podobný) jsem nenašel, takže mi kdyžtak řekni, kde jinde to mám hledat.
Dobře, dobře. Ten kód
jenom tak doplňuju, protože hodně věcí ikonkama vyjádřit nelze a mnohem
jednodušší, než vypisovat dlouhý skripty je hodit tam jednoduchou ikonku,
takže mi z toho pak vznikne tahle "hrůza". Dík za odpovědi.
Jak řekni jaká? Vezmi ten můj tutoriál a použij ho, ne? Vždyť tam máš funkční řešení, nevím, na co se zase ptáš. Překlikat ty akce z mého objektu do tvého snad zvládneš.
To je standardní chování plošinovek. Pokud to tak nechceš, změň událost Keyboard na Keyboard press. Už jsme ti to říkali stokrát, ptáš se stále na to samé. Tuto diskuzi uzavírám, protože je dávno vyřešena.
Zobrazeno 42 zpráv z 42.