AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Fnac : 2 Funko Pop achetées : le 3ème offert (large sélection de ...
Voir le deal

 

 [Résolu] montées et descentes 2D

Aller en bas 
5 participants
AuteurMessage
Crosskid
Petit bavard
Crosskid


Messages : 53

[Résolu] montées et descentes 2D Empty
MessageSujet: [Résolu] montées et descentes 2D   [Résolu] montées et descentes 2D EmptyLun 6 Aoû 2012 - 14:28

Bonjour tout le monde.

Je tente de faire des montée et des dessente dans un jeux de plateformes en 2D
Je sais bien qu'il existe plusieurs tuto ainsi que plusieurs moteurs (même sur le site du cbna gnii )
mais je préfère faire moi même mes jeux et c'est comme sa qu'on aprend plus vite ! guns

Donc voila ma question : Comment faire monté (ou dessendre) un personnage sur une pente de 45° le plus simplement possible ?

voila les propriété de mon objet pente :


Information about object: obj_solid

Sprite: spr_solid
Solid: true
Visible: true
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>

Collision Event with object obj_sonic:
for other object: move in direction direction at most 12 till a contact with solid objects
for other object: set the vertical speed to 0

Merci d'avance !


Dernière édition par Crosskid le Mar 7 Aoû 2012 - 9:35, édité 1 fois
Revenir en haut Aller en bas
Is Daouda
Utilisateur confirmé: Rang **
Is Daouda


Messages : 392
Localisation : ...

[Résolu] montées et descentes 2D Empty
MessageSujet: Re: [Résolu] montées et descentes 2D   [Résolu] montées et descentes 2D EmptyLun 6 Aoû 2012 - 15:05

-premièrement crée un parent pour tes block 45° et nome le par exemple (parent_pante)
-en suite met sa dans STEP de ton personnage :

while place_meeting(x+hspeed,y+1,parente_pante)
{
y-=1
}

-maintenant crée un objet solide par exemple (angle_b)
-mais dans COLLISION de ton personnage avec le solide (angle_b) que tu a crée et qui servira de parent ;mais sa :

vspeed = ;
if (vspeed > 0 && not place_free(x,y+vspeed)){move_contact(270);}
vspeed = 0;

//vitesse qui diminue sur pante
if !place_free(x+hspeed,y)
{hspeed=0 && gravity=1}

en suite définie les parents de tes block 45° par (angle_b)

une chose tes escalier ou block sont des SOLIDE.
Revenir en haut Aller en bas
Crosskid
Petit bavard
Crosskid


Messages : 53

[Résolu] montées et descentes 2D Empty
MessageSujet: Re: [Résolu] montées et descentes 2D   [Résolu] montées et descentes 2D EmptyLun 6 Aoû 2012 - 15:28

Merci pour la réponse rapide !

j'ai testé, mais le résultat n'est pas concluant... snif

voila ce que j'ai fait :

obj_player :
Event - Step
while place_meeting(x+hspeed,y+1,parent_pante)
{
y-=1
}

obj_parent_pante :
Event - Collision obj_player
if (vspeed > 0 && not place_free(x,y+vspeed)){move_contact(270);}
vspeed = 0;

//vitesse qui diminue sur pante
if !place_free(x+hspeed,y)
{hspeed=0 && gravity=1}

obj_pente (angle_b pour ton tuto) :
parent = parent_pente

j'ai pas fait de bêtises ? le personnage reste bloqué au moment où il rentre en contacte avec obj_pante
Revenir en haut Aller en bas
Is Daouda
Utilisateur confirmé: Rang **
Is Daouda


Messages : 392
Localisation : ...

[Résolu] montées et descentes 2D Empty
MessageSujet: Re: [Résolu] montées et descentes 2D   [Résolu] montées et descentes 2D EmptyLun 6 Aoû 2012 - 15:44

j'ai dit dans collision de ton personnage et pas pour l'objet, bon voila:
Event - Collision obj_solide (qui servira de parent)
if (vspeed > 0 && not place_free(x,y+vspeed)){move_contact(270);}
vspeed = 0;

//vitesse qui diminue sur pante
if !place_free(x+hspeed,y)
{hspeed=0 && gravity=1}

et a tu définis les parent de tes block de 45° par objet solide qui servira de parent.(obj_solide)
Revenir en haut Aller en bas
Crosskid
Petit bavard
Crosskid


Messages : 53

[Résolu] montées et descentes 2D Empty
MessageSujet: Re: [Résolu] montées et descentes 2D   [Résolu] montées et descentes 2D EmptyLun 6 Aoû 2012 - 16:08

j'ai donc ajouté dans obj_player
Event - Collision obj_pente (l'objet parent)

if (vspeed > 0 && not place_free(x,y+vspeed)){move_contact(270);}
vspeed = 0;

//vitesse qui diminue sur pante
if !place_free(x+hspeed,y)
{hspeed=0 && gravity=1}

mais le personnage bloque toujours sur la pente...

tu crois que cela peut venir de mon systéme de gravité ?

Je me pers un peu dans les ligne de code la... Tu pourrai reprendre objet par objet s'il te plait ? gnii
Revenir en haut Aller en bas
Mobi
Utilisateur confirmé: Rang ****
Mobi


Messages : 1256
Localisation : Dijon

[Résolu] montées et descentes 2D Empty
MessageSujet: Re: [Résolu] montées et descentes 2D   [Résolu] montées et descentes 2D EmptyLun 6 Aoû 2012 - 19:34

2DGP a écrit:
(parent_pante)

Mmmm...

_________________
[Résolu] montées et descentes 2D Penguin
Revenir en haut Aller en bas
Crosskid
Petit bavard
Crosskid


Messages : 53

[Résolu] montées et descentes 2D Empty
MessageSujet: Re: [Résolu] montées et descentes 2D   [Résolu] montées et descentes 2D EmptyLun 6 Aoû 2012 - 22:14

AARRRGggg... pas moyen, j'éssaye et réessaye mais rien à faire... triste2
Désolé 2DGP mais je n'arrive pas à utiliser des conseils... mais merci pour ton soutient happy1

Comment faire pour que le personnage monte une pente ( sans décélération ou autre ) ?

Un truc du genre obj_player.y change en fonction du sprite de la pente, ou une autre méthode plus simple si vous avez ?

Comme Mobi le dit si bien "Mmmm..."
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

[Résolu] montées et descentes 2D Empty
MessageSujet: Re: [Résolu] montées et descentes 2D   [Résolu] montées et descentes 2D EmptyLun 6 Aoû 2012 - 22:34

Alors pour aller a droite sur du plat: x += 1
a gauche: x -= 1

Ça si t'est ok tu peut continuer.

Pour la pente a +45° , tu regarde si le pixel en (x+1, y-1) est libre, et s'il l'est hop tu fait monter ton perso avec un x+=1; y-=1.

Le code serais un truc du genre:
if(place_free(x+1, y-1)) { x+=1; y-=1 }

Bref je te laisse chercher par toi même, sinon c'est trop simple :p

_________________
[Résolu] montées et descentes 2D Runningpotato1[Résolu] montées et descentes 2D TvF6GED [Résolu] montées et descentes 2D MdetltS
Revenir en haut Aller en bas
Crosskid
Petit bavard
Crosskid


Messages : 53

[Résolu] montées et descentes 2D Empty
MessageSujet: Re: [Résolu] montées et descentes 2D   [Résolu] montées et descentes 2D EmptyMar 7 Aoû 2012 - 8:52

Merci Onilink_
J'ai tout compris et sa marche, seulement j'ai encore un petit probléme :
Mon personnage accélére, si la vitesse est lente, il prend la pente, si elle est trop élevé il s'encastre dedans
comme une mouche dans une vitre ! mop

je continu a bidouillé !
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Résolu] montées et descentes 2D Empty
MessageSujet: Re: [Résolu] montées et descentes 2D   [Résolu] montées et descentes 2D EmptyMar 7 Aoû 2012 - 8:59

Peut-être avec une boucle en plus :
Code:

for (i=0;i<vitesse;i+=1)
{
if(place_free(x+1, y-1)) { x+=1; y-=1 }
}

(oublie pas de remplacer vitesse par ta variable à toi)
Revenir en haut Aller en bas
Crosskid
Petit bavard
Crosskid


Messages : 53

[Résolu] montées et descentes 2D Empty
MessageSujet: Re: [Résolu] montées et descentes 2D   [Résolu] montées et descentes 2D EmptyMar 7 Aoû 2012 - 9:10

WWWOOOUUU HAAAAA c'est merveilleux ! merci énormément, sa marche ! rire rire rire

"i" je connaissais pas, mais c'est pratique, merci beaucoup, une lettre fait toute la différence !

Probléme résolu merci beaucoup gnii
Revenir en haut Aller en bas
Invité
Invité




[Résolu] montées et descentes 2D Empty
MessageSujet: Re: [Résolu] montées et descentes 2D   [Résolu] montées et descentes 2D EmptyMar 7 Aoû 2012 - 9:29

La "lettre" est une variable, elle est utilisé compter les itérations dans une boucle,
Je te conseille de bien étudier le fonctionnement des variables ainsi que les boucles, réfères toi à l'excellent tutoriel d'onilink :

fleche_d https://cbna.forumactif.com/t10918-apprendre-le-gml-1-initiation
fleche_d https://cbna.forumactif.com/t10923-apprendre-le-gml-4-les-boucles

Et n’oublies pas de mettre [résolu] dans le titre du topic. Smile
Revenir en haut Aller en bas
Crosskid
Petit bavard
Crosskid


Messages : 53

[Résolu] montées et descentes 2D Empty
MessageSujet: Re: [Résolu] montées et descentes 2D   [Résolu] montées et descentes 2D EmptyMar 7 Aoû 2012 - 9:37

Merci pour les liens, sa me sera bien utile ! gnii
Revenir en haut Aller en bas
Contenu sponsorisé





[Résolu] montées et descentes 2D Empty
MessageSujet: Re: [Résolu] montées et descentes 2D   [Résolu] montées et descentes 2D Empty

Revenir en haut Aller en bas
 
[Résolu] montées et descentes 2D
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Déclarer une variable reconnue en GML
» red.lum[résolu]
» [Résolu] screen_save_part
» [ Résolu] move_toward_point(x,y,sp)
» [Résolu] Bug de tir incomprehencible

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: