AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -29%
PC portable – MEDION 15,6″ FHD Intel i7 ...
Voir le deal
499.99 €

 

 collision gml

Aller en bas 
5 participants
AuteurMessage
K.marx
Petit bavard
K.marx


Messages : 56

collision gml Empty
MessageSujet: collision gml   collision gml EmptyLun 26 Nov 2012 - 21:22

Bonjours tous le monde, je cherche un équivalent en gml pour l'event collision.

J'avais pensé à place_meeting() mais ça ne marche pas comme je le voudrais. Je fait un jeu de plateforme et en mettant dans
Event - Collision obj_sol

move_contact_solid(270,15)
vspeed=0

tout marche bien mais si je fais dans un step:

if place_meeting(x,y,obj_sol){
move_contact_solid(270,15)
vspeed=0}

alors mon perso s'enfonce dans le sol.


Dernière édition par K.marx le Ven 30 Nov 2012 - 10:21, édité 1 fois
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyLun 26 Nov 2012 - 21:40

Parce que place_meeting se base sur la position x et y du sol, et non sur la taille de son sprite. Tu devrais creuser du côté des collision_rectangle pour voir Razz

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
K.marx
Petit bavard
K.marx


Messages : 56

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyLun 26 Nov 2012 - 21:55

merci de t'a réponse, j'ai fais:

if collision_rectangle(x-11.5,y-50,x+11.5,y+58,obj_sol,1,1)
{move_contact_solid(270,15)
vspeed=0}

Mais le résultat est exactement le même...
Faudrait pas faire un truc genre avec une boucle while ??
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyLun 26 Nov 2012 - 22:04

Essaie de faire place_meeting(x,y+1,obj_sol), je comprend pas comment il utilise les sprites pour les collisions, mais en général ca marche....
Revenir en haut Aller en bas
K.marx
Petit bavard
K.marx


Messages : 56

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyLun 26 Nov 2012 - 22:15

Et bien ça fonctionne le perso ne s'enfonce pas dans le sol seulement il ne peut plus sauter puisque le sol est à y+1...
Il n'y a pas une fonction qui détecte simplement si au moins 2 pixels sont en collision de la même manière que " Event - Collision " ?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyLun 26 Nov 2012 - 22:19

ben tu rajoute un else après ma condition, et tu fais un autre place_meeting(x,y,obj_mur) then y+=1.
Mais c'est étonnant, quand je fais ainsi j'ai pas de problème pour sauter. C'est quoi ton code de saut ?
Revenir en haut Aller en bas
K.marx
Petit bavard
K.marx


Messages : 56

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyLun 26 Nov 2012 - 22:35

mon code pour le saut est:

if (keyboard_check(vk_up)||keyboard_check(vk_space))&& laps_saut==1
{
if !place_free(xprevious,y+1) || !place_free(x,y+1)
{sprite_index=spr_jump; etat=1;vspeed=-puissance_saut; image_speed=0.7; alarm[1]=18; image_index=0}
}
if keyboard_check_pressed(vk_up)|| keyboard_check_pressed(vk_space)
{alarm[0]=7; laps_saut=1}


Je n'ai jamais eu à me servir de then donc je n'ai pas trop compris ce que je devais faire rouge
j'ai fait:

if place_meeting(x,y+1,obj_sol)
{vspeed=0; move_contact_solid(270,15)}
else
{place_meeting(x,y,obj_sol)then y+=1 }

Mais c'est pas ça bien sûr ^^
Revenir en haut Aller en bas
K.marx
Petit bavard
K.marx


Messages : 56

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyLun 26 Nov 2012 - 22:40

Mais de toute façon c'est logique que je ne puisse pas sauter puisque je dit que vspeed=0 si le sol est à 1 pixel sous le perso ?

if place_meating(x,y+1,obj_sol){
move_contact_solid(270,15);vspeed=0}
Revenir en haut Aller en bas
K.marx
Petit bavard
K.marx


Messages : 56

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyLun 26 Nov 2012 - 22:53

Nan mais en fait mettre place_meeting(x,y+1,obj_sol) ça reviens au même que de faire if place_meeting(x,y,obj_sol)
Dans les 2 cas le perso s'enfonce. Quand j'ai dit

