| collision gml | |
|
|
Auteur | Message |
---|
K.marx Petit bavard
![K.marx](https://2img.net/u/3412/18/80/54/avatars/1788-33.gif)
Messages : 56
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: collision gml Lun 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](/users/3412/18/80/54/smiles/eveneme8.gif) 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 |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
Mass *Excellent utilisateur*
![Mass](https://2img.net/u/3412/18/80/54/avatars/916-58.jpg)
Messages : 3351 Localisation : Dans une canonnière wookie. Projet Actuel : Monter des trucs et des machins
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Lun 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](https://2img.net/i/fa/i/smiles/icon_razz.gif) |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
K.marx Petit bavard
![K.marx](https://2img.net/u/3412/18/80/54/avatars/1788-33.gif)
Messages : 56
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Lun 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 ?? |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
Térence Utilisateur confirmé: Rang *****
![Térence](https://2img.net/u/3412/18/80/54/avatars/1895-83.png)
Messages : 2213 Localisation : Oui
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Lun 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.... |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
K.marx Petit bavard
![K.marx](https://2img.net/u/3412/18/80/54/avatars/1788-33.gif)
Messages : 56
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Lun 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](/users/3412/18/80/54/smiles/eveneme8.gif) " ? |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
Térence Utilisateur confirmé: Rang *****
![Térence](https://2img.net/u/3412/18/80/54/avatars/1895-83.png)
Messages : 2213 Localisation : Oui
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Lun 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 ? |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
K.marx Petit bavard
![K.marx](https://2img.net/u/3412/18/80/54/avatars/1788-33.gif)
Messages : 56
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Lun 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 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 ^^ |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
K.marx Petit bavard
![K.marx](https://2img.net/u/3412/18/80/54/avatars/1788-33.gif)
Messages : 56
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Lun 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} |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
K.marx Petit bavard
![K.marx](https://2img.net/u/3412/18/80/54/avatars/1788-33.gif)
Messages : 56
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Lun 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. |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
D-z Utilisateur confirmé: Rang *****
![D-z](https://2img.net/u/3412/18/80/54/avatars/1588-46.png)
Messages : 1611 Localisation : Montpellier
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Lun 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. |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
K.marx Petit bavard
![K.marx](https://2img.net/u/3412/18/80/54/avatars/1788-33.gif)
Messages : 56
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Mar 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 ? 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. |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
Térence Utilisateur confirmé: Rang *****
![Térence](https://2img.net/u/3412/18/80/54/avatars/1895-83.png)
Messages : 2213 Localisation : Oui
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Mar 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. |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
Yautja Débutant
Messages : 26
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Mar 27 Nov 2012 - 15:46 | |
| |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
K.marx Petit bavard
![K.marx](https://2img.net/u/3412/18/80/54/avatars/1788-33.gif)
Messages : 56
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Mar 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. |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
Yautja Débutant
Messages : 26
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Mar 27 Nov 2012 - 20:00 | |
| Désolé, j'avais pas compris. |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
K.marx Petit bavard
![K.marx](https://2img.net/u/3412/18/80/54/avatars/1788-33.gif)
Messages : 56
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Mar 27 Nov 2012 - 20:13 | |
| Ya pas de mal |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
K.marx Petit bavard
![K.marx](https://2img.net/u/3412/18/80/54/avatars/1788-33.gif)
Messages : 56
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Ven 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. |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
Térence Utilisateur confirmé: Rang *****
![Térence](https://2img.net/u/3412/18/80/54/avatars/1895-83.png)
Messages : 2213 Localisation : Oui
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Ven 30 Nov 2012 - 12:18 | |
| Avec une boucle for : - Code:
-
for (i=0;i<vitesse;i+=1) { //ton code } |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
K.marx Petit bavard
![K.marx](https://2img.net/u/3412/18/80/54/avatars/1788-33.gif)
Messages : 56
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Ven 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. |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
Térence Utilisateur confirmé: Rang *****
![Térence](https://2img.net/u/3412/18/80/54/avatars/1895-83.png)
Messages : 2213 Localisation : Oui
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Ven 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 } |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
K.marx Petit bavard
![K.marx](https://2img.net/u/3412/18/80/54/avatars/1788-33.gif)
Messages : 56
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml Ven 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. |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
Contenu sponsorisé
![collision gml Empty](https://2img.net/i/empty.gif) | Sujet: Re: collision gml ![collision gml Empty](https://2img.net/i/empty.gif) | |
| |
|
![Aller en bas](https://2img.net/i/empty.gif) | |
| collision gml | |
|