Developpement Empirium Index du Forum Developpement Empirium



Aide à la naviguation !
Aller à la page 1, 2, 3  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Developpement Empirium Index du Forum -> Evolutions & nouveautés - ][
Voir le sujet précédent :: Voir le sujet suivant  
Funnydead
Fille (vu la piplette)


Inscrit le: 05 Mai 2004
Messages: 1396

 MessagePosté le: Mar 10 Mar 2009, 20:32    Sujet du message: Aide à la naviguation ! Répondre en citant Back to top

Max, actuellement, qd on décide de se donner rendez vous à un point précis, il faut faire preuve de pas mal de "brains storming" pour savoir dans quelle direction déplacer sa flotte...

Ne pourrais tu pas nous faire un petit champs dans l'onget déplacement où on met les coordonnées où on dois aller.. Une flèche Bleu se dessinerais sur l'écran pour dire : Hey gus, va là bas !! " Clin d'oeil

Un peu comme la flèche de la position préscedente... ca ferais comme une ligne directrice a suivre !
_________________
http://funnydead.labrute.fr
 
Voir le profil de l'utilisateur Envoyer un message privé
Apocalypse
Mais débranchez l'bordel !!


Inscrit le: 25 Nov 2005
Messages: 3697
Localisation: Commodore Supernova's Feeling

 MessagePosté le: Mar 10 Mar 2009, 20:53    Sujet du message: Répondre en citant Back to top

J'avoue. Surtout que quand je suis en LettreChiffre, je dois toujours regarder quels sont les secteurs environnants^^
_________________
Maître Apocalypse
 
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
Varek
Seigneur a clavier intégré


Inscrit le: 27 Mai 2008
Messages: 166

 MessagePosté le: Mar 10 Mar 2009, 22:53    Sujet du message: Répondre en citant Back to top

Oui j'avoue ce serait cool ca
_________________
Varek Chevalier de l'Ordre Saint

Le monde aurait pu être simple comme le ciel et la mer
 
Voir le profil de l'utilisateur Envoyer un message privé
Max
Créateur du Jeu
Créateur du Jeu


Inscrit le: 23 Jan 2003
Messages: 8277

 MessagePosté le: Mer 11 Mar 2009, 11:03    Sujet du message: Répondre en citant Back to top

C'est le pilote automatique dont certains avaient déjà parlé.
Si quelqu'un veut faire avancer le sujet, il peut me faire un document avec les 2 ou 3 formules à utiliser et les calculs à effectuer, en utilisant ces variables :
- DestinationX (Mort de rire on dirait un titre de film de ... Moqueur )
- DestinationY
- ActuelleX Flèche X/Y de la position actuelle du vsu
- ActuelleY
- DeplacementMax : distance maximale que peut parcourir le vsu en 1 tour
- DeplacementX Flèche X/Y du mouvement à faire ce tour
- DeplacementY

Et merci de tester ce que vous me rendez !
Exemple : tester avec des coordonnées "tout positif" (142/52 vers 200/200), tout négatif (-145/-10 vers -200/-108), et des mélanges (-100/28 vers 40/-20 etc...).
_________________
AUCUN HRP sur les forums RP merci
 
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Apocalypse
Mais débranchez l'bordel !!


Inscrit le: 25 Nov 2005
Messages: 3697
Localisation: Commodore Supernova's Feeling

 MessagePosté le: Mer 11 Mar 2009, 12:30    Sujet du message: Répondre en citant Back to top

Ca me rappelle les sorts que je fais en jass sur Warcaft ^^. On va encore y aller à coup d'angles, d'arc tangente etc...

Voilà un saut en VJass Très content

Promis je fais ce que tu demandes d'ici quelques minutes.

PS: tu voudrais pas installer un module de balises spoiler sur les forums?

Citation:
library Jump needs TimerUtils

//==========================================================================================

globals
private constant real TIMEOUT = 0.02
private constant integer TYPE = 'o02D'
private unit TEST = null
private constant integer RAVEN = 'Amrf'
endglobals

//==========================================================================================


//==========================================================================================

struct jumps
unit target
real angle
integer distance
integer vit
integer i
real imp
endstruct

//==========================================================================================

private function Action takes nothing returns nothing
local timer t = GetExpiredTimer()
local jumps js = GetTimerData(t)
local real newX = GetUnitX(js.target) + js.vit*Cos(js.angle)
local real newY = GetUnitY(js.target) + js.vit*Sin(js.angle)
local real z = GetUnitFlyHeight(js.target)
local real newz = 0.00

if (js.i < js.distance) and GetTerrainCliffLevel(newX,newY)<=4 then
set js.i = js.i + 1
if RectContainsUnit(gg_rct_arena,js.target ) == true and GetTerrainCliffLevel(newX,newY)>=1 then
call SetUnitPosition(js.target, newX, newY)
endif
if (js.i < (js.distance * 0.5)) then
set newz = z + (js.distance * js.imp)
else
set newz = z - (js.distance * js.imp)
endif
call SetUnitFlyHeight(js.target, newz, 0.00)

else
call SetUnitPathing( js.target, true)
call SelectUnitForPlayerSingle( js.target, GetOwningPlayer(js.target) )
call UnitRemoveAbility( js.target, RAVEN)
call SetUnitAnimation(js.target, "Stand")

call ReleaseTimer(t)
call js.destroy()
endif
endfunction

//==========================================================================================

function jump takes unit u, integer speed, real x1, real y1, real x2, real y2, real imp returns nothing
local timer t = NewTimer()
local jumps js = jumps.create()
call SetUnitPathing( u, false)
set js.target = u
set js.angle = Atan2((y2 -y1), (x2 - x1))
set js.distance = R2I(DistanceBetweenPoints(Location(x1,y1),Location(x2,y2)))/speed
set js.vit = speed
set js.i = 0
set js.imp = imp
call SetTimerData(t, js)
call TimerStart (t, TIMEOUT, true, function Action )
call UnitAddAbility(js.target, RAVEN)

endfunction
endlibrary

_________________
Maître Apocalypse
 
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
Apocalypse
Mais débranchez l'bordel !!


Inscrit le: 25 Nov 2005
Messages: 3697
Localisation: Commodore Supernova's Feeling

 MessagePosté le: Mer 11 Mar 2009, 13:01    Sujet du message: Répondre en citant Back to top

Et voilà.

Le seul hic c'est que je ne sais pas de quelles fonctions tu dispose sur Empirium niveau maths :/


_________________
Maître Apocalypse
 
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
Max
Créateur du Jeu
Créateur du Jeu


Inscrit le: 23 Jan 2003
Messages: 8277

 MessagePosté le: Mer 11 Mar 2009, 13:25    Sujet du message: Répondre en citant Back to top

Merci !
Mais faut laisser un peu de taf aux autres, tu fais déjà plein de choses.

Les fonctions :
http://fr.php.net/manual/fr/ref.math.php
_________________
AUCUN HRP sur les forums RP merci
 
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Würm
je sais pas mais ca cause beaucoup


Inscrit le: 02 Mai 2008
Messages: 425
Localisation: Mar Tosca

 MessagePosté le: Mer 11 Mar 2009, 15:02    Sujet du message: Répondre en citant Back to top

Bonjour,
il y a des erreurs dans ta formule :

La distance est Racine(X² + Y²) et non Racine(X² - Y²) comme tu l'as écrit (mais le résultat est juste);
Tu affiches l'inverse de l'angle calculé par Atan2 (ou c'est mon Excel qui plante :p);
Sinon dans le premier exemple, tu es en Y52 et tu te déplaces en Y48, pour aller en Y200 :
il faudrait inverser Sin et Cos dans le calcul du déplacement Sourire

Ce qui donnerait donc :
DeplacementX = Ent [ ActuelX + DeplacementMax * Sin (Angle) ]
DeplacementY = Ent [ ActuelY + DeplacementMax * Cos (Angle) ]
 
Voir le profil de l'utilisateur Envoyer un message privé
Max
Créateur du Jeu
Créateur du Jeu


Inscrit le: 23 Jan 2003
Messages: 8277

 MessagePosté le: Mer 11 Mar 2009, 15:25    Sujet du message: Répondre en citant Back to top

Pour contrôle, merci d'ajouter dans ta feuille de calcul la distance entre la position actuelle et la position DeplacementX/DeplacementY.
_________________
AUCUN HRP sur les forums RP merci
 
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Apocalypse
Mais débranchez l'bordel !!


Inscrit le: 25 Nov 2005
Messages: 3697
Localisation: Commodore Supernova's Feeling

 MessagePosté le: Mer 11 Mar 2009, 17:57    Sujet du message: Répondre en citant Back to top

En fait la racine carrée est juste, c'est simplement l'explication de la formule qui plante Très content

L'angle: exact. J'ai inversé les X dans mon calcul.
Inverser Sin et Cos? Pourquoi dont?

J'ai remplacé la fonction Ent par Floor (celle du php)
Ajout de la formule de contrôle de distance.

Y'a une marge d'erreur, vu que la partie entière arrondi à l'entier inférieur.


_________________
Maître Apocalypse
 
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Developpement Empirium Index du Forum -> Evolutions & nouveautés - ][ Toutes les heures sont au format GMT + 2 Heures
Aller à la page 1, 2, 3  Suivante
Page 1 sur 3

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum