ACTIONAZ 3 : Additionner / Soustraire des variables ?

Vous voulez de l'aide ? Postez ici :)
Post Reply
SyymDrom
Posts: 9
Joined: 31 May 2014, 20:23

ACTIONAZ 3 : Additionner / Soustraire des variables ?

Post by SyymDrom »

Bonjour, voici ma question :

Après avoir un peu cherché, je n'ai pas trouver comment additionner, soustraire, multiplier, ou diviser deux variables dans l'action code ?

J'ai essayé un truc du genre :

Code: Select all

var PositionDuVaisseau  "693:384"
var temp =  BonusBox - PositionDuVaisseau
Mais ça ne fonctionne pas... Ici BonusBox et PositionDuVaisseau sont deux variables, le vaisseau est toujours au centre de l'image, sa position en pixel ne bouge donc pas, cependant, lorsqu'il se déplace, pour ramasser les bonusbox, je souhaiterai que le temps d'attente de l'action pause varie en fonction de l'écart entre la position du vaisseau ( qui ne varie jamais ) et de la boîte bonus ( ici bonusbox ). J'essaye donc de faire un truc comme ça de soustraire les deux variables pour au final avoir une variable temp qui contiendra un chiffre, qui je pense ne dépassera pas 10 secondes, bref, c'est compliqué...

Merci de votre aide !

SyymDrom
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: ACTIONAZ 3 : Additionner / Soustraire des variables ?

Post by francois »

bonjour,

Le langage ne comprend pas ta demande, en effet tu demandes de soustraire un point à un point.
Il faut passer par les coordonnées.

En piece jointe, un script

Francois
Attachments
Distance entre 2 points.js
(539 Bytes) Downloaded 194 times
SyymDrom
Posts: 9
Joined: 31 May 2014, 20:23

Re: ACTIONAZ 3 : Additionner / Soustraire des variables ?

Post by SyymDrom »

Merci beaucoup de ton aide, tu m'a beaucoup aidé à l'aide de tes formules variable.x et variable.y que je ne connaissais pas..

Cependant, je vais expliquer mon cas un peu plus en détail parce que j'ai vraiment besoin d'aide ! :?
-Mon vaisseau est EXACTEMENT au milieu de l'écran ( coordonées exactes par rapport à mon écran : (691;398) ).
-Mon vaisseau clique aléatoirement sur une minimap EN BAS A DROITE de l'écran afin de se déplacer pour trouver une boîte bonus ( var bonusbox ).
-Lorsqu'il en trouve une, il clique dessus automatiquement afin de la récupérer dans sa soute.
-Les coordonées de la boîte bonus peuvent être n'importe où AU TOUR de mon vaisseau sur l'écran, ses coordonées peuvent très bien être (276;193) ou (1246:656).
-Taille de mon écran = (1365;767) J'ai obtenu ces coordonées en utilisant "Trajet Curseur" et en ajoutant un point tout en bas à droite de l'écran.

Voilà ce que j'ai donc essayé...

Obtenir les points x et y de la position de la bonusbox ( boîte bonus en anglais ) à l'aide de :

Code: Select all

var PositionDuVaisseau =new Point (691;398)
var x1=  PositionDuVaisseau.x
var y1=  PositionDuVaisseau.y


var x2= BonusBox.x
var y2= BonusBox.y
var  BonusBox =new Point(x2,y2)
Puis ensuite faire un truc du genre :

Code: Select all

var temp = (x1 - x2) + (y1 - y2)
Afin d'obtenir à la fin un nombre et non pas une position dans la variable "temp".

IMAGINONS QUE CELA FONCTIONNE, inventons et disons que le point de ma bonusbox est : (16;388)

Voilà ce que ça donne dans le code ( si celui ci fonctionnerai.. ) :
L'action "Trouver Image" trouve donc les coordonnées de la bonusbox et les stocks dans la variable "bonusbox"

Code: Select all

var PositionDuVaisseau =new Point (691;398)
var x1=  PositionDuVaisseau.x
var y1=  PositionDuVaisseau.y


var x2= BonusBox.x
var y2= BonusBox.y
var  BonusBox =new Point(x2,y2)

var temp = (691 - 16) + (398 - 388)
La variable "temp" est donc égale à 685 ( secondes ).
Evidemment, ça ne prend même pas 3 secondes à se déplacer aux coordonnées de la bonusbox à 16:388... Donc je divise ce nombre par un autre nombre qui celui ci sera universel afin de correspondre à chaque éventuelle position de la bonusbox.

VOUS ME SUIVEZ ? Alors continuons... :(

Disons que le temps du trajet dure 1.4 secondes ( c'est exacte ). Il faut donc qu'a la fin la variable temp soit égale à 1.4, car celle ci sera égale à l'action "Pause"....

Le code serai suivi de :

Code: Select all

var temp = (691 - 16) + (398 - 388)
var temp = temp x 0.00205

Je multiplie donc 685 par 0.00205 qui est égale à 1.40425 soit casiment 1.4 secondes, c'est parfait.

Et donc au final la variable temp serait égale à 1.4 secondes, celle ci serait égale donc au temps d'attente de l'action pause afin de maximiser les performances du bot.

Par contre, imaginons que la bonus box soit à 1.4 secondes de notre vaisseau encore une fois, sauf que cette fois ci,elle n'est plus à gauche de l'écran comme avant (16;388) mais à droite : (1341;388) L'axe des ordonnés ne change donc pas et uniquement l'axe des abscisse change car j'ai sélectionner le point à la même hauteur de mon écran mais pas à la même longueur : avant il était à gauche, maintenant il est à droite, cela ne change rien, car par simple logique, le trajet est encore égal à 1.4 secondes.
Cependant, les calculs vont changer, voici ce qu'il va se passer :

Code: Select all

var PositionDuVaisseau =new Point (691;398)
var x1=  PositionDuVaisseau.x
var y1=  PositionDuVaisseau.y


var x2= BonusBox.x
var y2= BonusBox.y
var  BonusBox =new Point(x2,y2)

var temp = (691 - 1341) + (398 - 388)
La nouvelle position (x;y) de la bonusbox est ici (1341;388)
Donc :

var temp = -640...

Tant pis, le code continue :

var temp = -640 x 0.00205
var temp = -1.312 secondes..

Le résultat n'est pas le même qu'avant : -1.312 alors qu'il devrait être 1.40425, et de plus, il est négatif.
Après, vous me direz, à 0.1 seconde près ça peut aller, je suis d'accord avec vous, mais j'ai essayé avec plusieurs duo de mesure où juste une valeur (x ou y) change, mais j'ai toujours ce problème : le résultat n'est pas le même et de toute façon il est négatif.


Voilà donc mes DEUX problèmes.. Le premier où le code n'est pas bon (je vous rapelle que jusqu'à maintenant j'ai imaginer que mon code fonctionnait), et le problème de trouver un facteur commun..

Encore un dernier truc en réponse à francois :

Dans ce que tu m'a envoyé :

Code: Select all

var  BonusBox =new Point(700,200)
x2= BonusBox.x
y2= BonusBox.y

temp = Math.pow((x2-x1),2 ) +Math.pow((y2-y1),2 )
temp=Math.sqrt(temp)

Console.print(temp) 
Je n'ai vraiment pas compris grand chose pourquoi tu fait ceci, tu donne donc la position 700;200 à la bonusbox, mais normalement il ne faut pas REDEFINIR une position à la bonusbox, sinon il me semble que cela va rechanger la variable bonusbox et introduire tes coordonnées, à la place des coordonnées du "Trouver Image".. :?
J'ai aussi plus particulièrement moins compris le : Math.pow et tout ça : Math.pow((x2-x1),2 ) +Math.pow((y2-y1),2 ) ainsi que Math.sqrt(temp) ???
A quoi cela sert-il ?



En espérant que vous aurez pris de votre temps pour lire mon problème, j'en serai infiniment content !!!!
J'aimerai vraiment trouver une solution à ce problème.. Et si un utilisateur viendrai à trouver la réponse à ce problème, je peux lui promettre une récompense, que ce soit une petite somme d'argent versée par PayPal ou PaySafeCard, il n'y a aucun soucis, le bon travail doit être récompensé, et je serai vraiment content de trouver solution à mon problème !

Cordialement,

Nathan alias SyymDrom
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: ACTIONAZ 3 : Additionner / Soustraire des variables ?

Post by francois »

Rebonjour,

J'avais cru comprendre que tu avais besoin de la distance entre 2 points :
je souhaiterai que le temps d'attente de l'action pause varie en fonction de l'écart entre la position du vaisseau ( qui ne varie jamais ) et de la boîte bonus ( ici bonusbox ).


Francois
SyymDrom
Posts: 9
Joined: 31 May 2014, 20:23

Re: ACTIONAZ 3 : Additionner / Soustraire des variables ?

Post by SyymDrom »

Rebonjour,

Effectivement je m'étais mal exprimé excusez moi

Nathan alias SyymDrom
Post Reply