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

 

 Collision, empêcher l'empilement d'objet

Aller en bas 
5 participants
AuteurMessage
Cigalois
Nouveau



Messages : 7

Collision, empêcher l'empilement d'objet Empty
MessageSujet: Collision, empêcher l'empilement d'objet   Collision, empêcher l'empilement d'objet EmptyJeu 23 Fév 2012 - 12:12

Bonjour,
Je suis actuellement en train de développer un jeu de survie où le héros est poursuivi par des zombies et on doit leur tirer dessus.
Le problème étant que lorsque les zombies se dirigent vers le héros, ils s'empilent dès fois, ce qui donne 30 zombies au même endroit:
Collision, empêcher l'empilement d'objet Bug_em10
J'ai essayé de faire un événement de collision, mais cela crée des problème (Les zombies s'arrêtent et sont bloqués)
Voilà, j'aimerais savoir si vous avez une solution.
Merci
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

Collision, empêcher l'empilement d'objet Empty
MessageSujet: Re: Collision, empêcher l'empilement d'objet   Collision, empêcher l'empilement d'objet EmptyJeu 23 Fév 2012 - 12:20

Bonjour et bienvenue.

Ne connaisant pas ton niveau je vais te proposer deux solutions, une assez simple à mettre en place, il sagit tout simplement d'utiliser des place_meeting:

place_meeting(x, y, obj) Retourne si l'instance placée à la position (x,y) rencontre obj. obj peut être un objet auquel cas la fonction retourne true (VRAI) si une instance de cet objet est rencontrée. Cela peut aussi être un ID d'instance, le mot spécial all indiquant une instance d'un objet quelconque ou le mot spécial other.


Et la deuxième un peut plus complexe est d'utiliser un pathfinding.
Par chance il y as déjà un algo sur le forum:
https://cbna.forumactif.com/t10796-resolu-pathfinding-algorithme-a-exemple-exe-gmk?highlight=pathfinding
Revenir en haut Aller en bas
Cigalois
Nouveau



Messages : 7

Collision, empêcher l'empilement d'objet Empty
MessageSujet: Re: Collision, empêcher l'empilement d'objet   Collision, empêcher l'empilement d'objet EmptyJeu 23 Fév 2012 - 12:51

D'accord merci.
Je suis pas tellement doué mais je me débrouille.
Je viens de tester, le problème est que je crée le même objet plein de fois donc quoique je j'applique sur un des objjets, cela s'appliquera sur les autres ... J'essaie encore en bidouillant.
Merci encore
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
marty


Messages : 697
Projet Actuel : laby-ereinte !

Collision, empêcher l'empilement d'objet Empty
MessageSujet: Re: Collision, empêcher l'empilement d'objet   Collision, empêcher l'empilement d'objet EmptyJeu 23 Fév 2012 - 19:55

pourquoi tu n'utilise pas dans l'onglet move 1 l'icône step( autour de )avec l'option solid object (tout en bas à droite) couplé avec un bounce dans l'event collision lorsque dans l'objet zombie en solid.
Revenir en haut Aller en bas
Cigalois
Nouveau



Messages : 7

Collision, empêcher l'empilement d'objet Empty
MessageSujet: Re: Collision, empêcher l'empilement d'objet   Collision, empêcher l'empilement d'objet EmptyJeu 23 Fév 2012 - 20:59

Je ne pense pas avoir la même version, j'ai la 8, car je n'ai pas d'onglet move 1.
Mais même avec un bounce quand ils sont plein, ils se rentrent dedans et se retrouvent bloqués ...
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

Collision, empêcher l'empilement d'objet Empty
MessageSujet: Re: Collision, empêcher l'empilement d'objet   Collision, empêcher l'empilement d'objet EmptyJeu 23 Fév 2012 - 21:56

Voici un code tout simple qui doit fonctionner convenablement:

Code:
direction = point_direction(x,y,Player.x,Player.y);
image_angle=direction;

if( place_meeting(x+lengthdir_x(1,direction),y+lengthdir_y(1,direction),Zombie) ) speed =0;
else speed=3;

Edit: à placer dans le Step de l'objet "Zombie".
Revenir en haut Aller en bas
Cigalois
Nouveau



Messages : 7

Collision, empêcher l'empilement d'objet Empty
MessageSujet: Re: Collision, empêcher l'empilement d'objet   Collision, empêcher l'empilement d'objet EmptyJeu 23 Fév 2012 - 22:22

Je n'ai pas la version pro, donc les deux premières lignes ne fonctionnent pas ...
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

Collision, empêcher l'empilement d'objet Empty
MessageSujet: Re: Collision, empêcher l'empilement d'objet   Collision, empêcher l'empilement d'objet EmptyJeu 23 Fév 2012 - 22:26

Perso', je ne connais pas les fonctions disponibles pour la version lite/pro.

Actuellement tu fait comment pour définir la direction de ton zombie?
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

Collision, empêcher l'empilement d'objet Empty
MessageSujet: Re: Collision, empêcher l'empilement d'objet   Collision, empêcher l'empilement d'objet EmptyVen 24 Fév 2012 - 11:35

Pour un jeu de ce type, je conseillerais vivement un système de répulsion plutôt qu'un système d'arrêt total, pour éviter d'innombrables bugs de clipping. Ça se résume à appliquer une force à un zombie à chaque collision avec un autre, du second vers le premier et avec une puissance inversement proportionnelle à la distance.

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
glcraft
Utilisateur confirmé: Rang *****
glcraft


Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

Collision, empêcher l'empilement d'objet Empty
MessageSujet: Re: Collision, empêcher l'empilement d'objet   Collision, empêcher l'empilement d'objet EmptyVen 24 Fév 2012 - 18:24

oui, exatement comme minecraft (ou meme les 3/4 des jeux mais sur minecraft, ca creve les yeux ^^) dans ton cas, ca fonctionnerai super.
En revanche pour se faire, il faut utiliser le speed, addition vectorielle (ou moyenne et reproduction sur cercle trigo) si 5 personnage sont autour d'un autre personnage, c'est pas simple a faire...
(t'facon je suis une quiche en matiere de collision...)
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Contenu sponsorisé





Collision, empêcher l'empilement d'objet Empty
MessageSujet: Re: Collision, empêcher l'empilement d'objet   Collision, empêcher l'empilement d'objet Empty

Revenir en haut Aller en bas
 
Collision, empêcher l'empilement d'objet
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Empecher la superposition [résolu]
» Empêcher la répétition des image gif
» Empecher le curseur de sortir de la fenetre du jeu
» empècher que deux objets reste collés
» [GML][DnD] Empecher la création d'un instance d'instance

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: