Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Cartes Pokémon : la prochaine extension Pokémon sera EV6.5 Fable ...
Voir le deal

 

 [Résolu] probleme d'objets d'intentaire non actifs...

Aller en bas 
3 participants
AuteurMessage
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue



Nombre de messages : 1346

Date d'inscription : 10/05/2012


[Résolu] probleme d'objets d'intentaire non actifs... - Page 2 Empty
MessageSujet: Re: [Résolu] probleme d'objets d'intentaire non actifs...   [Résolu] probleme d'objets d'intentaire non actifs... - Page 2 EmptySam 13 Avr 2013 - 14:18

Il est vrai que sur le coup, j’aurais du tester le code que j'ai proposé avant. rougit Il reste sans aucuns doutes d’innombrables coquilles qui, une foi copié / collé aboutissent à autant de bugs. Le code était plus à but pédagogique que pour être brutalement recopié dans un projet. En effet, si tu nous passe un template / projet, on pourra surement te le débugger, mais c'est moins formateur pour toi. grand sourire
Cela dit, j'ai du mal à saisir l'urgence de la situation. Tu peux tout à fait continuer à développer ton jeu, et ne finaliser le comportement de la souris qu'à la fin.
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Threepwood
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue



Nombre de messages : 144

Date d'inscription : 29/12/2012


[Résolu] probleme d'objets d'intentaire non actifs... - Page 2 Empty
MessageSujet: Re: [Résolu] probleme d'objets d'intentaire non actifs...   [Résolu] probleme d'objets d'intentaire non actifs... - Page 2 EmptySam 13 Avr 2013 - 14:57

en effet y a pas d'urgence...c'est plutot une sorte de passade temporelle nevralgique due au fait que ca fait 2 jours que je passe dessus sans quasi dormir et que par rapport à mon comportement personnel de type assez tenace et organisé associé a 3 litres quotidien de café, je ne reste jamais sur un echec et fait toujours les choses dans l'ordre dans lessquelles je les lance...
un peu un taré obtus qui baigne dans la doctrine du 'on ne remet jamais au lendemain..."

D'ailleurs pour faire ce que j'entreprend avec ce jeu , tout seul, a la racine faut etre deja completement taré... mais quand on l'assume ...ça marche deja mieux lol

Oui je continuerai avec un template souris par defaut d'ici ce week end ou la semaine, un template simple pour ce cas de figure car j'ai la certitude (confirmée ici) que ce genre de code est en fait très demandé...tant qu'a être fou, autant etre aussi altruiste non? langue

je suis aussi nevrosé que mes png du jeu en fait... lol
ceci explique cela ... methodique, organisé, et perfectioniste, têtu, acharné...
apres j'ai aussi des defauts hein ! mais c'est pas le sujet langue

(non l'abandon apres les 6 mois de casses tete que je viens de passer etait plus dans un esprit cynique et provoque/surealiste qu'autre chose...je suis pas pret de le laisser j'ai encore au moins 5 scenes a faire et ca prend 2 mois et demi par scenes....

D'ailleurs etant si perfectioniste et tete comment pourrai-je abandonner?

même si l'appel des plages, , des poulette, de la bibine et du rosé frais sur le bord de plage et des siestes au soleil sur le sable chaud commencent déja a me faire des clins d'oeil et des appels du pieds depuis ce matin......va faloir que j'avance impérativement avant juin ici ...) sourire
Revenir en haut Aller en bas
Threepwood
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Threepwood


Nombre de messages : 144

Age : 51

Localisation : Hyères

Date d'inscription : 29/12/2012


[Résolu] probleme d'objets d'intentaire non actifs... - Page 2 Empty
MessageSujet: Re: [Résolu] probleme d'objets d'intentaire non actifs...   [Résolu] probleme d'objets d'intentaire non actifs... - Page 2 EmptyDim 14 Avr 2013 - 16:09

Et bien voilà ! I'll break the code ce dimanche soir, comme quoi ça sert d'être tenace et de s'octroyer un moment de pause entre 2 jours de code et de recherches !

Lol

Donc la ligne de code que je cherchais pour eradiquer ce bug que j'expliquais au dessus est simplement :
player.ActiveInventory = null;

Tout simplement puisque je demandais a vouloir annuler l'actio nde l'icone via click droit...
J'ai trouvé en fouinant et testant divers codes de la faq du forums uk d'ags...

C'était tout simplement cette ligne de code qui me manquait !
Bon j'ai pas tésté la suite vu que je sais que dès qu'on repare quelque chose ca bug autre part mais je vais rester confiant.... !

Alors pour vous faire profiter du code que j'ai mis au point avec vos aides et vos astuces progressivement ce week end, je vous le colle ici en fonctionnel !

Le concept :
______________________________
curseur mode defaut : walkto
click gauche > action Walk
si passe sur objet/hotspot > action interract avec changement du curseur animé (mouse over)

click droit : curseur et mode Lookat
________________________________

Inventaire :
click gauche sur item inventaire : curseur item avec action interract
click droit (c'est là que ca me bloquait...) : Annulation item, retour au mode mouse par defaut (walk/look)

Et voilàààààà !

Pfiouuuu tout ça pour juste cette petite ligne ! enfin voilà
bonne fin de dimanche et voici le résultat du code...

Si jamais vous voulez l'alleger/ameliorer vous gênez pas.

Code:
 [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) {
   
    ginfo.Visible=false;
      if (player.ActiveInventory == null) {
        Mouse.EnableMode(eModeUseinv);
      mouse.Mode= eModeInteract  ;
      mouse.ChangeModeGraphic (eModeInteract, 1368);
          ProcessClick(mouse.x, mouse.y, mouse.Mode ); }
      if(GetLocationType(mouse.x, mouse.y)==eLocationHotspot){
 mouse.Mode = (eModeWalkto);
 }
 if(GetLocationType(mouse.x, mouse.y)==eLocationCharacter){
mouse.Mode = (eModeTalkto);
 }
 if(GetLocationType(mouse.x, mouse.y)==eLocationObject){
 mouse.Mode = (eModeInteract);
 }
 else if (player.ActiveInventory != null) {
      ProcessClick(mouse.x, mouse.y, eModeUseinv); }
 
else mouse.ChangeModeGraphic (eModeWalkto, 85) ;
ProcessClick(mouse.x, mouse.y, eModeWalkto);
  }
          if (mouse.Mode == eModeUseinv) {
          player.ActiveInventory = inventory[game.inv_activated];
    if (button == eMouseRight){
 player.ActiveInventory = null;  // lose active inventory item
          mouse.Mode=eModeInteract; 
  }
  if (button == eMouseLeft) ProcessClick(mouse.x, mouse.y, eModeUseinv);
        }
     
  else if (button == eMouseRight){
    ginfo.Visible=false;
    mouse.Mode = eModeLookat ; 
 
    mouse.ChangeModeGraphic (eModeLookat, 183);
    ProcessClick(mouse.x, mouse.y, mouse.Mode );
   
      if(GetLocationType(mouse.x, mouse.y)==eLocationHotspot){
mouse.Mode = (eModeLookat);
 }
 if(GetLocationType(mouse.x, mouse.y)==eLocationCharacter){
  mouse.Mode = (eModeLookat);
 }
 if(GetLocationType(mouse.x, mouse.y)==eLocationObject){
 mouse.Mode = (eModeLookat);
 }
  else if (player.ActiveInventory != null) {
      ProcessClick(mouse.x, mouse.y, eModeUseinv); }
 
else mouse.ChangeModeGraphic (eModeWalkto, 85) ;
ProcessClick(mouse.x, mouse.y, eModeWalkto);
    } 
  else mouse.Mode = (eModeInteract);
    }    [/code]
   
   

Pour le moment je continue dans ma philosophie de vie...peu importe le moyen, ce qui compte c'est le résultat alors le code est peut-être indigeste ici mais l'essentiel c'est qu'il me donne exactement ce que je recherchais à faire...

et il servira certainement à d'autres ! sourire

_________________
Projet en cours : KINGEEKS QUEST
http://kingeeks.blogspot.fr/


Dernière édition par Threepwood le Mer 17 Avr 2013 - 8:11, édité 2 fois
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


[Résolu] probleme d'objets d'intentaire non actifs... - Page 2 Empty
MessageSujet: Re: [Résolu] probleme d'objets d'intentaire non actifs...   [Résolu] probleme d'objets d'intentaire non actifs... - Page 2 EmptyLun 15 Avr 2013 - 15:12

C'est cool que t'aies trouvé la solution Threepwood, mais si tu relis bien le message de Billbis, la solution était marquée noire sur blanc (ou plutôt rouge sur bleu/gris foncé) :
Code:
  else if (button == eMouseRight) {
    if (player.ActiveInventory != null) {
      player.ActiveInventory = null;
Alors certes, un simple copier/coller ne marchait peut-être pas, mais l'analyse du code est assez sommaire : "si le bouton de clic est le bouton droit, et si le joueur utilise actuellement un objet d'inventaire, alors on n'utilise plus d'objet d'inventaire". Il fallait bien sûr chercher la signification de ActiveInventory pour bien comprendre ce code.
C'est peut-être une qualité qu'il te reste à acquérir : prendre le temps d'analyser plus en profondeur les codes qu'on te donne clin d'oeil

_________________
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
Threepwood
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Threepwood


Nombre de messages : 144

Age : 51

Localisation : Hyères

Date d'inscription : 29/12/2012


[Résolu] probleme d'objets d'intentaire non actifs... - Page 2 Empty
MessageSujet: Re: [Résolu] probleme d'objets d'intentaire non actifs...   [Résolu] probleme d'objets d'intentaire non actifs... - Page 2 EmptyLun 15 Avr 2013 - 15:37

oui exact !!!!
Faut bien avoué qu'apres 3 jours de lutte non stop devant l'ecran j'avais plus vraiment les yeux en face des trous lol

Le peux que je dormais j'arrivais presque a rever de If et de mouse.mode

encore merci a Billbis !qui aura son nom dans le générique s'il est d'accors ..peut-etre meme un png a son nom dans les prochains chapitre du jeu sourire

_________________
Projet en cours : KINGEEKS QUEST
http://kingeeks.blogspot.fr/
Revenir en haut Aller en bas
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] probleme d'objets d'intentaire non actifs... - Page 2 Empty
MessageSujet: Re: [Résolu] probleme d'objets d'intentaire non actifs...   [Résolu] probleme d'objets d'intentaire non actifs... - Page 2 EmptyLun 15 Avr 2013 - 18:40

Y a pas de soucis, Threepwood. grand sourire
Content que le problème soit résolu.
Pour les remerciements, sens toi libre ! Je ne réclame rien. Si tu tiens vraiment à me citer explicitement, pas de problème, j'en serai honoré (même si je ne vois pas pourquoi je mériterai un tel honneur...).

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Threepwood
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Threepwood


Nombre de messages : 144

Age : 51

Localisation : Hyères

Date d'inscription : 29/12/2012


[Résolu] probleme d'objets d'intentaire non actifs... - Page 2 Empty
MessageSujet: Re: [Résolu] probleme d'objets d'intentaire non actifs...   [Résolu] probleme d'objets d'intentaire non actifs... - Page 2 EmptyLun 15 Avr 2013 - 19:12

une affaire a suivre en 2014 lol

sinon, j'ai mis a jour (edité) le code donné ci-dessus

il manquait une fonction click Gauche d'action de l'item que je viens de découvrir dans mes tests ... et voilà sourire (ca ne validait pas l'utilisation de litem sur un objet mais seulement sur hotspots) , il y a avait un problème de double clic dû à la fonction processclick biensur...
C'est chose réparée...
Voici le code final testé et approuvé par mes soins sourire

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) {
   
    ginfo.Visible=false;
      if (player.ActiveInventory == null) {
        Mouse.EnableMode(eModeUseinv);
      mouse.Mode= eModeInteract  ;
      mouse.ChangeModeGraphic (eModeInteract, 1368);
          ProcessClick(mouse.x, mouse.y, mouse.Mode ); }
      if(GetLocationType(mouse.x, mouse.y)==eLocationHotspot){
 mouse.Mode = (eModeWalkto);
 }
 if(GetLocationType(mouse.x, mouse.y)==eLocationCharacter){
mouse.Mode = (eModeTalkto);
 }
 if(GetLocationType(mouse.x, mouse.y)==eLocationObject){
 mouse.Mode = (eModeInteract);
 }
 else if (player.ActiveInventory != null) {
      ProcessClick(mouse.x, mouse.y, eModeUseinv); }
 
else mouse.ChangeModeGraphic (eModeWalkto, 85) ;
ProcessClick(mouse.x, mouse.y, eModeWalkto);
  }
          if (mouse.Mode == eModeUseinv) {
          player.ActiveInventory = inventory[game.inv_activated];
    if (button == eMouseRight){
 player.ActiveInventory = null;  // lose active inventory item
          mouse.Mode=eModeInteract; 
  }
  if (button == eMouseLeft) ProcessClick(mouse.x, mouse.y, eModeUseinv);
        }
     
  else if (button == eMouseRight){
    ginfo.Visible=false;
    mouse.Mode = eModeLookat ; 
 
    mouse.ChangeModeGraphic (eModeLookat, 183);
    ProcessClick(mouse.x, mouse.y, mouse.Mode );
   
      if(GetLocationType(mouse.x, mouse.y)==eLocationHotspot){
mouse.Mode = (eModeLookat);
 }
 if(GetLocationType(mouse.x, mouse.y)==eLocationCharacter){
  mouse.Mode = (eModeLookat);
 }
 if(GetLocationType(mouse.x, mouse.y)==eLocationObject){
 mouse.Mode = (eModeLookat);
 }
  else if (player.ActiveInventory != null) {
      ProcessClick(mouse.x, mouse.y, eModeUseinv); }
 
else mouse.ChangeModeGraphic (eModeWalkto, 85) ;
ProcessClick(mouse.x, mouse.y, eModeWalkto);
    } 
  else mouse.Mode = (eModeInteract);
    }   

_________________
Projet en cours : KINGEEKS QUEST
http://kingeeks.blogspot.fr/
Revenir en haut Aller en bas
Threepwood
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Threepwood


Nombre de messages : 144

Age : 51

Localisation : Hyères

Date d'inscription : 29/12/2012


[Résolu] probleme d'objets d'intentaire non actifs... - Page 2 Empty
MessageSujet: Re: [Résolu] probleme d'objets d'intentaire non actifs...   [Résolu] probleme d'objets d'intentaire non actifs... - Page 2 EmptyMer 17 Avr 2013 - 8:20

Petite amélioration dans le code ce matin...Le code à changé

-Il y avait la fonction Processclick evidement qui simulait un clic doublon inutile et agaçant faisant repeter les action en double
-il manquait le mode emousinterract par defaut en cas de click annulé (derniere ligne en if else )
-click gauche sur un character = action talkto
-click droit sur character = elookat


Voilà..le code final ci-dessous...
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) {
   
    ginfo.Visible=false;
      if (player.ActiveInventory == null) {
        Mouse.EnableMode(eModeUseinv);
      mouse.Mode= eModeInteract  ;
      mouse.ChangeModeGraphic (eModeInteract, 1368);
          ProcessClick(mouse.x, mouse.y, mouse.Mode ); }
      if(GetLocationType(mouse.x, mouse.y)==eLocationHotspot){
 mouse.Mode = (eModeWalkto);
 }
 if(GetLocationType(mouse.x, mouse.y)==eLocationCharacter){
mouse.Mode = (eModeTalkto);
 }
 if(GetLocationType(mouse.x, mouse.y)==eLocationObject){
 mouse.Mode = (eModeInteract);
 }
 else if (player.ActiveInventory != null) {
      ProcessClick(mouse.x, mouse.y, eModeUseinv); }
 
else mouse.ChangeModeGraphic (eModeWalkto, 85) ;
ProcessClick(mouse.x, mouse.y, eModeWalkto);
  }
          if (mouse.Mode == eModeUseinv) {
          player.ActiveInventory = inventory[game.inv_activated];
    if (button == eMouseRight){
 player.ActiveInventory = null;  // lose active inventory item
          mouse.Mode=eModeInteract; 
  }
  if (button == eMouseLeft) ProcessClick(mouse.x, mouse.y, eModeUseinv);
        }
     
  else if (button == eMouseRight){
    ginfo.Visible=false;
    mouse.Mode = eModeLookat ; 
 
    mouse.ChangeModeGraphic (eModeLookat, 183);
    ProcessClick(mouse.x, mouse.y, mouse.Mode );
   
      if(GetLocationType(mouse.x, mouse.y)==eLocationHotspot){
mouse.Mode = (eModeLookat);
 }
 if(GetLocationType(mouse.x, mouse.y)==eLocationCharacter){
  mouse.Mode = (eModeLookat);
 }
 if(GetLocationType(mouse.x, mouse.y)==eLocationObject){
 mouse.Mode = (eModeLookat);
 }
  else if (player.ActiveInventory != null) {
      ProcessClick(mouse.x, mouse.y, eModeUseinv); }
 
else mouse.ChangeModeGraphic (eModeWalkto, 85) ;
ProcessClick(mouse.x, mouse.y, eModeWalkto);
    } 
  else mouse.Mode = (eModeInteract);
    } 
   


Je tenais à le préciser car comme on dit...'Quand on change le code...On previent ! " lol
https://www.youtube.com/watch?v=7hXkLvPz2kM


_________________
Projet en cours : KINGEEKS QUEST
http://kingeeks.blogspot.fr/
Revenir en haut Aller en bas
Contenu sponsorisé





[Résolu] probleme d'objets d'intentaire non actifs... - Page 2 Empty
MessageSujet: Re: [Résolu] probleme d'objets d'intentaire non actifs...   [Résolu] probleme d'objets d'intentaire non actifs... - Page 2 Empty

Revenir en haut Aller en bas
 
[Résolu] probleme d'objets d'intentaire non actifs...
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]Probleme de gui
» [résolu]Probleme de sons
» [résolu]Pb Probleme de variable
» [Resolu] Probleme FollowCharacter
» [résolu] Problème de retour à la ligne

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: