dir:武器传入的旋转角度 position是当前节点所在的位置,将武器指定的位置传递给它后,那么子弹自然就出现在其位置。 rotation是当前节点的旋转角度,它是以横坐标为0度开始,顺时间旋转。 velocity即给对象一个在x轴上的向量。因为节点是KinematicBody2D,因此,在力的作用下,它就会开始以speed值的速度开始移动。当然,这...
比如位置(position)就是Node2d的一个属性。通过get_node()方法获取节点(简写为$),再以.position这样的方式获取节点的属性2、同上,如果酒馆、海边等都是一个个单独的场景作为A的父节点,那么只要让A获取父节点的名字(get_parent().name)就能知道A在哪了;如果这些地理位置信息是在同一个父节点下有所区分,可以改...
var grid_size = Vector2(320, 184) var grid_x = 1 var grid_y = 0 onready var player = get_parent().find_node("Player") 注:grid_x=1而grid_y=0,其实是因为坐标原点在左上角,也就是说,在Y轴上它是0开始,而X轴上是grid_size.x开始。 接着创建方法 update_grid_position ,用于计算与移...
get_filename() 从文件实例化场景时,其最顶层节点包含加载它的文件名。 MultiplayerAPImultiplayer Getterget_multiplayer() 与此节点关联的MultiplayerAPI实例。是custom_multiplayer或默认的SceneTree其中一个(如果在场景树的当中的话)。 Stringname set_name(value) ...
这就是求准确距离需要开方的原因,如果你不需要那么精确,那么就直接用没开方的结果即可。由于我们这里明确知道是“5m以内”,那么直接position.distance_squared_to(player.position) < 25即可。当然这里你需要用一种办法在场景中找到player,然后每帧做这个运算去检查。
#所以本场景的Sprite只需要改变x坐标,也能实现向不同角度发射的目的 $Sprite.position.x += speed * delta #当发射出去1000px远时,删除自身以释放资源 if $Sprite.position.x > 1000: self.get_parent().remove_child(self) 好了,大功告成,接下来运行游戏试试看吧...
- `get_mouse_position( -> Vector2`:返回鼠标当前位置。 - `get_accelerometer( -> Vector3`:返回设备上的加速度计数据。 3.碰撞检测方法: - `is_colliding(`:检查当前节点是否与其他物体发生碰撞。 - `get_collider(`:返回与当前节点发生碰撞的物体。
_process(delta):#炮弹向右飞#因为在本场景被添加进主场景时,会将本场景的根节点角度设置为炮管的角度#所以本场景的Sprite只需要改变x坐标,也能实现向不同角度发射的目的$Sprite.position.x+=speed*delta#当发射出去1000px远时,删除自身以释放资源if$Sprite.position.x>1000:self.get_parent().remove_child(...
if self.position.y > 1000: self.get_parent().remove_child(self) 可以看到,少了很多代码,只剩下删除自身的部分 接下来,打开main.gd脚本,找到如下部分(上一节中是75行): #使子弹的角度与炮管的当前角度相同 zidanObj.rotation_degrees = $dapao/paoguan.rotation_degrees ...
var parent = get_parent() var pos_in_parent = get_position_in_parent() parent.remove_child(self) parent.add_child(other) parent.move_child(other, pos_in_parent) That being said, the documentation is quite lacking. Retagging. 👍 4 bojidar-bg added documentation and removed bug topic...