Bonjour a tous. Me voila encore avec cette methode en c# que je retranscris en Java. Je pense voir le bout du tunnel mais il me reste encore 2-3 erreurs a commencé par celles-ci:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
double accelerationVector = -Vecteur2.Normalize(velocityVector) * frictionAcceleration + new Vecteur2(0, -gravity);
positionVector += velocityVector * timeStep + 1 / 2 * accelerationVector * timeStep * timeStep;
me sort comme erreur pour la ligne1:

Code console : Sélectionner tout - Visualiser dans une fenêtre à part
Error:(69, 41) error: bad operand type Vecteur2 for unary operator '---'

et pour la ligne 2:

Code console : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Error:(73, 46) error: bad operand types for binary operator '*'
first type:  Vecteur2
second type: double

plutôt logique sauf que ces lignes marchent en c#:

Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
var accelerationVector = -Vector2.Normalize(velocityVector) * frictionAcceleration + new Vector2(0, -gravity);
positionVector += velocityVector * timeStep + 1 / 2 * accelerationVector * timeStep * timeStep;


Voici la classe Vecteur2 qui est une classe que j'ai écris en Java en prenant ce dont j'avais besoin de la methode Vector2 qui fait partie du langage c#:

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
35
36
37
38
39
40
41
42
import java.lang.Math;
 
public class Vecteur2 {
 
    double x;
    double y;
 
    private static Vecteur2 zeroVector = new Vecteur2(0f, 0f);
 
    public Vecteur2(double dX, double dY) {
        x = dX;
        y = dY;
    }
 
    public double LengthSquared() {
        return Math.pow(x, 2) + Math.pow(y, 2);
    }
 
    public static Vecteur2 TransformNormal(Vecteur2 normal, Matrix3x2 matrix) {
        normal.x = (normal.x * matrix.m11) + (normal.y * matrix.m21);
        normal.y = (normal.x * matrix.m12) + (normal.y * matrix.m22);
        return normal;
    }
 
    public static Vecteur2 Normalize(Vecteur2 value) {
        double val = 1.0f / (double) Math.sqrt((value.x * value.x) + (value.y * value.y));
        value.x *= val;
        value.y *= val;
        return value;
    }
 
    public static Vecteur2 Zero()
    {
        return zeroVector;
    }
 
    public double Length()
    {
        return (double)Math.sqrt((x * x) + (y * y));
    }
 
}
et enfin au cas ou je vous laisse le code de la méthode Vector2 c# : http://www.technologicalutopia.com/s...vector2.cs.htm

Je me demande comment ça se fait qu'en c# on puisse utiliser des operateurs sur l'objet Vector2 comme ça et surtout comment faire la même chose en Java ? Et si ce n'est pas possible et qu'il faut
que je crée des methodes du style "multiplie(double)" dans ma classe Vecteur2: Comment savoir avec quoi je remplis ces methodes ?