0
Ich habe versucht, einen gedrehten Feind zu machen, der sich einfach vorwärts bewegt. Der Player zeigt perfekt, aber aus irgendeinem Grund zeigt der Gegner nur, wenn ich die Rotation auf 360 oder 0 setze, obwohl die X- und Y-Positionen sich so bewegen, wie sie sollten.Java Graphics2D nur Zeichnung, wenn 0/360 Grad gedreht
package Game;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
public class Enemy extends Rectangle implements GameObject {
private int speed;
private double angle;
public Enemy(int x, int y, int w, int h, int speed, int angle) {
this.x = x;
this.y = y;
this.width = w;
this.height = h;
this.speed = speed;
this.angle = Math.toRadians(angle);
}
@Override
public void update(Engine g) {
this.x += (speed * (float) Math.cos(angle));
this.y += (speed * (float) Math.sin(angle));
System.out.println(this.x + " " + this.y);
}
@Override
public void render(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.red);
g2d.rotate(angle);
g2d.fill(this);
}
}
Dies ist eine rekursive Aufruf an die 'render' Methode - wenn ich nicht etwas mit Blick auf, dann führt dies zu einer' StackOverflowError' (oder zumin am wenigsten anderes merkwürdiges Verhalten). – Marco13