Avatar
UrbiCZ
Člen
Avatar
UrbiCZ:

Čau. Když s postavou běžím k rohu podlahy a během pádu zmáčknu šipku vpravo, postavička se objeví u země, nefunguje tedy gravitace, viz. gif dole.

Zde zdrojový kód postavičky:

// move_left_right
if(keyboard_check(vk_right) && place_free(x+4, y)){
    if(place_free(x,y+1)){
        x += 4;
        sprite_index = spr_player_run;
        image_xscale = 1;
    }else{
        sprite_index = spr_player_run;
        x += 4;
        image_xscale = 1;
    }
    }

    if(keyboard_check_released(vk_right)){
        sprite_index = spr_player;
        image_speed = 0.4;
    }

    if(keyboard_check_released(vk_left)){
        sprite_index = spr_player;
        image_speed = 0.4;
    }

if(keyboard_check(vk_left) && place_free(x-4, y)){
    if(place_free(x,y+1)){

         sprite_index = spr_player_run;
         image_xscale = -1;
          x -= 4;

    }else{
        sprite_index = spr_player_run;
        image_xscale = -1;
        x -= 4;
    }
}

// jump
if(keyboard_check_pressed(vk_space) and gravity = 0){
    vspeed = -15;
}

// gravitace
if(place_free(x,y+1)){
    gravity = 0.75;
}else{
    gravity = 0;
}

Nevíte, kde může být chyba? Díky za radu.

Editováno 8.6.2014 15:51
Odpovědět 8.6.2014 15:49
http://snitch.cz/ - web o GameMakeru
Avatar
Dominik Hošic
Redaktor
Avatar
Odpovídá na UrbiCZ
Dominik Hošic:

Zkoušel jsem tvůj kód a zdá se, že funguje normálně. Asi bude chyba někde v kolizi se zdí.
http://www.solidfiles.com/…mple.gmx.zip

Nahoru Odpovědět 8.6.2014 17:35
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
UrbiCZ
Člen
Avatar
UrbiCZ:

Kolizi se postavičky se zemí mám řešenou pomocí pomocí Collision Eventu a kódu:

move_contact_solid(direction, -1);
vspeed = 0;

Můžeš to prosím upnout ještě jednou někam jinam? Nejde mi to rozbalit.

Nahoru Odpovědět 8.6.2014 19:50
http://snitch.cz/ - web o GameMakeru
Avatar
Dominik Hošic
Redaktor
Avatar
Odpovídá na UrbiCZ
Dominik Hošic:

Zdá se mi, že problém by mohl být v

move_contact_solid(direction, -1);

Zkus přepsat na

move_contact_solid(direction, 0);
Nahoru Odpovědět 9.6.2014 12:05
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
UrbiCZ
Člen
Avatar
UrbiCZ:

Tak

move_contact_solid(direction, 0)

taky nepomohlo. :(

Nahoru Odpovědět 9.6.2014 17:11
http://snitch.cz/ - web o GameMakeru
Avatar
Dominik Hošic
Redaktor
Avatar
Nahoru Odpovědět 9.6.2014 17:20
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
UrbiCZ
Člen
Avatar
UrbiCZ:

Tak dělá to i v té tvé verzi. Jakmile zmáčkneš ve vzduchu u rohu země šipku vpravo, spadneš rychle dolů.

Nahoru Odpovědět 9.6.2014 18:07
http://snitch.cz/ - web o GameMakeru
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na UrbiCZ
KlimiCZ:

jak děláš ty gifi ?

Nahoru Odpovědět 9.6.2014 18:15
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Dominik Hošic
Redaktor
Avatar
Odpovídá na UrbiCZ
Dominik Hošic:

U mě se zdá, že to funguje v pořádku:
http://youtu.be/ibN8oxFth5c

Nahoru Odpovědět 9.6.2014 19:28
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
UrbiCZ
Člen
Avatar
UrbiCZ:

To přece není možný.

Musíš totiž vychytat přesně ten moment, kdy je player u vrcholu rohu země a pak zmáčknout šipku vpravo. Musí se to provést ve skoku, né během pádu. Určitě ti to udělá taky.

Gify dělám pomocí zachycení obrazovky přes Cam Studio a pak převedu výstupní avi do gifu pomocí Format Factory.

Editováno 9.6.2014 20:43
Nahoru Odpovědět 9.6.2014 20:42
http://snitch.cz/ - web o GameMakeru
Avatar
Dominik Hošic
Redaktor
Avatar
Odpovídá na UrbiCZ
Dominik Hošic:

Uhm.. A co, kdybys místo pohybování se pomocí x zkusil použít hspeed?
Jen mě to tak napadlo, ale je to asi blbost..
Nejspíš bude chyba někde tady:

// gravitace
 if(place_free(x,y+1)){
     gravity = 0.75;
 }else{
     gravity = 0;
 }
Editováno 9.6.2014 23:38
Nahoru Odpovědět 9.6.2014 23:37
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
UrbiCZ
Člen
Avatar
UrbiCZ:

Posun pomocí hspeed taky nepomohl. Zkusím to ještě probrat na nějakém zahraničním fóru. :)

Nahoru Odpovědět 10.6.2014 10:33
http://snitch.cz/ - web o GameMakeru
Avatar
Dominik Hošic
Redaktor
Avatar
Odpovídá na UrbiCZ
Dominik Hošic:

Jinak by to mohla být taky chyba GM, protože jsem si udělal naprosto rozdílný pohybový systém od toho tvého a dělá to v podstatě to samé.

Nahoru Odpovědět 10.6.2014 12:58
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
Dominik Hošic
Redaktor
Avatar
Odpovídá na UrbiCZ
Dominik Hošic:

Teď mě ještě napadlo zkoušel jsi ten move_contact_solid úplně zapoznámkovat?

Nahoru Odpovědět 10.6.2014 13:02
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
UrbiCZ
Člen
Avatar
UrbiCZ:

To je dosti k zlosti tedy. Ani zakomentování funkce move_contact_solid nepomohlo. Ale bude to něco s touto funkcí určitě.....

Nahoru Odpovědět 10.6.2014 16:19
http://snitch.cz/ - web o GameMakeru
Avatar
UrbiCZ
Člen
Avatar
UrbiCZ:

Tak jsem vyzkoušel změnit druhý parametr funkce move_contact_solid na 20 a zdá se mi, že to funguje už v pohodě. Ale nechápu to.....

Nahoru Odpovědět 10.6.2014 16:23
http://snitch.cz/ - web o GameMakeru
Avatar
Dominik Hošic
Redaktor
Avatar
Odpovídá na UrbiCZ
Dominik Hošic:

Já jsem to právě ještě testoval a snažil se na to přijít. Po zakomentování té funkce to fungovalo, ale byla divná kolize mezi hráčem a zdí, tak jsem maxdist dal na 2 a už to funguje, tak jak má myslím, protože se mi nepodařilo ani po 5 minutách usilování způsobit ten glitch.

Nahoru Odpovědět  +1 10.6.2014 16:42
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
UrbiCZ
Člen
Avatar
UrbiCZ:

Tak je to snad vyřešený.....díky za průvod. :D

Nahoru Odpovědět 10.6.2014 19:42
http://snitch.cz/ - web o GameMakeru
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 18 zpráv z 18.