因此,如果您想要像gif中那样旋转枪支组件,您似乎根本不想真正绕着它自己的轴旋转它.所以你想把枪的位置绕着球员的局部中心旋转.
如果将枪组件作为球员的子组件,则所有位置都是相对于球员的,0,0位于球员的左上角,您希望围绕球员的中心旋转它.
要达到这一点,您可以这样做(以onLoad
为单位进行计算,这样您就不会在update
循环中创建不必要的Vector2
个对象:
final localCenter = player.size / 2;
然后为了得到枪的位置,你首先必须决定你想要的距离玩家的长度,这当然可以像你的例子一样动态改变.
final length = 100;
final gun.position.setValues(length, 0); // This means that the zero angle is straight up
gun.position.rotate(yourAngle, center: localCenter);