JavaFX旋转绘制的物体

对于使用JavaFX开发游戏而言,一切都是绘制到Canvas上的。有时候我们需要对某一个绘制的物体进行旋转。

大家可以看到Canvas的API里有如下一条:

但是该rotate方法是旋转的当前的transform,所以如果直接使用的话,无法达到我们需要的效果。

这样我们就需要使用到javax.scene.transform.Rotate类了。

添加代码如下:

public void drawObject(GraphicsContext gc) {
	gc.save();
	gc.setGlobalAlpha(getAlpha());
	Rotate r = new Rotate(getRotate(), getX() + getWidth() / 2, getY() + getHeight() / 2);
	gc.setTransform(r.getMxx(), r.getMyx(), r.getMxy(), r.getMyy(), r.getTx(), r.getTy());
	draw(gc);
	gc.restore();
}

在上面的Rotate第一个参数表示旋转的角度,后面表示绕着某个(X,Y)点进行旋转,稍微计算一下,可以很轻易的让绘制的物体绕着自己中心轴旋转,来达到我们的目的。

发表评论

电子邮件地址不会被公开。