Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

 

 [résolu] bug déplacement player avec room de +640 de large.

Aller en bas 
4 participants
AuteurMessage
chefgeorges
Cliqueur Emérite
Cliqueur Emérite
chefgeorges


Nombre de messages : 502

Date d'inscription : 01/02/2008


[résolu] bug déplacement player avec room de +640 de large. Empty
MessageSujet: [résolu] bug déplacement player avec room de +640 de large.   [résolu] bug déplacement player avec room de +640 de large. EmptyVen 21 Mar 2014 - 19:35

Bonjour et désolé pour ce titre mais je ne voyais pas comment exprimer mon problème en une phrase :'(

Dans mon jeu (dans le niveau au Journal le Herald Harold) a un moment le personnage avance jusqu'à une région et là la caméra se déplace pour se caler sur un dialogue entres deux personnages. Voici le code :

Code:
function region1_Arrive()
{
cGeorges.Walk(765, 416, eNoBlock);
while (cGeorges.x < 764) {
SetViewport(GetViewportX() +5, 0);
Wait(1);}

(dialogues...)

while (GetViewportX()> 475) {
  SetViewport(GetViewportX() -5, 0);
Wait(1);}
ReleaseViewport();
}

Tout fonctionnait à merveille. Sauf que depuis que j'ai modifié le GlobalScript pour que le player avance dans la direction du clic de souris, le code précédent bug ! Le player effectue un demi-tour dès qu'il arrive sur la région triste

Voici le code du GlobalScript :
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, player.y, eNoBlock, eWalkableAreas);
  }
  }
  else // right-click, so cycle cursor
  {  
   mouse.SelectNextMode();
  }
}

Mon avis c'est la redondance de la fonction "player.walk" (en cliquant je dis que le player dois aller aux coordonnées mouse.x et mouse.y, et en même temps je lui demande d'aller à des coordonnées différentes). Mais je sèche sur la résolution du problème...

 pleure


Dernière édition par chefgeorges le Sam 22 Mar 2014 - 14:17, édité 1 fois
Revenir en haut Aller en bas
http://instagram.com/ichefgeorges
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


[résolu] bug déplacement player avec room de +640 de large. Empty
MessageSujet: Re: [résolu] bug déplacement player avec room de +640 de large.   [résolu] bug déplacement player avec room de +640 de large. EmptySam 22 Mar 2014 - 9:35

Je ne sais pas trop comment t'aider...
Tu aurais bien pu mettre un ClaimEvent, mais malheureusement on ne peut pas en mettre dans ce genre de fonctions. confus
Sinon faire le 1er Walk en mode eBlock...

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Atavismus
Grand Cliqueur Royal
Grand Cliqueur Royal
Atavismus


Nombre de messages : 1857

Localisation : France

Date d'inscription : 27/01/2014


[résolu] bug déplacement player avec room de +640 de large. Empty
MessageSujet: Re: [résolu] bug déplacement player avec room de +640 de large.   [résolu] bug déplacement player avec room de +640 de large. EmptySam 22 Mar 2014 - 10:47

Moi non plus, surtout que je ne suis pas sûr de comprendre.
Si c'est ce que je crois, j'ai une éventuelle solution un peu bourrin : un booléen global qui conditionnerait le player.Walk
Tu vois ce que je veux dire ?
Les autres, ça vous parait une idée correcte ?

_________________
[résolu] bug déplacement player avec room de +640 de large. Sw_b10[résolu] bug déplacement player avec room de +640 de large. Db_b10
Revenir en haut Aller en bas
http://store.steampowered.com/app/367110/
chefgeorges
Cliqueur Emérite
Cliqueur Emérite
chefgeorges


Nombre de messages : 502

Date d'inscription : 01/02/2008


[résolu] bug déplacement player avec room de +640 de large. Empty
MessageSujet: Re: [résolu] bug déplacement player avec room de +640 de large.   [résolu] bug déplacement player avec room de +640 de large. EmptySam 22 Mar 2014 - 12:08

Je précise que c'est bien la ligne :
Code:
   player.Walk (mouse.x, player.y, eNoBlock, eWalkableAreas);
qui cause problème, car si je l'enlève ça fonctionne.

Autre précision : si j'enlève tout le code ci-dessus dans function region1_Arrive() et bien ça continue à bugger ! Il y aurait donc un blocage avec les régions ?? étrange...


