Bonjour à tous, je suis nouveau et je sollicite votre aide.
Je me demande pourquoi losque je me déplace en arrière après m'etre déplacé plusieurs fois en avant en vitesse 1 et que je me déplace en arrière en vitesse rien ,rien ne se passe, alors qu'en vitesse plus haute, les coordonnées changent...
Je pense qu'il fait le chemin dans l'autre sens , mais même après plusieurs mouvement en arrière à vitesse1 rien ne change.
Et il ne se déplace en arrière qu'après s'être déplacé en avant enfin....Avec un angle de 0 le déplacement arrière se fait sur abcisse et ordonné alors que c'est -PI sur le cercle trigo et ne devraient changer que les abcisse.
J'utilise une interface mais je n'arrive pas à mettre le print ecran que j'ai fait de celle-ci.
Pouvez-vous m'aider s'il-vous-plait?
Voila le code:
Pour les boutons, le clique permet si le robot est sur On de lancer les méthodes, et d'actualiser le texte.Les setter fonctionnent bien pour la vitesse et l'angle et l'allumage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 public boolean marcherAvant(int _angle) { double posX = Math.round(this.pos.getX()*100.00)/100.00; double posY = Math.round(this.pos.getY()*100.00)/100.00; double moveCos = Math.round(Math.cos(this.angle*Math.PI/180)*100.00)/100.00; double moveSin = Math.round(Math.sin(this.angle*Math.PI/180)*100.00)/100.00; if(this.estOn) { this.pos.setX(posX + Math.round(this.vitesse*moveCos*100.00)/100.00); this.pos.setY(posY + Math.round(this.vitesse*moveSin*100.00)/100.00); return true; } else { return false; } } public boolean marcherArriere(int _angle) { double posX = Math.round(this.pos.getX()*100.00)/100.00; double posY = Math.round(this.pos.getY()*100.00)/100.00; double moveCos = Math.round(Math.cos((this.angle+180)*Math.PI/180)*100.00)/100.00; double moveSin = Math.round(Math.sin((this.angle+180)*Math.PI/180)*100.00)/100.00; if(this.estOn) { this.pos.setX(posX+ Math.round(this.vitesse*moveCos*100)/100); this.pos.setY(posX+ Math.round(this.vitesse*moveSin*100)/100); return true; } else { return false; } }
a+![]()
Partager