Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите в godot gdscript похож на питон Я добавил моба но он не работает и не двигается когда я вступаю в зону

Елдос Егимбаев Ученик (110), на голосовании 4 месяца назад
Помогите в godot gdscript похож на питон
Я добавил моба но он не работает и не двигается когда я вступаю в зону
Голосование за лучший ответ
Татьяна Просветленный (36374) 5 месяцев назад
Ваш код в Godot выглядит правильно, но есть пара моментов, которые можно проверить, чтобы убедиться, что моб работает корректно.

Проверьте подключение сигнала: Убедитесь, что сигнал body_entered подключен к функции _on_detector_body_entered. Это можно сделать в редакторе, выбрав узел, на котором установлен детектор (обычно это Area2D или CollisionShape2D), и в разделе "Node" проверить сигналы.

Проверьте путь к игроку: Убедитесь, что путь к игроку ("$../../Player/Player") правильный. Путь должен быть относительно текущего узла моба. Если структура сцены изменилась, путь может быть другим.

Проверьте слой коллизий: Убедитесь, что и моб, и игрок находятся на правильных слоях коллизий, и эти слои настроены для взаимодействия друг с другом.

Добавьте отладочные выводы: Вставьте вывод в консоль для проверки состояния и значений переменных:
 func _on_detector_body_entered(body): 
print("Body entered: ", body.name)
if body.name == "Player":
print("Player detected!")
chase = true
Исправление логики: Возможно, стоит изменить проверку на is_on_floor в функции _physics_process. Например, если моб должен двигаться, даже если он не на полу:
 func _physics_process(delta): 
# Add the gravity.
if not is_on_floor():
velocity.y += gravity * delta
var player = $"/root/Player"
var direction = (player.position - self.position).normalized()
if chase:
velocity.x = direction.x * speed
move_and_slide()
Похожие вопросы