我正在创建一个简单的项目,用户在世界各地飞行宇宙飞船并爆炸。没有什么花哨。实际射击时,我遇到了一个真正的问题。我能够在世界范围内的船的位置(laser
)创建一个抛射物(player.position
),旋转它,然后向船的方向射击。问题是我希望它能在船的前方发射(我在 Swift btw中写它)。当我做以下
//this starts the laser 2 units in front of the ship.
laser.position.y = player.position.y + 27
laser.position.x = player.position.x
无论船舶目前旋转到什么角度,激光都将永久保持在船上方(毫不奇怪)。所以我创建了一个小的SKShapeNode fireingPosition
来坐在player
节点内并随船一起旋转。现在,虽然我能够实现这一点,但我找不到找到这个节点在世界中的位置的方法,因为fireingPosition.position
只返回玩家节点中形状的位置。
如果你有点失落,这里有一个关于层次结构树的概述。
WorldNode - > PlayerNode(宇宙飞船) - > fireingPosition(小形)
基本上,在WorldNode中找到fireingPosition节点位置的最佳方法是什么。