"Et bien ça fonctionne le perso ne s'enfonce pas dans le sol seulement il ne peut plus sauter puisque le sol est à y+1...
Il n'y a pas une fonction qui détecte simplement si au moins 2 pixels sont en collision de la même manière que " Event - Collision " ? "

C’était par ce que j'avais mis un "!" devant place_meeting(x,y+1,obj_sol) par erreur.
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyLun 26 Nov 2012 - 23:38

Pour info l'event collision fait un bête place_meeting(x,y,machin), qui lui utilise le masque de collision actuel de l'objet appelant translaté de x et y. Par contre il n'est pas appelé au même moment que l'event Step (je sais pas s'il l'est avant ou après), d'où différence de comportement.

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
K.marx
Petit bavard
K.marx


Messages : 56

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyMar 27 Nov 2012 - 4:51

Ouai c'est bien ce qui me semblais. Mais alors je ne peux pas avoir l'équivalence d'un simple event collision en gml ? crossa
Pourquoi ça marche pour térence ? Je fais pourtant la même chose, j'ai même essayer de recréer un projet tout con avec un objet sol et un objet qui tombe et pas moyen de faire s’arrêter l'objet pile sur le sol.
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyMar 27 Nov 2012 - 7:21

Je regarderai mes anciens codes ce soir et je te les passe.
Et pour info, then n'est pas obligatoire, c'est juste pour que ce soit plus clair : après un if, soit tu met des accolades pour un bloc d'instructions, soit juste une ligne sans accolades, et tu peux mettre then pour mieux visualiser le code.
Revenir en haut Aller en bas
Yautja
Débutant



Messages : 26

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyMar 27 Nov 2012 - 15:46

Salut,

j'ai fais un tuto sur youtube:

https://www.youtube.com/watch?v=DzKekLeZpuQ




Revenir en haut Aller en bas
K.marx
Petit bavard
K.marx


Messages : 56

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyMar 27 Nov 2012 - 18:23

Merci térence pour tes explications.
Yautja tu n'a pas du bien comprendre, dans ta video tu te sers de l'event collision et c'est précisément ce que j'essaie d'éviter.
Revenir en haut Aller en bas
Yautja
Débutant



Messages : 26

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyMar 27 Nov 2012 - 20:00

Désolé, j'avais pas compris. sweat
Revenir en haut Aller en bas
K.marx
Petit bavard
K.marx


Messages : 56

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyMar 27 Nov 2012 - 20:13

Ya pas de mal gnii
Revenir en haut Aller en bas
K.marx
Petit bavard
K.marx


Messages : 56

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyVen 30 Nov 2012 - 10:35

Si quelqu'un a une réponse ça m'intéresse toujours. J'avais vu il me semble qu'on pouvais utiliser une boucle pour les déplacements pour être parfaitement collé à un mur si on rentre en collision avec lui, si par exemple notre perso court très vite qu'il ne rentre pas de quelques pixel dans le mur. Mais pas moyen de me rappeler comment faire, et je me dis que c'est sûrement le même principe pour avoir une collision propre contre le sol lorsque le perso tombe.
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyVen 30 Nov 2012 - 12:18

Avec une boucle for :
Code:
for (i=0;i<vitesse;i+=1)
{
//ton code
}
Revenir en haut Aller en bas
K.marx
Petit bavard
K.marx


Messages : 56

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyVen 30 Nov 2012 - 13:39

Ok, je pensais qu'y avais une histoire de place_free dans la boucle. Je testerai ça ce soir merci.
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyVen 30 Nov 2012 - 18:21

Ben oui tu la met dans la boucle : par exemple pour avancer vers la droite de 5 pixels :
for(i=0;i<5;i+=1)
{
if place_free(x+1,y) x+=1
}
Revenir en haut Aller en bas
K.marx
Petit bavard
K.marx


Messages : 56

collision gml Empty
MessageSujet: Re: collision gml   collision gml EmptyVen 30 Nov 2012 - 19:34

Merci beaucoup, j'ai pas encore eu le temps de tester mais bon c'est tous con enfaite. Merci encore.
Revenir en haut Aller en bas
Contenu sponsorisé





collision gml Empty
MessageSujet: Re: collision gml   collision gml Empty

Revenir en haut Aller en bas
 
collision gml
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Collision
» collision
» collision
» Collision
» 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: