Столкновения объектов

Вопросы по работе с Godot 3D.
Правила форума
Читайте Правила общения
Ответить
Disighton
Новичок
Сообщения: 11
Зарегистрирован: 22 июн 2020, 14:51
Благодарил (а): 5 раз
Поблагодарили: 2 раза

Столкновения объектов

Сообщение Disighton »

Здравствуйте. У меня такой вопрос, как проверить столкновение двух объектов? Допустим, я стреляю в бочку. Я хочу проверить, попала ли пуля в эту бочку.
Хочу разобраться с этой темой, тогда на основе этого смогу уже другие моменты самостоятельно реализовать))
Заранее спасибо.

Аватара пользователя
SkanerSoft
Администратор
Сообщения: 190
Зарегистрирован: 23 май 2020, 20:08
Откуда: Питер
Благодарил (а): 25 раз
Поблагодарили: 74 раза
Контактная информация:

Re: Столкновения объектов

Сообщение SkanerSoft »

Автор и ведущий канала Godot 3D Russia

Disighton
Новичок
Сообщения: 11
Зарегистрирован: 22 июн 2020, 14:51
Благодарил (а): 5 раз
Поблагодарили: 2 раза

Re: Столкновения объектов

Сообщение Disighton »

SkanerSoft писал(а):
28 июн 2020, 21:08
Я уже запутался с системой Годо. Я проверяю, есть ли у столкнувшегося с пулей объекта функция take_gamage(), если да, то у тела вызывается
эта функция.
Вот код пули:
extends Area

var speed: float = 600.0
var damage: int = 3

func _process(delta):
translation -= global_transform.basis.z * speed * delta


func _on_Bullet_body_entered(body):
if body.has_method("take_damage"):
body.take_damage(damage)

Вот код мишени...

extends MeshInstance

onready var ui : Node = get_node("../../CanvasLayer/ui")
onready var player : Node = get_node("../../player")
var damage = 1
var sost = 3
func take_damage(damage):
sost -= 1
player.add_score()

Сама функция работает. Я пробовал вызывать её при перезарядки. Всё работает, и в интерфейсе очки прибавляются. Но почему не объект не понимает, что с чем-то столкнулся.

Аватара пользователя
$noname-
Свой человек
Сообщения: 126
Зарегистрирован: 27 май 2020, 15:44
Откуда: Almaty
Благодарил (а): 23 раза
Поблагодарили: 61 раз
Контактная информация:

Re: Столкновения объектов

Сообщение $noname- »

Disighton писал(а):
29 июн 2020, 11:34
SkanerSoft писал(а):
28 июн 2020, 21:08
Я уже запутался с системой Годо. Я проверяю, есть ли у столкнувшегося с пулей объекта функция take_gamage(), если да, то у тела вызывается
эта функция.
Вот код пули:
extends Area

var speed: float = 600.0
var damage: int = 3

func _process(delta):
translation -= global_transform.basis.z * speed * delta


func _on_Bullet_body_entered(body):
if body.has_method("take_damage"):
body.take_damage(damage)

Вот код мишени...

extends MeshInstance

onready var ui : Node = get_node("../../CanvasLayer/ui")
onready var player : Node = get_node("../../player")
var damage = 1
var sost = 3
func take_damage(damage):
sost -= 1
player.add_score()

Сама функция работает. Я пробовал вызывать её при перезарядки. Всё работает, и в интерфейсе очки прибавляются. Но почему не объект не понимает, что с чем-то столкнулся.
А у тебя 2д игра?
Just $noname-

Disighton
Новичок
Сообщения: 11
Зарегистрирован: 22 июн 2020, 14:51
Благодарил (а): 5 раз
Поблагодарили: 2 раза

Re: Столкновения объектов

Сообщение Disighton »

Нет, 3д игра. Я давно решил начать с чего по проще. Поэтому делаю небольшие 2д игры. И там столкновения прекрасно работают. Значит просто запутался в своей каше узлов. После пришёл в старый проект, столкновения работают. Но вот пулю мои бочки до сих пор не видят. Потом просто с нуля начну.
А ещё я Blender решил освоить. Классная вещь, мне нравится))

Аватара пользователя
$noname-
Свой человек
Сообщения: 126
Зарегистрирован: 27 май 2020, 15:44
Откуда: Almaty
Благодарил (а): 23 раза
Поблагодарили: 61 раз
Контактная информация:

Re: Столкновения объектов

Сообщение $noname- »

Disighton писал(а):
10 июл 2020, 17:39
Нет, 3д игра. Я давно решил начать с чего по проще. Поэтому делаю небольшие 2д игры. И там столкновения прекрасно работают. Значит просто запутался в своей каше узлов. После пришёл в старый проект, столкновения работают. Но вот пулю мои бочки до сих пор не видят. Потом просто с нуля начну.
А ещё я Blender решил освоить. Классная вещь, мне нравится))
А твои пули и бочки обрабатываются в соответствующих слоях и масках?
Just $noname-

Disighton
Новичок
Сообщения: 11
Зарегистрирован: 22 июн 2020, 14:51
Благодарил (а): 5 раз
Поблагодарили: 2 раза

Re: Столкновения объектов

Сообщение Disighton »

$noname- писал(а):
11 июл 2020, 10:48
Disighton писал(а):
10 июл 2020, 17:39
Нет, 3д игра. Я давно решил начать с чего по проще. Поэтому делаю небольшие 2д игры. И там столкновения прекрасно работают. Значит просто запутался в своей каше узлов. После пришёл в старый проект, столкновения работают. Но вот пулю мои бочки до сих пор не видят. Потом просто с нуля начну.
А ещё я Blender решил освоить. Классная вещь, мне нравится))
А твои пули и бочки обрабатываются в соответствующих слоях и масках?
Вот про слои я вообще ничего не знаю. Нужно будет потом загуглить)

Ответить