【发布时间】:2021-06-03 20:46:13
【问题描述】:
我可能想多了,或者以完全错误的方式去做。基本上我想在我评论过的实例播放器(aPlayer)上使用move_and_slide,#MOVE。此脚本附加到我的 Tilemap 上的实例化场景 Level_Test。
屏幕截图中的代码已针对此帖子进行了精简,因为它目前不相关且不起作用。
extends TileMap
onready var aPlayer = preload("res://Scenes/Player.tscn").instance()
var cSpawn1 = Vector2.ZERO
func _ready() -> void:
aPlayer.position = cSpawn1
add_child(aPlayer)
func _physics_process(delta) -> void:
if Input.is_action_just_released("iPlayerInteract"):
_Interact()
else:
var vInputDirection = Vector2(Input.get_action_strength("iPlayerRight") - Input.get_action_strength("iPlayerLeft"), Input.get_action_strength("iPlayerDown") - Input.get_action_strength("iPlayerUp"))
if vInputDirection != Vector2.ZERO:
_Move(aPlayer, vInputDirection)
func _Interact():
pass
func _Move(vSelf, vDirection):
#MOVE
pass
【问题讨论】:
-
请描述您使用这种方法遇到的问题。我猜你在
_Move上给vSelf.move_and_slide(...)打过电话,对吧?它做了什么意想不到的事情吗?你收到错误了吗? - 编辑:如果Player.tscn(的根节点)不是运动体,我认为这可能是一个错误。对于一些意想不到的事情,也许你在那个场景中有一些其他的代码会导致冲突。 -
添加了播放器场景的图像。 vSelf.move_and_slide(etc) 报告“在基本 Node2d 中不存在函数...