EDIT : ne pas en tenir compte, la vrai source du problème est surement en-dessous clin d'oeil


Dernière édition par chefgeorges le Sam 22 Mar 2014 - 12:14, édité 1 fois
Revenir en haut Aller en bas
http://instagram.com/ichefgeorges
chefgeorges
Cliqueur Emérite
Cliqueur Emérite
chefgeorges


Nombre de messages : 502

Date d'inscription : 01/02/2008


[résolu] bug déplacement player avec room de +640 de large. Empty
MessageSujet: Re: [résolu] bug déplacement player avec room de +640 de large.   [résolu] bug déplacement player avec room de +640 de large. EmptySam 22 Mar 2014 - 12:13

RETIF' ! sourire

Je crois avoir compris le noeud du problème ! En fait cette pièce est plus large (2 fois 640, 1280), et le perso ne bug pas en arrivant dans la région, mais tout simplement le jeu semble ne pas comprendre que la souris puisse pointer au-delà de 640 sourire

Je suis pratiquement sûr de mon fait, mais je n'ai aucune idée du pourquoi de ce problème ni de comment le résoudre ;p
Revenir en haut Aller en bas
http://instagram.com/ichefgeorges
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu] bug déplacement player avec room de +640 de large. Empty
MessageSujet: Re: [résolu] bug déplacement player avec room de +640 de large.   [résolu] bug déplacement player avec room de +640 de large. EmptySam 22 Mar 2014 - 13:35

chefgeorges (mes crochets) a écrit:
Voici le code du GlobalScript :
Code:
 // [ ... ]
    player.Walk (mouse.x, player.y, eNoBlock, eWalkableAreas);

chefgeorges a écrit:
En fait cette pièce est plus large (2 fois 640, 1280), et le perso ne bug pas en arrivant dans la région, mais tout simplement le jeu semble ne pas comprendre que la souris puisse pointer au-delà de 640 sourire

Je suis pratiquement sûr de mon fait, mais je n'ai aucune idée du pourquoi de ce problème ni de comment le résoudre ;p
Solution :
Code:
// [ ... ]
    player.Walk (mouse.x+GetViewportX(), player.y, eNoBlock, eWalkableAreas);
Ce qui est marrant c'est que tu utilises déjà GetViewportX dans les boucles que tu as mises dans la fonction correspondant à la région clin d'oeil

Par ailleurs la gestion des clics dans ton script global me dérange un peu sur le principe, parce que dans le cas où on clique en mode Déplacement tu appelles d'abord ProcessClick avec puis tu déplaces le personnage aux coordonnées du clic. Vu que généralement ProcessClick ne déclenche aucune action lorsqu'on lui passe le mode Déplacement ça ne devrait jamais poser problème, mais bon voilà, c'est bon de garder en tête que tu pourrais théoriquement avoir deux événements (celui correspondant à ProcessClick d'une part et le déplacement d'autre part) qui se déclencheraient lors d'un clic.
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
chefgeorges
Cliqueur Emérite
Cliqueur Emérite
chefgeorges


Nombre de messages : 502

Date d'inscription : 01/02/2008


[résolu] bug déplacement player avec room de +640 de large. Empty
MessageSujet: Re: [résolu] bug déplacement player avec room de +640 de large.   [résolu] bug déplacement player avec room de +640 de large. EmptySam 22 Mar 2014 - 14:16

Wouah ! Kitai tu es définitivement mon idole  chou lol

Ça fonctionne parfaitement. J'avais imaginais cette solution mais sans penser à GetViewport sourire

(NB: Par contre, j'ai pas tout capté concernant ton explication sur ProcessClick)
Revenir en haut Aller en bas
http://instagram.com/ichefgeorges
Contenu sponsorisé





[résolu] bug déplacement player avec room de +640 de large. Empty
MessageSujet: Re: [résolu] bug déplacement player avec room de +640 de large.   [résolu] bug déplacement player avec room de +640 de large. Empty

Revenir en haut Aller en bas
 
[résolu] bug déplacement player avec room de +640 de large.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]vérifier si player est passé par une room
» [résolu] Gestion des teintes/régions avec player.Walk...
» [résolu]deplacement d'un personnage
» [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion)
» [résolu]room, new folder

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: