Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 [en cours] collision avec mur intermédiaire...

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: [en cours] collision avec mur intermédiaire...   Lun 1 Déc 2014 - 18:43

J'ai un petit soucis sourire

Jusqu'à présent j'avais des pièces "ouvertes", donc pas de gestions de collisions, mis à part avec les personnages.
Mais j'ai une pièce séparée en deux par un mur.

Je ne sais pas comment m'y prendre pour que le personnage s’arrête sans dépasser (ou même "être sur") le mur de séparation.
J'ai essayé de jouer sur les attributs "Solid" des objets et personnages, mais sans succès.

Je pense que la solution doit être dans la gestion des collisions, mais je en sais pas comment m'y prendre concrètement.

Merci d'avance ^^


Dernière édition par chefgeorges le Lun 1 Déc 2014 - 20:44, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Lun 1 Déc 2014 - 19:57

D'habitude avec AGS, on le fait plutôt en faisant un trou dans la walkeable area.
Je ne sais pas bien comment sont gérés les déplacements dans ton projet, peux-tu nous montrer le code en question ?
Tu peux aussi creuser la piste des Edges si tu ne t'en sert pas dans cette pièce, mais ça ne me semble pas miraculeux (ça ne bloquera pas les "regarder" de l'autre coté de la pièce par exemple).
Tu peux aussi envisager un immense objet, ou un immense hotspot, couvrant la moitié de la pièce inutilisé et interceptant les clics.
Sinon, il faudra intercepter les clics de la pièce par le script. :-/

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Lun 1 Déc 2014 - 20:41

Des trous dans la Walkeable area...
C'est là que je me rends compte combien il est difficile d'appréhender la "logique" d'un logiciel ;p

C'est surement LA solution tout simple que je cherchais sourire

Je regarderais quant même les Edges, pour m'instruire un peu plus ^^

Merci Billbis.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Lun 1 Déc 2014 - 20:46

Ah bin non ^^

Je viens de tester et il y a un problème : si je fais un trou à, par exemple, 50% du Walkeable Area, mais que je clique dans la 2ème moitié de la pièce (donc après le trou), mon personnage refuse d'avancer perplexe

Edit:
Le code demandé :
Code:
function on_mouse_click(MouseButton button) // called when a mouse button is clicked. button is either LEFT or RIGHT
{
  if (IsGamePaused() == 1) // Game is paused, so do nothing (ie. don't allow mouse click)
  {
  }
    else if (button == eMouseLeft)
    {
    ProcessClick(mouse.x,mouse.y, mouse.Mode);
 
      if (mouse.Mode == eModeWalkto)
      {
      player.Walk (mouse.x+GetViewportX(), player.y, eNoBlock, eWalkableAreas);
      }
    }
      else // right-click, so cycle cursor
      { 
      mouse.SelectNextMode();
      }
}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
galactichobo
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?


Nombre de messages : 46

Date d'inscription : 24/11/2014


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Lun 1 Déc 2014 - 21:16

Salut, je suis pas sur de bien comprendre (dur sans images). Mais je crois que tu a du faire un trou dans la deuxième piece et un walkableaera dans la première. D'habitude il faut seulement faire un trou sur les murs et laisser le walkableaera sur les plancher, si il y a un un passage entre les deux pièce tu doit dessiner du walkableaera sur le plancher du passage (pour pouvoir permettre a ton personnage de passer par la pour entrer dans la deuxième pièce.)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
hanakin
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 488

Age : 51

Localisation : Angers

Date d'inscription : 12/09/2012


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Lun 1 Déc 2014 - 21:53

As-tu essayé de faire 2 zones et d'utiliser ceci: RemoveWalkableArea(2); pour rendre inactive la walkableArea 2 (par exemple)
et RestoreWalkableArea(2); pour la rendre valide

si j'ai bien compris tu avances jusqu'au mur et suivant une action tu passes le mur ou le mur est infranchissable et le personnage est d'un coté ou de l'autre du mur suivant une porte prise.

_________________
Ce qui est utile à beaucoup l'emporte sur les désirs du petit nombre. (Spock)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://dinomania.chez-alice.fr/index.htm
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Mar 2 Déc 2014 - 10:20

hanakin a écrit:
As-tu essayé de faire 2 zones et d'utiliser ceci: RemoveWalkableArea(2); pour rendre inactive la walkableArea 2 (par exemple)
et RestoreWalkableArea(2); pour la rendre valide
Ca ne fonctionne pas non plus perplexe

Ma Walkeable Aera n'est en fait qu'une simple ligne. Ce qui m'embète, c'est que si je la limite, quand je clique "plus loin", mon perso refuse d'avancer, car ça dépasse la limite de la W.A.

En y réfléchissant, je pense que la solution est plus dans le script de déplacement que dans la gestion des collision clin d\\\\'oeil

Illustration (en bleu la W.A. sans trou):
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
hanakin
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 488

Age : 51

Localisation : Angers

Date d'inscription : 12/09/2012


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Mar 2 Déc 2014 - 17:57

As tu essayer avec un hotspot lorsque ton joueur le touche le faire reculer de quelques pixel par exemple.


function hHotspot1_WalkOn()
{
player.Walk (mouse.x+(GetViewportX()-20), player.y, eNoBlock, eWalkableAreas);
}

Autrement j'ai eu un probleme un peu similaire sur une region roger ne voulait pas marcher dessus j'ai jamais su pourquoi : http://adventuregamestudio.fr-bb.com/t2413-region

_________________
Ce qui est utile à beaucoup l'emporte sur les désirs du petit nombre. (Spock)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://dinomania.chez-alice.fr/index.htm
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Mar 2 Déc 2014 - 18:36

Et la walkeable area comme cela, pourquoi ça ne te convient pas ?


En tout cas, il y a plein de solutions intéréssantes. sourire

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Mar 2 Déc 2014 - 18:48

