AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Jeu de plateforme - Smooth Collision

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Dyrion
Débutant
avatar

Messages : 23
Localisation : dtc
Projet Actuel : Maîtriser le GML.

MessageSujet: Jeu de plateforme - Smooth Collision   Sam 25 Mar 2017 - 11: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 Wink )

Merci d'avance si vous parvenez à trouver une solution, ça fait une semaine que je suis dessus et pas un résultat positif :/

Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8915
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Jeu de plateforme - Smooth Collision   Lun 27 Mar 2017 - 8: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.

_________________
                 
Revenir en haut Aller en bas
Dyrion
Débutant
avatar

Messages : 23
Localisation : dtc
Projet Actuel : Maîtriser le GML.

MessageSujet: Re: Jeu de plateforme - Smooth Collision   Mar 28 Mar 2017 - 17: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 :/
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8915
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Jeu de plateforme - Smooth Collision   Jeu 30 Mar 2017 - 8: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;
}

_________________
                 
Revenir en haut Aller en bas
Dyrion
Débutant
avatar

Messages : 23
Localisation : dtc
Projet Actuel : Maîtriser le GML.

MessageSujet: Re: Jeu de plateforme - Smooth Collision   Jeu 30 Mar 2017 - 8:57

Ah, merci, je voyais pas les choses comme ça, je vais essayer Very Happy
Je te tiens au courant sur si ça marche Wink

PS : ça marche super bien ! Merci ! gnii
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Jeu de plateforme - Smooth Collision   

Revenir en haut Aller en bas
 
Jeu de plateforme - Smooth Collision
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Dramatique collision entre un roulier et un porte-conteneurs
» Aide au sujet de la collision du ESSO BRUSSELS en 1973
» MapGen 1.0 :: générateur de niveau pour vos jeux de plateforme
» Smooth'N Shine de Schwarzkopf
» ESSO BRUSSELS collision

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: