Я работаю над игрой, в которой вы являетесь космическим кораблем. Этот космический корабль должен быть способен вращаться. Прямоугольник имеет два массива x[]
, y[]
, содержащий все угловые положения прямоугольника. Но когда я применяю формулу вращения, я получаю довольно странное вращение. Чтобы попытаться объяснить это, похоже, что он вращает нижнюю левую часть экрана.Вращение всех углов прямоугольника
Чтобы сделать эти угловые решетки, я занимаю позицию x, y позицию, ширину и высоту.
Изготовление угловых-массивов
public Vertex2f(float x, float y, float w, float h){
this.x[0] = x;
this.y[0] = y;
this.x[1] = x+w;
this.y[1] = y;
this.x[2] = x+w;
this.y[2] = y+h;
this.x[3] = x;
this.y[3] = y+h;
}
Моя функция вращения
public void rotate(float angle){
this.rotation = angle;
double cos = Math.cos(rotation);
double sin = Math.sin(rotation);
for(int i = 0; i < x.length; i++){
x[i] = (float)(cos * x[i] - sin * y[i]);
y[i] = (float)(sin * x[i] + cos * y[i]);
}
}
Если это поможет, я использую LWJGL/OpenGL в Java для всех графических и Slick2d для загрузки и запустите спрайты, которые я использую.
Это продолжалось лучше, но просто перепрыгивая через сам – Devtons
я скоро опубликую видео ... – Devtons
https://youtu.be/Gn0vibSvVPw – Devtons