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

 

 Problème Curseur inventaire

Aller en bas 
3 participants
AuteurMessage
CookiewooD
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
CookiewooD


Nombre de messages : 54

Age : 35

Localisation : Gard

Date d'inscription : 18/09/2018


Problème Curseur inventaire Empty
MessageSujet: Problème Curseur inventaire   Problème Curseur inventaire EmptyMar 16 Oct 2018 - 7:48

Coucou les tasses bleues !

Petite vidéo pour vous montrer mon problème. Quand j'essaye de sélectionner un item dans l'inventaire, l'image du curseur se ne transforme pas en image de l'objet (pourtant j'ai bien précisé dans les Inventory item quelle serait l'image cursor désirée) MAIS j'ai l'impression que l'item est bien sélectionné...

https://vimeo.com/user90659735/review/295324086/7545e4a22d

J'utilise le template BASS2clicks (pas taper) et c'est bizarre car quand je lance "la démo" fournie avec le template 2clicks, les objets d'inventaires se sélectionnent tout a fait normalement avec leur cursor image et je n'ai rien changé du tout au script "2clicksHandler" fourni avec le template.... J'ai du toucher quelque chose ailleurs qui fait "interférence" mais je ne trouve pas quoi... Avez vous une idée ?

Voici à quoi ressemble le 2click handler :
Code:
//----------------------------------------------------------------------------------------------------
// game_start()
//----------------------------------------------------------------------------------------------------
function game_start()
{
 lblActionText.Text = "";
}

//----------------------------------------------------------------------------------------------------
// on_mouse_click()
//----------------------------------------------------------------------------------------------------
function on_mouse_click(MouseButton button)
{
 // when mouse is clicked, text label is cleared
 lblActionText.Text = "";
 
 // when game is paused, clicks aren't processed
 if (IsGamePaused())
 {
 return;
 }
 
 // Left Mouse Button on Object/Character/Hotspot/Location
 // when no inventory is selected:
 // - INTERACT with target
 // - walk to location
 // else
 // - USE inventory on target
 else if (button == eMouseLeft)
 {
 if (GetLocationType(mouse.x, mouse.y) != eLocationNothing)
 {
 if (player.ActiveInventory == null)
 {
 ProcessClick(mouse.x, mouse.y, eModeLookat);
 }
 else
 {
 ProcessClick(mouse.x, mouse.y, eModeUseinv);
 }
 
 }
 else
 {
 if (player.ActiveInventory == null)
 {
 ProcessClick(mouse.x, mouse.y, eModeWalkto);
 }
 else
 {
 player.ActiveInventory = null;
 }
 }
 }

 // Right Mouse Button on Object/Character/Hotspot/Location
 // when no inventory is selected:
 // - EXAMINE target
 // else
 // - DESELECT inventory
 else if (button == eMouseRight)
 {
 if (player.ActiveInventory != null)
 {
 player.ActiveInventory = null;
 }
 
 else if (GetLocationType(mouse.x, mouse.y) != eLocationNothing)
 {
 ProcessClick(mouse.x, mouse.y, eModeInteract);
 }
 }
 
 // Left Mouse Button on Inventory Item
 // when no inventory is selected:
 // - INTERACT with target
 // - SELECT target
 // else
 // - USE inventory on target
 else if (button == eMouseLeftInv)
 {
 InventoryItem *i = InventoryItem.GetAtScreenXY(mouse.x, mouse.y);
 if (i != null)
 {
 if (i.GetProperty("propInstantUse") == true)
 {
 if (player.ActiveInventory == null)
 {
 i.RunInteraction(eModeInteract);
 }
 else
 {
 i.RunInteraction(eModeUseinv);
 }
 }
 else
 {
 if (player.ActiveInventory == null)
 {
 player.ActiveInventory = i;
 }
 else
 {
 if (i.ID != player.ActiveInventory.ID)
 {
 i.RunInteraction(eModeUseinv);
 }
 }
 }
 }
 }
 
 // Right Mouse Button on Inventory Item
 // when no inventory is selected:
 // - EXAMINE target
 // else
 // - DESELECT INVENTORY
 else if (button == eMouseRightInv)
 {
 if (player.ActiveInventory != null)
 {
 player.ActiveInventory = null;
 return;
 }
 
 InventoryItem *i = InventoryItem.GetAtScreenXY(mouse.x, mouse.y);
 if (i != null)
 {
 i.RunInteraction(eModeLookat);
 }
 }
 
}

//----------------------------------------------------------------------------------------------------
// repeatedly_execute()
//----------------------------------------------------------------------------------------------------
function repeatedly_execute()
{
 // Inventory GUI:
 // - make visible if mouse "touches" trigger zone
 // - make invisible if mouse leaves inventory GUI
 if (!gInventoryBar.Visible && mouse.y <= INVENTORY_POPUP_POSITION)
 {
 gInventoryBar.Visible = true;
 }
 
 if (gInventoryBar.Visible && mouse.y > gInventoryBar.Height)
 {
 gInventoryBar.Visible = false;
 }
    if (gPause.Visible == true){
    gInventoryBar.Visible = false;
  }
 
 // Action Text
 // We always display the name of what is under the mouse, with one exception:
 // IF the player has an inventory item selected and hovers over the same inventory item,
 // we display nothing to indicate that an item can not be used on itself
 if (player.ActiveInventory == null)
 {
 lblActionText.Text = Game.GetLocationName(mouse.x, mouse.y);
 }
 else
 {
 InventoryItem *i = InventoryItem.GetAtScreenXY(mouse.x, mouse.y);
 if (i != null && (i.ID == player.ActiveInventory.ID))
 {
 lblActionText.Text = "";
 }
 else
 {
 lblActionText.Text = Game.GetLocationName(mouse.x, mouse.y);
 }
 }

}


