| Mon code ne fais pas ce qu'il devrais faire du tout | |
|
|
Auteur | Message |
---|
Waving Nouveau
Messages : 3
| Sujet: Mon code ne fais pas ce qu'il devrais faire du tout Mer 9 Juil 2014 - 21:55 | |
| Je vous explique, quand je lance le jeu par GM Studio, il ne se lance pas, par contre, si je le compile manuellement et que je le lance, le jeu va s'ouvrir tous seul plusieurs fois comme un virus. Je comprends pas du tous pourquoi mon code fais sa car vraiment, je vois aucune fonction dedans qui pourrait faire que le jeu ouvre lui même plusieurs fois. Le code est dans l'event Step: - Spoiler:
- Code:
-
//Basic Movements
if keyboard_check_pressed("right") == true and place_free(1,y) { hspeed = 6 } else if keyboard_check_pressed("left") == true and place_free(-1,y) { hspeed = -6 } else if keyboard_check_pressed("up") == true and place_meeting(x,y+1,o_solid) { vspeed = -8 }
//Player engine
if !place_meeting(x,y+1,o_solid) { gravity = 0.5 gravity_direction = 270 }
|
|
| |
Craki Utilisateur confirmé: Rang ****
Messages : 1496 Localisation : Dans l’univers de métamatière
| Sujet: Re: Mon code ne fais pas ce qu'il devrais faire du tout Mer 9 Juil 2014 - 22:16 | |
| Ça ne va pas du tout. "right", "left" et "up" sont des chaines de caractère traduites en nombre par leur place dans la mémoire. Or, GM n’attend la position d’une variable dans la mémoire mais l’id d’une touche du clavier. C’est pour ça qu’on utilise les variables vk_right, vk_left et vk_up. Aussi, ça ne sert à rien de faire un if blablabla == true. if blablabla suffit et est bien plus élégant. |
|
| |
Waving Nouveau
Messages : 3
| Sujet: Re: Mon code ne fais pas ce qu'il devrais faire du tout Mer 9 Juil 2014 - 22:40 | |
| - Craki a écrit:
- Ça ne va pas du tout.
"right", "left" et "up" sont des chaines de caractère traduites en nombre par leur place dans la mémoire. Or, GM n’attend la position d’une variable dans la mémoire mais l’id d’une touche du clavier. C’est pour ça qu’on utilise les variables vk_right, vk_left et vk_up.
Aussi, ça ne sert à rien de faire un if blablabla == true. if blablabla suffit et est bien plus élégant. Justement les vk_... c'est ce que je cherchais, sauf que je tapais le mauvais truc (kb_...) donc vu que je trouvais pas je me suis dis que c'était "direction". Et je sais pour les if (variable) c'est juste que c'était pour mieux comprendre mon code Sinon merci, je vais essayé Edit: http://puu.sh/a47H7/efd07da2ed.png Cela n'a pas réparé sa. Le processus refait ce qu'il faisait, cela n'a pas l'air de venir du script mais du compilateur de GM Edit 2: C'est bon, j'ai retéléchargé GMS, maintenant mon problème est que mon personnage avec place_meeting(x,y+1) rentre dans le sol et y+3 il reste en dehors (y+2 aussi fais rentré dans le sol) - Code:
-
//Basic Movements
if keyboard_check_pressed(vk_right) and place_free(1,y) { hspeed = 6 } else if keyboard_check_pressed(vk_left) and place_free(-1,y) { hspeed = -6 } else if keyboard_check_pressed(vk_up) and place_meeting(x,y+2,o_solid) { vspeed = -8 }
if keyboard_check_released(vk_left) or keyboard_check_released(vk_right) { hspeed = 0 }
//Player engine
if !place_meeting(x,y+3,o_solid) { gravity = 0.5 gravity_direction = 270 } else if place_meeting(x,y+3,o_solid) { vspeed = 0 gravity = 0 }
Le personnage rentre aussi dans le sol dès fois par rapport à la hauteur d'on il tombe. |
|
| |
Craki Utilisateur confirmé: Rang ****
Messages : 1496 Localisation : Dans l’univers de métamatière
| Sujet: Re: Mon code ne fais pas ce qu'il devrais faire du tout Jeu 10 Juil 2014 - 1:05 | |
| Dans, ce cas, fais y + vspeed ou un truc du genre. Pour coller le perso au sol lors d’une collision, il suffit de faire une boucle de ce genre : - Code:
-
while !place_meeting(x,y + 1,o_solid) y += 1 |
|
| |
chopsuey Utilisateur confirmé: Rang ***
Messages : 523 Localisation : saint etienne Projet Actuel : All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
...
| Sujet: Re: Mon code ne fais pas ce qu'il devrais faire du tout Jeu 10 Juil 2014 - 2:11 | |
| heu normalement avec une boucle comme ça l'objet va se coller directement contre l'objet solide Moi je ferrais plutôt ça comme ça. for(i=0;i<vitesse;i+=1) { if place_free(x,y+1) {y+=1} } |
|
| |
Craki Utilisateur confirmé: Rang ****
Messages : 1496 Localisation : Dans l’univers de métamatière
| |
| |
chopsuey Utilisateur confirmé: Rang ***
Messages : 523 Localisation : saint etienne Projet Actuel : All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
...
| Sujet: Re: Mon code ne fais pas ce qu'il devrais faire du tout Jeu 10 Juil 2014 - 22:03 | |
| A oui ok |
|
| |
Contenu sponsorisé
| Sujet: Re: Mon code ne fais pas ce qu'il devrais faire du tout | |
| |
|
| |
| Mon code ne fais pas ce qu'il devrais faire du tout | |
|