collision - Jeu de plateforme - Smooth Collision Hitskin_logo Hitskin.com

Ceci est une prévisualisation d'un thème de Hitskin.com
Installer le thèmeRetourner sur la fiche du thème



AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  
-50%
Le deal à ne pas rater :
[Adhérents Fnac] -50% Casque Pro Gaming HyperX Cloud Alpha Noire et ...
49.99 € 99.99 €
Voir le deal

 

 Jeu de plateforme - Smooth Collision

Aller en bas 
2 participants
AuteurMessage
Dyrion
Débutant
Dyrion


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

collision - Jeu de plateforme - Smooth Collision Empty
MessageSujet: Jeu de plateforme - Smooth Collision   collision - Jeu de plateforme - Smooth Collision EmptySam 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 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
onilink_


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

collision - Jeu de plateforme - Smooth Collision Empty
MessageSujet: Re: Jeu de plateforme - Smooth Collision   collision - Jeu de plateforme - Smooth Collision EmptyLun 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.

_________________
collision - Jeu de plateforme - Smooth Collision Runningpotato1collision - Jeu de plateforme - Smooth Collision TvF6GED collision - Jeu de plateforme - Smooth Collision MdetltS
Revenir en haut Aller en bas
Dyrion
Débutant
Dyrion


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

collision - Jeu de plateforme - Smooth Collision Empty
MessageSujet: Re: Jeu de plateforme - Smooth Collision   collision - Jeu de plateforme - Smooth Collision EmptyMar 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 :/
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

collision - Jeu de plateforme - Smooth Collision Empty
MessageSujet: Re: Jeu de plateforme - Smooth Collision   collision - Jeu de plateforme - Smooth Collision EmptyJeu 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;
}

_________________
collision - Jeu de plateforme - Smooth Collision Runningpotato1collision - Jeu de plateforme - Smooth Collision TvF6GED collision - Jeu de plateforme - Smooth Collision MdetltS
Revenir en haut Aller en bas
Dyrion
Débutant
Dyrion


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

collision - Jeu de plateforme - Smooth Collision Empty
MessageSujet: Re: Jeu de plateforme - Smooth Collision   collision - Jeu de plateforme - Smooth Collision EmptyJeu 30 Mar 2017 - 10: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é





collision - Jeu de plateforme - Smooth Collision Empty
MessageSujet: Re: Jeu de plateforme - Smooth Collision   collision - Jeu de plateforme - Smooth Collision Empty

Revenir en haut Aller en bas
 
Jeu de plateforme - Smooth Collision
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Collision sur un jeu de plateforme
» Plateforme
» plateforme
» Plateforme
» Jeu Plateforme

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: