Bonjour à tous,
Je suis en préparation d'une wherigo avec une logique un peu détournée...mais...non, pas de spoiler
En gros, j'aimerai calculer une distance parcourue par un joueur entre un point A et un point B sachant que je ne maîtrise pas du tout le trajet du joueur. J'imagine qu'il va falloir utiliser une zone autour du joueur et la déplacer au fur et à mesure mais hormis en code LUA, je ne vois pas comment faire.
Est-ce que quelqu'un aurait déjà codé ce genre d'élément ou y aurait-il une autre solution moins couteuse en énergie ?
Merci d'avance
Poupouche
Calcul distance parcourue
- TofLaBeuze
- extra
- Contact :
- Profil GC
- Membre: : Premium
- GPS : Samsung J5 + Etrex 30x
- Localisation : Paris
Message
Re: Calcul distance parcourue
Oui, ou un timer de type "Interval" qui, à chaque fois qu'il est "elapsed", appelle une fonction de ce genre, à copier-coller dans View -> Lua User functions :
distance_parcourue = 0
position_precedente = Player.ObjectLocation
premiere_position_precise = false
function calcule_distance()
-- si la précision est suffisante
if Player.PositionAccuracy:GetValue('m') < 20 then
if premiere_position_precise == false then
premiere_position_precise = true
position_precedente = Player.ObjectLocation
distance_parcourue = 0
end
local pos = Player.ObjectLocation
local dist_meter, bear = Wherigo.VectorToPoint(pos,position_precedente)
position_precedente = pos
distance_parcourue = distance_parcourue +dist_meter:GetValue 'm'
Wherigo.MessageBox{Text=[[Distance : ]] .. distance_parcourue }
end
end
C'est un exemple à affiner un peu (ça ne marche peut-être pas bien quand le GPS n'est pas encore précis), mais le gros du calcul est là.
distance_parcourue = 0
position_precedente = Player.ObjectLocation
premiere_position_precise = false
function calcule_distance()
-- si la précision est suffisante
if Player.PositionAccuracy:GetValue('m') < 20 then
if premiere_position_precise == false then
premiere_position_precise = true
position_precedente = Player.ObjectLocation
distance_parcourue = 0
end
local pos = Player.ObjectLocation
local dist_meter, bear = Wherigo.VectorToPoint(pos,position_precedente)
position_precedente = pos
distance_parcourue = distance_parcourue +dist_meter:GetValue 'm'
Wherigo.MessageBox{Text=[[Distance : ]] .. distance_parcourue }
end
end
C'est un exemple à affiner un peu (ça ne marche peut-être pas bien quand le GPS n'est pas encore précis), mais le gros du calcul est là.
- Poupouche338
- membre
- Profil GC
- Membre: : Basic
Message
Re: Calcul distance parcourue
Super ! Merci beaucoup Tof.
Je vais essayer de voir ce que je peux faire avec ça. Le code a l'air cool mais comme je connais pas grand chose au LUA, faut que je mette le nez dedans pour l'intégrer comme il faut à ma cartouche. Je donnerai plus d'infos sur le forum dès que j'aurai avancé.
Je vais essayer de voir ce que je peux faire avec ça. Le code a l'air cool mais comme je connais pas grand chose au LUA, faut que je mette le nez dedans pour l'intégrer comme il faut à ma cartouche. Je donnerai plus d'infos sur le forum dès que j'aurai avancé.