Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G Double SIM à 599€
599 €
Voir le deal

 

 Comment savoir si un objet est accessible

Aller en bas 
5 participants
AuteurMessage
Vi
Cliqueur Amateur
Cliqueur Amateur
Vi


Nombre de messages : 214

Date d'inscription : 03/03/2008


Comment savoir si un objet est accessible Empty
MessageSujet: Comment savoir si un objet est accessible   Comment savoir si un objet est accessible EmptyMer 4 Juin 2008 - 20:52

Ma question est simple
le personnage veut prendre, utiliser un objet de la room.
Je veux savoir si le personnage peut aller à coté de l'objet en question avant d'effectuer l'action.
Pour le moment, il peut prendre n'importe quel objet d'où qu'il soit (pas top)
j'ai cherche un peu et rien trouver de spécial du style
fonction IsObjectReacheable (dommage)
Mais peut être ais-je mal chercher ?

sinon j'ai essayé un script que voilà :

cTancred est mon personnage
rCorde l'objet de la room
iCorde l'objet de l'inventaire

cTancred.Walk(rCorde.X, rCorde.Y, eBlock, eWalkableAreas); // on fait marcher le personnage jusqu'à l'objet en passant par les walkarea)
if(Maths.Sqrt(Maths.RaiseToPower(IntToFloat(cTancred.x-rCorde.X), 2.0))<5.0) // compliqué ca, mais bizarrement j'ai pas trouver de fonction qui retourne une valeur absolue, 5.0 est histoire de ne pas devoir être collé à l'objet mais juste à coté).
{
cTancred.FaceObject(rCorde);
cTancred.AddInventory(iCorde);
rCorde.Visible = false;
cTancred.Say("j'ai pris une corde");
}

else
{
cTancred.Say("je ne peux pas l'atteindre");
}

Cela fonctionne mais je pense qu'il y a plus simple et plus élégant.
Comme je débute en script merci de m'aider.
Revenir en haut Aller en bas
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 6018

Age : 46

Localisation : Montpellier

Date d'inscription : 17/04/2006


Comment savoir si un objet est accessible Empty
MessageSujet: Re: Comment savoir si un objet est accessible   Comment savoir si un objet est accessible EmptyJeu 5 Juin 2008 - 4:56

Euh je pige pas trop ton problème.
Si tu veux qu'un perso s'approche avant de prendre un objet, tu le fais simplement marcher jusqu'à un point précis près de l'objet avant de l'ajouter à son inventaire et de faire disparaître l'objet de la room.
A moins que tu ne veuilles détecter si le personnage est suffisamment près de l'objet pour pouvoir le prendre, par exemple comme dans les Voyageurs du Temps qui rabâchent sans cesse "approchez-vous plus près" dès qu'on veut faire un truc ?
Dans ce cas c'est très simple, tu soustraits les coordonnées x et y des deux objets, et ça ne marche que si c'est inférieur ou égal à un certain nombre (par exemple une différence de 10 pixels).
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
Vi
Cliqueur Amateur
Cliqueur Amateur
Vi


Nombre de messages : 214

Date d'inscription : 03/03/2008


Comment savoir si un objet est accessible Empty
MessageSujet: Re: Comment savoir si un objet est accessible   Comment savoir si un objet est accessible EmptyJeu 5 Juin 2008 - 8:00

c'est ça, en fait ce qui m'interessait surtout est d'avoir une fonction qui me dise si l'objet est accessible.

exemple :

la room est séparée en deux par une rivière (ou un ravin).
Le personnage est d'un coté, l'objet de l'autre.
J'aimerais une fonction qui me dise que l'objet n'est pas accessible puisque le personnage ne peut physiquement pas l'atteindre.

je crois que je vais rester sur ce que j'ai fais, ca marche pas trop mal.
Revenir en haut Aller en bas
Alph Eratz
Cliqueur Emérite
Cliqueur Emérite
Alph Eratz


Nombre de messages : 861

Age : 60

Localisation : Ca y est Saroumane le multicolor est défait, en route pour le Rohan

Date d'inscription : 22/01/2008


Comment savoir si un objet est accessible Empty
MessageSujet: Re: Comment savoir si un objet est accessible   Comment savoir si un objet est accessible EmptyJeu 5 Juin 2008 - 10:59

Je pense qu'il faut jouer avec les hotspots. Du style si le perso n'est pas sur le hotspot il ne peut prendre l'objet et mettre une condition que quand il est dessus, il peut cliquer sur l'objet donc il peut le prendre.
Maintenant je n'ai pas encore expérimenté cette technique mais il me semble que c'est possible. A voir avec d'autres spécialistes du forum.
Revenir en haut Aller en bas
http://lauvrayarcherie.com
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 6018

Age : 46

Localisation : Montpellier

Date d'inscription : 17/04/2006


Comment savoir si un objet est accessible Empty
MessageSujet: Re: Comment savoir si un objet est accessible   Comment savoir si un objet est accessible EmptyJeu 5 Juin 2008 - 11:50

J'avais essayé déjà de chercher une option "détecter si le perso est sur un hotspot/une région", mais j'ai pas trouvé... c'est sûr que ça simplifierait la tâche !
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
riseryn
Cliqueur Emérite
Cliqueur Emérite
riseryn


Nombre de messages : 559

Localisation : 77

Date d'inscription : 01/11/2007


Comment savoir si un objet est accessible Empty
MessageSujet: Re: Comment savoir si un objet est accessible   Comment savoir si un objet est accessible EmptyJeu 5 Juin 2008 - 12:41

Il suffit de declarer une variable a 0 pour innacessible et 1 pour accessible.
Par defaut la variable est a 0
Si le personnage est sur un hotspot ou une region on passe la variable a 1.
Dans l'action de l'objet on test si la variable est a 1 et hop c'est tout.

Il y a surement d'autres facons de faire celle ci etant la premiere qui me vient a l'esprit.

_________________
il y a deux choses d'infinis, l'univers et la connerie humaine.
En ce qui concerne l'univers je ne suis pas sur.
(Albert Einstein)
Revenir en haut Aller en bas
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 6018

Age : 46

Localisation : Montpellier

Date d'inscription : 17/04/2006


Comment savoir si un objet est accessible Empty
MessageSujet: Re: Comment savoir si un objet est accessible   Comment savoir si un objet est accessible EmptyJeu 5 Juin 2008 - 12:57

Pas bête :sourire:
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
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


Comment savoir si un objet est accessible Empty
MessageSujet: Re: Comment savoir si un objet est accessible   Comment savoir si un objet est accessible EmptyJeu 5 Juin 2008 - 13:00

Shai-la a écrit:
J'avais essayé déjà de chercher une option "détecter si le perso est sur un hotspot/une région", mais j'ai pas trouvé... c'est sûr que ça simplifierait la tâche !

Une méthode très simple pour détecter si un personnage se trouve ou non sur une région/un hotspot c'est d'utiliser GetAtScreen/GetAtRoom et les coordonnées du personnage en question.

Exemple :
Code:
if (Region.GetAtRoomXY(player.x, player.y) == region[0])
ou encore
Code:
if (Hotspot.GetAtScreenXY(GetViewportX() + player.x, GetViewportY() + player.y) == hObjet)
(il est donc préférable d'utiliser les régions)

Pour ce qui est de détecter si le personnage peut atteindre un objet, eh bien malgré l'aspect un peu "barbare" (mathématiquement) du code de Vi, je pense qu'il est préférable car il permet de laisser libre d'autres utilisations les hotspots/régions.
Toutefois les deux méthodes semblent à peu près aussi efficaces.

(Une fonction "absolue" n'est pas très compliquée à coder si son utilité se trouve justifiée, il suffit d'une condition sur le caractère négatif ou non de l'argument passé dans la fonction, et de retourner si besoin est, le même nombre multiplié par -1)

_________________
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
Vi
Cliqueur Amateur
Cliqueur Amateur
Vi


Nombre de messages : 214

Date d'inscription : 03/03/2008


Comment savoir si un objet est accessible Empty
MessageSujet: Re: Comment savoir si un objet est accessible   Comment savoir si un objet est accessible EmptyJeu 5 Juin 2008 - 13:05

Le problème que je vois avec les régions et les hotspots, est d'une part leur limite en nombre (bon je pense pas non plus que le nombre d'objets dans une room soit si important, mais j'aime pas les limites), de plus ils ont déjà un rôle défini.
Et puis en cas de multiples objets dans une zone reduite (voir d'objets superposés), cela risque d'être chaud à delimiter comme zone.
Suis je dans l'erreur ?
Revenir en haut Aller en bas
Contenu sponsorisé





Comment savoir si un objet est accessible Empty
MessageSujet: Re: Comment savoir si un objet est accessible   Comment savoir si un objet est accessible Empty

Revenir en haut Aller en bas
 
Comment savoir si un objet est accessible
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment savoir si un objet fait partie de l'inventaire ?
» Comment rendre un jeu accessible à tous ?
» comment savoir ce que l'on est en train de faire?
» jeu d'objet caché
» Probleme d'objet et de superposition

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: