Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 Comment savoir si un objet est accessible

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Vi
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 214

Date d'inscription : 03/03/2008


MessageSujet: Comment savoir si un objet est accessible   Mer 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
Voir le profil de l'utilisateur
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue


Nombre de messages : 5391

Age : 38

Localisation : Montpellier

Date d'inscription : 17/04/2006


MessageSujet: Re: Comment savoir si un objet est accessible   Jeu 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).

_________________
Mon profil Facebook!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Vi
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 214

Date d'inscription : 03/03/2008


MessageSujet: Re: Comment savoir si un objet est accessible   Jeu 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
Voir le profil de l'utilisateur
Alph Eratz
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 861

Age : 53

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

Date d'inscription : 22/01/2008


MessageSujet: Re: Comment savoir si un objet est accessible   Jeu 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
Voir le profil de l'utilisateur http://lauvrayarcherie.com
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue


Nombre de messages : 5391

Age : 38

Localisation : Montpellier

Date d'inscription : 17/04/2006


MessageSujet: Re: Comment savoir si un objet est accessible   Jeu 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 !

_________________
Mon profil Facebook!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
riseryn
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 559

Localisation : 77

Date d'inscription : 01/11/2007


MessageSujet: Re: Comment savoir si un objet est accessible   Jeu 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
Voir le profil de l'utilisateur
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue


Nombre de messages : 5391

Age : 38

Localisation : Montpellier

Date d'inscription : 17/04/2006


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

Pas bête :sourire:

_________________
Mon profil Facebook!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2469

Date d'inscription : 01/08/2006


MessageSujet: Re: Comment savoir si un objet est accessible   Jeu 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
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Vi
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 214

Date d'inscription : 03/03/2008


MessageSujet: Re: Comment savoir si un objet est accessible   Jeu 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
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Comment savoir si un objet est accessible   

Revenir en haut Aller en bas
 
Comment savoir si un objet est accessible
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment savoir quel bios est installé sur ma naomi ?
» Comment savoir si ma xbox 360 est une version fiable?
» [Résolu] comment savoir si quelqu'un a effacé votre CA de sa liste?
» [Résolu][Urgent : Comment savoir ou avoir l'adresse de quelqu'un qui nous DDoS régulierement]
» Comment savoir si on est un vampire ?

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: