Я пытаюсь написать игру в Godot 3, в которой мой персонаж может собирать определенные предметы. В тот момент, когда персонаж их собирает, т. Е. Сталкивается с ними, объект исчезает и добавляется в массив.
При этом мне удалось заставить объект исчезнуть, но каким-то образом область, вокруг которой существовал объект, все еще недоступна для ходьбы - в том смысле, что объект столкновения объекта кинематического тела каким-то образом все еще функционирует, и я не хочу чтобы он все еще был там.
Этот GIF объясняет проблему:
Код столкновения -
for body in $hitbox.get_overlapping_bodies():
if(body.get("type")!= "prota"):
if body.get("type")=="ingredient":
inventory.add_to_inventory(body, body.get("type"), "collect")
Функция Inventory.add_to_inventory -
func add_to_inventory(the_item, item_type, cause):
if item_type=="ingredient":
if cause=="collect":
inventory_ingredients.append(the_item)
the_item.hide()
Приведенный выше фрагмент добавляет элемент в мой массив по мере необходимости. Он также скрывает объект, но объект столкновения все еще существует.
Структура объекта столкновения (Ананас):
Размещение предметов на моем LevelL
Текстура Sprite загружается с помощью кода и не добавляется вручную.
get_node("Pineapple").get_node("Display").set_texture(pineapple)
Любая помощь по этому поводу будет оценена по достоинству. При необходимости я готов предоставить более подробную информацию. У меня очень мало опыта в программировании, и, возможно, я тоже делал ошибки новичка!