Bin justement ça ne me convient pas parce que lorsque je clique après le trou dans la W.A. (dans la partie droite de l'image) le personnage refuse de bouger triste

Ce qui rend le déplacement très frustrant pour un utilisateur. Je ne me suis pas pencher depuis sur le script de déplacement/souris, mais à mon avis que la solution est par là... sourire
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
galactichobo
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?


Nombre de messages : 46

Date d'inscription : 24/11/2014


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Mar 2 Déc 2014 - 20:27

Salut, une petite précision, il me semble avoir lu dans le manuel quelque part que les walkableaera était mieux d’être plus grand qu'un pixel, je sais plus la recommandation 2px ou 4 px je crois (a voir).

Sinon, au lieu d'utilisé une hotspot, moi j’utiliserai plutôt une région.
Car la fonction function hHotspot1_WalkOn() fonctionne quand le personnage est dessus le hotspot, ce qui veut dire que le code sera exécuter tant que le personnage est dessus le hotspot.

Mais la fonction function region1_WalksOnto() fonctionne quand le personnage entre dans la région, ce qui veut dire que le code sera exécuter une seul fois (a chaque fois que le personnage entre dans la région).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Mer 3 Déc 2014 - 12:44

Alors oui, une région permet de stopper le personnage, mais dès qu'on re-clique il traverse à nouveau le mur perplexe

Je continue de penser que la solution est dans le script de déplacement. En fait, AGS refuse d'aller à l'endroit pointé par le curseur car il sait que la W.A. est interrompue avant.

EDIT: J'ai tenté ça aussi, mais ça ne fonctionne pas pour le moment car le personnage reste définitivement bloqué.
Code:
function repeatedly_execute()
{
if ((player.Room == 36) && (AreThingsOverlapping(CHEF, 1000))) {
player.StopMoving();
}
}
Détail supplémentaire : j'ai exactement le même problème si je mets l'objet Mur en .Solid et le personnage principale en .Solid également. Là aussi, le perso refuse d'avancer si je clique après l'objet.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
galactichobo
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?


Nombre de messages : 46

Date d'inscription : 24/11/2014


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Mer 3 Déc 2014 - 19:52

J’essaie de comprendre ce que tu essai de faire mais je suis un peu confus car tu dit sur ton premier message que tu veut que le personnage s’arrête au mur mais après tu dit que si tu click après, il  refuse de bouger...?

Il faut faire attention avec repeatly exe, si tu n'a pas un moyen (une variable par exemple) qui fait que le code s’exécute une seul fois, AGS peut totalement bloqué le jeu.

Citation :
j'ai exactement le même problème si je mets l'objet Mur

Je viens de réaliser que ton mur est un objet? Moi j'utilise pas de mur en objet, en fait je le dessine sur le background et avec les WA, je color seulement l'endroit ou on peu marcher...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Mer 3 Déc 2014 - 21:16

Sinon il y a un espace suspect là :
Code:
     if (mouse.Mode == eModeWalkto)
      {
      player.Walk (mouse.x+GetViewportX(), player.y, eNoBlock, eWalkableAreas); // <- là
      }
Ca devrai être :
Code:
     if (mouse.Mode == eModeWalkto)
      {
      player.Walk(mouse.x+GetViewportX(), player.y, eNoBlock, eWalkableAreas);
      }

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Mer 3 Déc 2014 - 22:20

@Billbis: corrigé mais sans conséquence clin d\\\\'oeil

@galactichobo: je sais pas comment mieux l'expliquer, lol ^^
Quelque soit l'endroit ou je clique sur l'écran, mon personnage se déplacera vers la coordonnée x de la souris, avec une coordonnée y fixe. Je veux donc que ça continue à fonctionner comme ça.
Sauf que là, si je coupe ma WA, par exemple à partir de 320pxl : si je clique au pixel 320, mon perso se déplace jusqu'à cet endroit, mais si par contre je clique à x=321pxl ou même x=640pxl, mon personnage restera fixe, sans broncher (alors que je voudrais qu'il se déplace quant même, mais en s'arrêtant à x=320pxl, forcément).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
filoulefilou
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 259

Date d'inscription : 24/05/2010


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Mer 3 Déc 2014 - 23:10

Bonsoir,

J'imagine que la solution du IsCollidingWithObject (sur un objet invisible ou bien ton mur) couplé avec un Character.StopMoving() , ça n'a pas fonctionné ?
Et mettre deux WA différents, ça change quelque chose ?
Ou encore mettre un truc du genre
oMur.Solid = 1;  en vérifiant bien la Baseline de ton objet.
?

Sinon, test un truc du genre :

Code:

function room_RepExec()
{

if(cPERSO.IsCollidingWithObject(object[0])){
object[0].Solid=true;
cPERSO.Move(object[0].X-10, cPERSO.y, eBlock, eAnywhere);}

}

cPerso étant ton personnage et object[x] ton objet, ça va de soi sourire
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Jeu 4 Déc 2014 - 20:21

En fait, çà :
Code:
    else if (button == eMouseLeft)
    {
    ProcessClick(mouse.x,mouse.y, mouse.Mode);
 
      if (mouse.Mode == eModeWalkto)
      {
      player.Walk (mouse.x+GetViewportX(), player.y, eNoBlock, eWalkableAreas);
      }
    }
Ca devrai être ça plutôt :
Code:
    else if (button == eMouseLeft)
    {
      if (mouse.Mode == eModeWalkto) {
            player.Walk (mouse.x+GetViewportX(), player.y, eNoBlock, eWalkableAreas);
      } else {
            ProcessClick(mouse.x,mouse.y, mouse.Mode);
    }
Sinon la commande player.Walk n'est jamais appelé. et du coup le coup de la WA troué devrai mieux fonctionner je pense.

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
galactichobo
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?


Nombre de messages : 46

Date d'inscription : 24/11/2014


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Sam 6 Déc 2014 - 18:28

chefgeorges a écrit:
@galactichobo: je sais pas comment mieux l'expliquer, lol ^^
Quelque soit l'endroit ou je clique sur l'écran, mon personnage se déplacera vers la coordonnée x de la souris, avec une coordonnée y fixe. Je veux donc que ça continue à fonctionner comme ça.
Sauf que là, si je coupe ma WA, par exemple à partir de 320pxl : si je clique au pixel 320, mon perso se déplace jusqu'à cet endroit, mais si par contre je clique à x=321pxl ou même x=640pxl, mon personnage restera fixe, sans broncher (alors que je voudrais qu'il se déplace quant même, mais en s'arrêtant à x=320pxl, forcément).

Il me semble que ça devrait fonctionner par défaut. Sinon j'utilise pas vraiment getviewport, ca peut venir de la le problème...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Lun 8 Déc 2014 - 10:23

Non, désolé Billbis j'ai essayé (au passage il manqué une } clin d\\\\'oeil) mais ça ne change strictement rien.
Pareil pour galactichobo, aucune incidence...

C'est assez frustrant car je n'arrive pas à comprendre le pourquoi du blocage d'AGS perplexe
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Lun 8 Déc 2014 - 12:00

Et le problème persiste quand tu épaissis la zone ?

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Lun 8 Déc 2014 - 20:26

Étrange... C'est peut-être un cou du bug de valouef.
Peux-tu essayer avec AGS 3.4.0 où le bug de pathfinding en ligne droite a été corrigé ?


_________________
Mon petit DevBlog
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
hanakin
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 488

Age : 51

Localisation : Angers

Date d'inscription : 12/09/2012


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Lun 8 Déc 2014 - 21:33

Comme j'ai citer plus haut j'ai eu a peut prêt le même problème que je n'ai résolus qu'en recommençant tout a zéro , mon personnage ne pouvait plus avancer sans aucune raison.
Un bug bizarre peut être ?

Précision recommencer la room a zéro pas le jeux entier..

_________________
Ce qui est utile à beaucoup l'emporte sur les désirs du petit nombre. (Spock)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://dinomania.chez-alice.fr/index.htm
galactichobo
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?


Nombre de messages : 46

Date d'inscription : 24/11/2014


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Mar 9 Déc 2014 - 14:12

J'ai pas eu ce bug la en particulier, mais plein de bug semblable qui semble relié a une entité "corrompu" si on peu dire. Par entité je veux dire personnage, objet ou item. Moi quand j'arrive a un problème du genre, incompréhensible, je garde le même code que j'applique a un autre entité.
Dans ton cas, tu pourrais essayer de changer de personnage pour ton player, juste pour voir, si sa fonction ou si sa fait la même chose...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Mar 9 Déc 2014 - 15:20

Le prix 2014 du "Début de solution à un problème frustrant et bizarre" revient à Kitai ! grand sourire

Effectivement, en épaississant la zone de déplacement, le problème disparait. C'est un début sourire
Par contre, quid du pourquoi et du comment... perplexe

NB: il faut que la WA fasse au minimum 3pxl de haut. J'ai tenté de bloquer sur l'axe y le déplacement, en remplaçant player.y par 416 dans le script de déplacement du GS, mais ça ne change rien au fait que le perso ne reste plus en ligne droite.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Mer 10 Déc 2014 - 0:21

chefgeorges a écrit:
Le prix 2014 du "Début de solution à un problème frustrant et bizarre" revient à Kitai !
Ce n'est pas tout à fait juste, galactichobo a mentionné ce problème lui aussi :
galactichobo a écrit:
Salut, une petite précision, il me semble avoir lu dans le manuel quelque part que les walkableaera était mieux d’être plus grand qu'un pixel, je sais plus la recommandation 2px ou 4 px je crois (a voir).
Et la remarque de Billbis sur le problème du pathfinding est reliée, puisqu'une solution qu'on avait envisagé pour son module de déplacement à 8 directions était de moduler la coordonnée Y du personnage par 3. Quoi qu'il en soit, heureux que tu aies trouvé une solution à ton problème !

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Contenu sponsorisé




MessageSujet: Re: [en cours] collision avec mur intermédiaire...   Aujourd'hui à 19:16

Revenir en haut Aller en bas
 
[en cours] collision avec mur intermédiaire...
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» recherche d'un intermédiaire pour achat en chine :)
» Import japon via intermédiaire
» [Tuto - Intermédiaire] Luffy By Luffy-Kun [Photoshop]
» Intermédiaire Paypal
» Zombie Deck (intermédiaire) => besoin de vos conseils

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: