이것은 해결하기 쉬운 일일 수 있지만 저는 godot 및 gdscript에 익숙하지 않아서 어떻게해야할지 모르겠고 2D 플랫 포머에 적합한 튜토리얼이나 어떤 것도 찾을 수 없습니다.
플레이어가 해당 영역에 들어갈 때 장면을 변경하는 CollisionShape2d가있는 Sprite가 있고 플레이어의 위치와 자신의 위치를 비교하고 충돌이 발생하거나 변경 될 때 플레이어의 x 좌표가 더 높으면 이전 장면으로 변경하고 싶습니다. 그렇지 않은 경우 다음 장면에 간단한 조건을 사용 if position.x > player.position.x:
하지만 "식별자"플레이어 "가 현재 범위에 선언되어 있지 않습니다"라는 오류가 발생하고이를 수정하는 방법을 모르겠습니다. 나는 항상 플레이어를 향하고있는 적에게 비슷한 일을하려고했는데, 말할 필요도없이 같은 오류가 발생합니다.
다음은 전체 스크립트입니다.
extends Sprite
func _on_hitbox_area_entered(area: Area2D) -> void:
if area.is_in_group("shield"):
if position.x > player.position.x:
get_tree().change_scene("res://Levels/world_" + str(int(get_tree().current_scene.name) + 1) + ".tscn")
else:
get_tree().change_scene("res://Levels/world_" + str(int(get_tree().current_scene.name) - 1) + ".tscn")
다른 방법이있을 수 있지만 솔루션을 검색 할 때 관련없는 항목을 찾고 다른 방법을 모르겠습니다.
이에 대한 해결책은 플레이어를 영역으로 대체하여 코드가 다음과 같이 보이도록하는 것입니다.
extends Sprite
func _on_hitbox_area_entered(area: Area2D) -> void:
if area.is_in_group("shield"):
if position.x > area.position.x:
get_tree().change_scene("res://Levels/world_" + str(int(get_tree().current_scene.name) + 1) + ".tscn")
else:
get_tree().change_scene("res://Levels/world_" + str(int(get_tree().current_scene.name) - 1) + ".tscn")
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다