Dernière édition par CookiewooD le Mar 16 Oct 2018 - 7:51, édité 1 fois
Revenir en haut Aller en bas
CookiewooD
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
CookiewooD


Nombre de messages : 54

Age : 35

Localisation : Gard

Date d'inscription : 18/09/2018


Problème Curseur inventaire Empty
MessageSujet: Re: Problème Curseur inventaire   Problème Curseur inventaire EmptyMar 16 Oct 2018 - 10:05

Okkkaaayyyy !! j'ai réussi à isoler les lignes de codes qui font "interférence" !!

C'est le curseur dynamique que j'ai crée dans le global script qui fou la m****...

Quand je supprime ces quelques lignes, ça fonctionne :

Code:
  Hotspot* hsurvol = Hotspot.GetAtScreenXY(mouse.x,  mouse.y);
  Object* osurvol = Object.GetAtScreenXY(mouse.x,  mouse.y);
  Character* csurvol = Character.GetAtScreenXY(mouse.x,  mouse.y);
 
  if(hsurvol != hotspot[0]) Mouse.Mode = eModeInteract;
  else if (osurvol != null) Mouse.Mode = eModeInteract;
  else if (csurvol != null) Mouse.Mode = eModeTalkto;
  else Mouse.Mode = eModeWalkto;

Mais évidemment mon curseur n'est plus dynamique et ça m'embeyte langue

Quelqu'un a une idée pour que je garde mon curseur dynamique codé comme ceci (ou autrement) mais qui n’empêche pas de se saisir de mon objet d'inventaire avec son image cursor ?
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


Problème Curseur inventaire Empty
MessageSujet: Re: Problème Curseur inventaire   Problème Curseur inventaire EmptyMar 16 Oct 2018 - 16:31

Salut !

Insère cette ligne juste entre la ligne 7 et la ligne 8 :
Code:
else if (player.ActiveInventory != null) Mouse.Mode = eModeUseinv;

EDIT : en fait si tu fais ça le curseur sera l'objet d'inventaire seulement si tu survoles pas de zone d'interaction, d'objet ou de personnage. Peut-être que tu préférerais quelque chose comme ça :
Code:
  Hotspot* hsurvol = Hotspot.GetAtScreenXY(mouse.x,  mouse.y);
  Object* osurvol = Object.GetAtScreenXY(mouse.x,  mouse.y);
  Character* csurvol = Character.GetAtScreenXY(mouse.x,  mouse.y);
 
  if (player.ActiveInventory != null) Mouse.Mode = eModeUseinv;
  else if (hsurvol != hotspot[0]) Mouse.Mode = eModeInteract;
  else if (osurvol != null) Mouse.Mode = eModeInteract;
  else if (csurvol != null) Mouse.Mode = eModeTalkto;
  else Mouse.Mode = eModeWalkto;
Après si tu a scripté des interactions qui par ailleurs dépedent du mode du curseur (par exemple si tu exécutes du code uniquement lors d'une interaction avec un objet en mode eModeInteract) elles seront pas exécutées lorsque tu cliques avec un objet d'inventaire. Mais c'est peut-être le comportement que tu veux, justement : tu veux peut-être pouvoir scripter des interactions spécifiques lorsque tu cliques sur l'objet avec un objet d'inventaire dans la main.
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
valoulef


Nombre de messages : 1791

Age : 35

Localisation : Condate

Date d'inscription : 01/08/2011


Problème Curseur inventaire Empty
MessageSujet: Re: Problème Curseur inventaire   Problème Curseur inventaire EmptyMar 16 Oct 2018 - 16:56

Oups ! Je viens de me rendre compte que j'ai omis d'indiquer cette ligne dans mon tuto sur le sujet (peut-être que j'avais jugé inutile de trop entrer dans les détails mais effectivement vu que le dernier curseur n'est pas associé à une condition spécifique ça pose souci). My bad. rougit
Revenir en haut Aller en bas
CookiewooD
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
CookiewooD


Nombre de messages : 54

Age : 35

Localisation : Gard

Date d'inscription : 18/09/2018


Problème Curseur inventaire Empty
MessageSujet: Re: Problème Curseur inventaire   Problème Curseur inventaire EmptyMer 17 Oct 2018 - 7:21

En effet Valoufef, j'en mettrai pas ma main à couper mais je crois bien que ça vient d'un de tes tuto vidéo !  Problème Curseur inventaire 114419

ça marche nickel, je me sens bête, c'était tout simple :'( J'apprends un peu plus chaque jour langue


Merciiiiiii beaucoup en tout cas les garçons sourire
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


Problème Curseur inventaire Empty
MessageSujet: Re: Problème Curseur inventaire   Problème Curseur inventaire EmptyMer 17 Oct 2018 - 17:42

Problème Curseur inventaire 5b56ab36e86c4e2fProblème Curseur inventaire 600px-Emoji_u1f44d.svg OKEI!
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Contenu sponsorisé





Problème Curseur inventaire Empty
MessageSujet: Re: Problème Curseur inventaire   Problème Curseur inventaire Empty

Revenir en haut Aller en bas
 
Problème Curseur inventaire
Revenir en haut 
Page 1 sur 1

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: