| Problème de collision. | |
|
|
|
Auteur | Message |
---|
Yautja Débutant
Messages : 26
| Sujet: Problème de collision. Mer 12 Déc 2012 - 13:55 | |
| Salut, Je débute pour la création d'un jeu platforme. Je voudrais faire mon jeu sans l'aide de "script" déjà tout fait. J'ai donc commencé a coder un "moteur de platforme" mais il y a un problème. voici le code pour la chute. y+=vv //Ceci est la vitesse verticale //longeur et hauteur de mon sprite 32/32if place_free(x,y+1) { vv+=1 } else { y=other.y-32 //Le problème est là: mon perso fait des petits bond lorsqu'il touche l'objet solide en bas. Et si je met le nom de mon objet solide (bloc) seul les blocs coller entre eux agissent correctement. si je met un bloc tout seul ça beug etc.(j'arrive pas a bien expliquer cette phase là) vv=0 } Je voudrais savoir si vous avez une solution. Me dire qu'est ce qui ne va pas et j'essayerais d'y remédier. Merci. |
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Mer 12 Déc 2012 - 16:25 | |
| Peut être que le code n'est pas bon en lui même? Logiquement lorsqu'il touche l'objet en bas il doit s'arrêter mais il sautille. Les collisions ne sont pas facile a gérer. Mon sprite mesure 32p/32p mon code: si il n y a pas de contact, l'objet tombe d'où vv+=1 sinon il s'arrête vv=0 ; y-=32(car solide =32p/32p) |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Problème de collision. Mer 12 Déc 2012 - 17:52 | |
| Qu'est ce que tu veux faire avec ton code ? C'est pas plus simple d'utiliser la variable gravité ? J'ai voulu répondre cet aprèm, mais je me suis fait choper, c'est ta faute tout ca ! |
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Mer 12 Déc 2012 - 17:58 | |
| Merci de répondre mais ça n'as aucun rapport avec la gravité. le problèmes vient de - Code:
-
y=y-32 l'objet doit s'arreter pil poil sur le bloc, sauf qu'il fait des bond a l'infini au contact... |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Problème de collision. Mer 12 Déc 2012 - 20:29 | |
| Ben essaie avec +32, parce que là il retourne en arrière... Mais là il risque de s'encastrer dans le mur.. Mais je t'avoue que j'ai toujours pas compris ce que tu veux faire... |
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Jeu 13 Déc 2012 - 10:52 | |
| y+=vv //Ceci est la vitesse verticale
if place_free(x,y+1) // si il n y a pas d'objet en bas { vv+=1 // il y a gravité } else sinon { y=y-32 // mon objet qui tombe doit s'arreter sur l'objet solide. vv=0 // pas de gravité }
Térence68. +32 il se retrouve de l'autre coté donc se n'est pas ça.
|
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Problème de collision. Jeu 13 Déc 2012 - 14:53 | |
| Bon ben +1 alors... T'es sur la bonne voie, vu qu'il va désormais dans la bonne direction, essaie avec plusieurs valeurs ; ou fait une boucle : [code]while(place_free(x,y+1)) { y+=1; }
|
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Jeu 13 Déc 2012 - 16:04 | |
| Avec le ce code il agit de la même manière: il fait des bonds au lieu de s'arrêter.
je vais essayer autre chose. Si tu as une idée n'hésite pas a poster merci. |
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Ven 14 Déc 2012 - 13:52 | |
| Je fais appel au expert, là je suis perdu. j'arrive pas a comprendre pourquoi il ne s'arrête pas au contact du sol.
|
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Ven 14 Déc 2012 - 15:50 | |
| salut, - Code:
-
y+=vv if (place_free(x,y+1)) { vv+=1; if vv>15{vv=15} } else { y=bloc.y-32 // VOICI LA SOLUTION --> à priori. vv=0 }
Cela fonctionne mais lorsque un bloc est superposé et que je saute dessus mon perso disparaît. je voudrais savoir si plusieurs objet dans une room, qui appartienne a un seul objet(exemple objet_bloc est placé 5 fois dans la room0) peuvent être indépendant les uns des autres |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: Problème de collision. Ven 14 Déc 2012 - 16:01 | |
| bah je crois que c'est toujours le même problème soulevé par tous les débutants et qui est pas très logique d'ailleurs l'objet se déplace a une certaine vitesse ,il est est donc affiché en fonction de son déplacement si on définit une vitesse supérieure à y=y+1 alors toutes les belles fonctions de GM sont "out" pour la compréhension de la gestion de collision de GM. car lorsque la vitesse augmente, l'objet n'existe plus pour Game maker entre les deux positions, donc on a recourt à un move tout contact quand on programme en icône (c'est mon cas) pour contrecarrer cet état de fait! bref ici c'est bien expliqué! il faut également comprendre la différence entre objet solide et non solide pour résoudre ce problème |
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Ven 14 Déc 2012 - 16:58 | |
| merci marty. Grâce à ça j'ai découvert d'autres fonction intéressante. le problème est y-=32 --> ça fait des bond à l'infini... ce n'est pas la solution je vais essayer - Code:
-
if collision_line(xprevious,yprevious,x,y,obj_mur,true,true) { //vos actions }
mais je ne connais pas la signification de xprevious,yprevious quelqu'un peut m'aider? |
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Ven 14 Déc 2012 - 19:40 | |
| Y a t-il quelqu'un ? |
|
| |
chopsuey Utilisateur confirmé: Rang ***
Messages : 523 Localisation : saint etienne Projet Actuel : All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
...
| Sujet: Re: Problème de collision. Ven 14 Déc 2012 - 23:09 | |
| xprevious,yprevious sont des variables qui renvoient la position x et y au step précédent. Quand tu ne sais pas ce genre de choses regarde dans la doc. Là par exemple tu tape xprevious dans l'index et tu peux lire:
"xprevious sa position précédente en x."
_________________ - Spoiler:
|
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Sam 15 Déc 2012 - 16:15 | |
| je voudrais savoir si plusieurs objet dans une room, qui appartienne a un seul objet(exemple objet_bloc est placé 5 fois dans la room0) peuvent être indépendant les uns des autres |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: Problème de collision. Sam 15 Déc 2012 - 16:46 | |
| Ils le sont systématiquement. _________________ Home is not a place, it's a feeling.
|
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Sam 15 Déc 2012 - 17:02 | |
| pourquoi alors lorsque je place les objet solides dans la room. quand mon objet chute et qu'il touche un objet solide, il se place sur le premier objet solide placé dans la room ?
|
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Sam 15 Déc 2012 - 18:11 | |
| quelqu'un aurait une idée ? |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: Problème de collision. Sam 15 Déc 2012 - 18:46 | |
| Parce que tu utilises une instruction du type "objet_sol.y", or objet_sol n'est pas une instance mais un objet. Plutôt que de cracher une erreur, GM fait comme si tu avais appelé l'instance d'objet_sol avec le plus faible ID (donc la première instanciée).
Si tu es dans un event Collide, l'ID de l'objet détecté est dans la variable other. Sinon, tu peux récupérer cet ID en utilisant la fonction instance_place() au lieu de place_meeting(). Elle retourne noone (-4) si aucun objet n'est rencontré. _________________ Home is not a place, it's a feeling.
|
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Sam 15 Déc 2012 - 19:29 | |
| |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: Problème de collision. Sam 15 Déc 2012 - 19:42 | |
| relis mon message... other ne fonctionne comme ça que dans un event Collision. Sinon tu dois récupérer toi-même l'ID de l'autre via instance_place(). _________________ Home is not a place, it's a feeling.
|
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Sam 15 Déc 2012 - 20:13 | |
| - Citation :
- relis mon message... other ne fonctionne comme ça que dans un event Collision. Sinon tu dois récupérer toi-même l'ID de l'autre via instance_place().
l'ID de l'autre ? |
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Dim 16 Déc 2012 - 14:23 | |
| |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Problème de collision. Dim 16 Déc 2012 - 14:57 | |
| Chaque instance à un id supérieur à 100 000. Tu peux le récupérer grâce à la variable id de chaque objet ou en survolant l'objet dans l'éditeur de room, en bas. |
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Dim 16 Déc 2012 - 15:23 | |
| Alors je dois récupéré tout les id des objet solide situé dans une room ?
et après je fais
instace_place(...) pour tout les id ?
sa va me prendre une éternité |
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Dim 16 Déc 2012 - 17:22 | |
| |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: Problème de collision. Dim 16 Déc 2012 - 18:12 | |
| Non. instance_place() te retourne l'ID de l'instance à la position spécifiée. Ensuite tu peux l'utiliser. _________________ Home is not a place, it's a feeling.
|
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Lun 17 Déc 2012 - 10:57 | |
| |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: Problème de collision. Lun 17 Déc 2012 - 22:02 | |
| slt le problème est le script 0 comme déjà dit pour GM tout les objets identiques de la room sont des instances de l'objet autrement dit, le premier crée dans la room est le "vrai"! j'ai "corriger" ton gmk (bien que je déteste les scripts ect....!) je prog en icône bref! attention a l'origine des sprites et récupère l'id des instances(objets) autour de ton héros/player pour programmer des réactions! http://host-a.net/u/marty/marty.gmk |
|
| |
Yautja Débutant
Messages : 26
| Sujet: Re: Problème de collision. Mar 18 Déc 2012 - 12:34 | |
| salut,
merci.
mais j'ai seulement game maker 6.
j'ai télécharger une application qui permet de convertir un fichier gmk. en gm6.
mais lorsque j'ouvre le fichier gm6 converti il m'affiche:
Error Loading : File seems to be corrupted
|
|
| |
Contenu sponsorisé
| Sujet: Re: Problème de collision. | |
| |
|
| |
| Problème de collision. | |
|