Dyrion Débutant
Messages : 23 Localisation : dtc Projet Actuel : Maîtriser le GML.
| Sujet: Jeu de plateforme - Smooth Collision Sam 25 Mar 2017 - 12:07 | |
| Salut, J'aurais besoin d'aide pour un script utilisé sur GM:S2, j'essaye de créer un jeu de plateforme smooth mais en restant sur une base de "hspeed", plutôt que le x += (valeur). Cependant, je galère vraiment, voilà le code : - Code:
-
//Gravité if place_free(x,y+2) { gravity = 2; } else { gravity = 0; } gravity_direction = 270;
//Deplacement if (keyboard_check(vk_left)) && place_free(x-8,y) { hspeed = -8; } if not place_free(x-8,y) { hspeed = 0; } if keyboard_check_released(vk_left) { hspeed = 0; }
if (keyboard_check(vk_right)) && place_free(x+8,y) { hspeed = 8; } if not place_free(x+8,y) { hspeed = 0; } if keyboard_check_released(vk_right) { hspeed = 0; }
//SAUT if keyboard_check_pressed(vk_space) && not place_free(x,y+2) { vspeed = -20; } if keyboard_check_released(vk_space) { vspeed /= 2; }
Le problème dans la méthode hspeed c'est que je peut n'aller qu'à droite :/ Ce qui est fort handicapant, néanmoins la collision est smooth. Alors que d'habitude je fais comme ça : - Code:
-
//Gravité if place_free(x,y+2) { gravity = 2; } else { gravity = 0; } gravity_direction = 270;
//Deplacement if (keyboard_check(vk_left)) && place_free(x-8,y) { x = x-8; }
if (keyboard_check(vk_right)) && place_free(x+8,y) { x = x+8; }
//SAUT if keyboard_check_pressed(vk_space) && not place_free(x,y+2) { vspeed = -20; } if keyboard_check_released(vk_space) { vspeed /= 2; }
Le soucis, c'est que dans la méthode "x", bien que la collision soit smooth, j'ai un problème de collision dans les coins de plateforme. (à savoir que j'ai nommé la plateforme "o_wall" si ça peut vous aider à m'aider ) Merci d'avance si vous parvenez à trouver une solution, ça fait une semaine que je suis dessus et pas un résultat positif :/ |
|
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Jeu de plateforme - Smooth Collision Lun 27 Mar 2017 - 10:32 | |
| Tu dois utiliser des else je pense. Surtout pour le code d'arrêt qui se mélange pas mal des deux côtés la. |
|
Dyrion Débutant
Messages : 23 Localisation : dtc Projet Actuel : Maîtriser le GML.
| Sujet: Re: Jeu de plateforme - Smooth Collision Mar 28 Mar 2017 - 19:04 | |
| Oui, je vois, j'avais déjà tenté le else mais ça reviens au même au niveau problème, ce que je trouve étrange :/ - Code:
-
//Deplacement if (keyboard_check(vk_left)) && place_free(x-8,y) { hspeed = -8; } else { hspeed = 0; }
if (keyboard_check(vk_right)) && place_free(x+8,y) { hspeed = 8; } else { hspeed = 0; }
Mais comme ça, j'ai le même problème qu'avec le code d'arrêt :/ |
|
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Jeu de plateforme - Smooth Collision Jeu 30 Mar 2017 - 10:19 | |
| Non l'algo est faux ici, l'objet peut s’arrêter si tu ne presses pas gauche OU droite, ce qui est un peu embêtant :p - Code:
-
if(keyboard_check(vk_left) && place_free(x-8,y)) { hspeed = -8; } else if(keyboard_check(vk_right) && place_free(x+8,y)) { hspeed = 8; } else { hspeed = 0; } |
|
Dyrion Débutant
Messages : 23 Localisation : dtc Projet Actuel : Maîtriser le GML.
| Sujet: Re: Jeu de plateforme - Smooth Collision Jeu 30 Mar 2017 - 10:57 | |
| Ah, merci, je voyais pas les choses comme ça, je vais essayer Je te tiens au courant sur si ça marche PS : ça marche super bien ! Merci ! |
|
Contenu sponsorisé
| Sujet: Re: Jeu de plateforme - Smooth Collision | |
| |
|