Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Bon plan achat en duo : 2ème robot cuiseur ...
Voir le deal
600 €

 

 Clic droit = lâcher l'objet

Aller en bas 
2 participants
AuteurMessage
Pierrec
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Pierrec


Nombre de messages : 99

Date d'inscription : 16/06/2011


Clic droit = lâcher l'objet Empty
MessageSujet: Clic droit = lâcher l'objet   Clic droit = lâcher l'objet EmptyLun 20 Juin 2011 - 10:02

Bonjour...désolé de revenir ici tous les trois jours pour vous poser de nouvelles questions.
Je tiens tout de même à vous dire que je bosse sur mon projet AGS depuis une semaine à presque plein temps, et j'ai presque systématiquement trouvé les réponses à mes problèmes sur ce forum, donc merci.

Cependant, une fois de plus, un nouveau détail me taraude. Je voudrais faire en sorte que, lorsque le joueur utilise un objet de son inventaire (curseur changé en objet) le clic droit permette de désélectionner l'objet.
Ca ne semble pas un problème insoluble, pourtant, il doit me manquer la toute petite commande qui le permet, et je ne l'ai pas trouvé dans les commandes de script (ma nouvelle bible) présentes sur le forum.

J'ai déja modifié le Globalscript de manière à ce que le clic gauche fasse marcher/intéragir/utiliser objet de l'inventaire, et pour que le clic droit fasse regarder. Mais je ne trouve pas la commande pour lui faire plutôt lâcher l'objet s'il se trouve à la place du curseur.
Mon Globalscript ressemble à ça (J'ai supprimé pour plus de clarté les lignes qui ne concernaient pas mon problème...il y a peut-être des erreurs de script dans l'extrait, mais il n'y en a pas dans mon Globalscript) :

Code:

function on_mouse_click(MouseButton button) {
  if (IsGamePaused() == 1) {
  }
  else if (button == eMouseLeft)
{
  if (player.ActiveInventory!=null)
  {
  ProcessClick(mouse.x, mouse.y, eModeUseinv);
  }
  else
  {
ProcessClick(mouse.x, mouse.y, eModeInteract);
ProcessClick(mouse.x, mouse.y, eModeWalkto);
  }
}
  else if (button == eMouseRight || button == eMouseWheelSouth)
{
  if (player.ActiveInventory!=null)
  {
  cEgo.Say("Pour l'instant je dois aller désactiver l'objet dans l'inventaire.");
  }
  else
  ProcessClick(mouse.x, mouse.y, eModeLookat);
}


En toute logique, la commande manquante doit se trouver à la place de la ligne " cEgo.Say("Pour l'instant je dois aller désactiver l'objet dans l'inventaire.");"
J'ai essayé avec des commandes telles que mouse.Mode=eModeWalkto; ou mous.Mode=eModeInteract, l'objet disparait bien pour être remplacé par le curseur en question, mais les interactions sont toujours celles de l'objet (comme s'il était toujours utilisé). Et j'avoue ne pas avoir d'autres idées.

Voilà, ca ne doit pas être grand chose, peut-être même suis-je proche de la solution, mais je n'arriverais pas à la trouver tout seul. confus
Revenir en haut Aller en bas
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


Clic droit = lâcher l'objet Empty
MessageSujet: Re: Clic droit = lâcher l'objet   Clic droit = lâcher l'objet EmptyLun 20 Juin 2011 - 15:45

T'en fais pas, c'est pas facile au début, et c'est déjà bien que tu réussisses à trouver les réponses par toi-même sur le forum, mais surtout en faisant des essais pratiques !

Au bout d'un moment on finit par s'habituer à un certain fonctionnement en programmation, et en ce qui concerne ton cas, ça concerne ActiveInventory.
Pour voir que le joueur a un objet sélectionné, tu vérifies que ActiveInventory ne vaut pas null. Autrement dit, si cette propriété vaut null, c'est qu'aucun objet n'est sélectionné. La solution pour déselectionner tout objet, c'est donc de définir ActiveInventory à null ^^
C'est d'ailleurs dit explicitement dans ta nouvelle bible langue

Voilà, je te laisse intégrer ça à ton code, bonne continuation.

_________________
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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Pierrec
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Pierrec


Nombre de messages : 99

Date d'inscription : 16/06/2011


Clic droit = lâcher l'objet Empty
MessageSujet: Re: Clic droit = lâcher l'objet   Clic droit = lâcher l'objet EmptyMar 21 Juin 2011 - 7:59

Merci beaucoup, ça marche, mais je ne comprends pas très bien pour autant, car je me sers aussi de ActiveInventory=null pour signifier que cEgo utiliser un objet d'inventaire.
En gros, mon code donne finalement :

Code:
  if (player.ActiveInventory!=null)
  {
    cEgo.ActiveInventory = null;
  }

En toute logique, on pourrait y lire : "Si le joueur n'utiliser pas d'objet d'inventaire, alors le personnage n'utilise pas d'objet d'inventaire"...ce qui n'a pas vraiment de sens.
Alors que bon, je voudrais plutôt dire "Si le joueur utiliser n'importe quel objet d'inventaire, alors il n'utilise plus d'objet d'inventaire.

Enfin bon...peu importe puisque ça marche.
Merci à toi, je peux me remettre en selle.

EDIT : Aaaaah sauf si != signifie "n'est pas égal". Je comprends tout maintenant.
Revenir en haut Aller en bas
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


Clic droit = lâcher l'objet Empty
MessageSujet: Re: Clic droit = lâcher l'objet   Clic droit = lâcher l'objet EmptyMar 21 Juin 2011 - 10:57

Pierrec a écrit:
EDIT : Aaaaah sauf si != signifie "n'est pas égal". Je comprends tout maintenant.
Voilà le mystère résolu clin d'oeil
Je me demande par contre comment t'avais pu arriver à placer le Say au bon endroit si t'avais pas remarqué ça langue

Note également que dans une condition if, tu vérifies la valeur d'une variable avec == (ou != pour la négation), ce qui est différent d'un simple = qu'on utilise après pour définir la valeur de cette variable (à null en l'occurrence).

_________________
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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Pierrec
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Pierrec


Nombre de messages : 99

Date d'inscription : 16/06/2011


Clic droit = lâcher l'objet Empty
MessageSujet: Re: Clic droit = lâcher l'objet   Clic droit = lâcher l'objet EmptyMar 21 Juin 2011 - 11:56

Je copie colle des choses que je trouve dans différents tutoriaux, et visiblement, je ne les comprends pas, je pensais que "null" singnifiait "n'importel quel" et non pas "aucun".
Pour le == oui, j'avais compris, mais dit comme ça c'est en effet très logique.
Revenir en haut Aller en bas
Contenu sponsorisé





Clic droit = lâcher l'objet Empty
MessageSujet: Re: Clic droit = lâcher l'objet   Clic droit = lâcher l'objet Empty

Revenir en haut Aller en bas
 
Clic droit = lâcher l'objet
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Clic gauche : regarder / Clic droit : interaction
» Double clic
» [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion)
» [résolu] Comment empécher clic de souris pendant une séquence de jeu ?
» Des images libres de droit pour les décors ??

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: