我有10个不同的实体(矩形),它们具有各自的方向(旋转角度)。我想用自己的角度绘制每个矩形。现在好像整个画布绕着不同的角度旋转,似乎它们相互影响。
在屏幕上,您可以清楚地看到矩形在画布外旋转。
有没有一种方法可以分别旋转每个矩形?
这是我的绘图系统
public class DrawingSystem implements EntitySystem {
@Inject
private Engine engine;
@Inject
private Canvas canvas;
@Override
public void update() {
var entities = engine.getEntitiesWithComponents(BoundsComponent.class/*, VisualComponent.class*/);
var gc = canvas.getGraphicsContext2D();
gc.clearRect(0, 0, gc.getCanvas().getWidth(), gc.getCanvas().getHeight());
for(var e : entities){
var bounds = e.get(BoundsComponent.class);
gc.beginPath();
gc.setFill(Color.RED);
gc.fillRect(
bounds.getX(),
bounds.getY(),
bounds.getWidth(),
bounds.getHeight()
);
Rotate r = new Rotate(bounds.getDirection(), bounds.getX() + (int)(bounds.getWidth()/2), bounds.getY() + (int)(bounds.getHeight()/2));
gc.setTransform(r.getMxx(), r.getMyx(), r.getMxy(), r.getMyy(), r.getTx(), r.getTy());
}
}
}