![]() |
Как узнать название столкнувшихся объектов?
Доброго времени суток всем!
При написании маленькой игры столкнулся с проблемой определения на столкновение. Пожалуйста, помогите новичку переписать код!:) В общем есть 10 прямоугольников: Код:
Dim brick(10) Код:
If EntityCollided (ball,xenemy) Конечно этот метод не совсем корректный. Есть ли другая функция, которая сразу распознает название объекта после столкновения?? |
Ответ: Как узнать название столкнувшихся объектов?
CountCollisions ( ball ) - укажет с каким количеством объектов столкнулся шар.
CollisionEntity ( ball , <индекс столкновений> ) - возвращает указатель на столкнувшийся объект. Индекс может быть от 1 до CountCollisions( ball ) включительно |
Ответ: Как узнать название столкнувшихся объектов?
entitycollided
|
Ответ: Как узнать название столкнувшихся объектов?
*********** - человек спрашивает как узнать ИМЯ объекта.
Ответ: EntityName |
Ответ: Как узнать название столкнувшихся объектов?
mr.DIMAS, если прочесть текст автора топика, то будет ясно что его вопрос не совсем корректно сформулирован. Имя объекта подрузумевалось как сам handle объекта, т.к. он пояснил:
Цитата:
Также при создании объектов, там нету ничего указывающего на наименование объекта. Также пометка в примечании, но и так помечу - будь проще с обращением недовольств к окружающим. |
Ответ: Как узнать название столкнувшихся объектов?
Глубоко извиняюсь. Просто новичка иногда сложно понять. А "******" это просто стёб
|
Ответ: Как узнать название столкнувшихся объектов?
Всем спасибо за помощь!
Цитата:
Под ИМЕНЕМ я подразумевал названия переменных ball и brick(1),brick(2),...,brick(10). По идее после столкновения, прямоугольник надо переместить за пределы экрана, создавая иллюзию исчезновения. Но вот как безболезненно узнать имя того прямоугольника, которую надо переместить? |
Ответ: Как узнать название столкнувшихся объектов?
Имя объекта это текстовая строка, привязанная к объекту.
Имя переменной - это другое дело, но ты не можешь получить имя переменной, но можешь получить её значение. Переменная имеет своё значение - указатель на объект, или проще сказать handle. Терминология сбивает с толку, поэтому и были проблемы с пониманием вашего вопроса. И вам уже ответ дали на вопрос во втором посту, этого более чем достаточно, в справке есть хорошие примеры. Насчёт действия с объектом, можешь его вообще тупо удалить :) (FreeEntity) Если тебе нужно получить номер из твоего списка (brick) то тут иначе, хотя я не думаю что тебе это нужно. |
Ответ: Как узнать название столкнувшихся объектов?
Коллизии в Blitz3D не оптимизированы? (слишком грузанутые?)
А может вообще использовать для Объектов вычисления расстояния между ними (и пулями)? заместо коллизий.. Перебор всех объектов будет в любом случае. Но вот разница между мат. вычислениями и коллизиями в Blitz3D огромна по производительности (так здесь писали).. По теме: EntityCollided возвращает объект столкновения.. Код:
CollidedEntity=EntityCollided(ball,xenemy) Код:
If CollidedEntity <> 0 Then Цитата:
Просто когда действуют коллизии: игрок - стены пули игрока - стены враги - стены пули врагов - стены Fps снижается в 2 раза это ещё не считая: игрок - враги враги - враги |
Ответ: Как узнать название столкнувшихся объектов?
Для проверки коллизий, происходит немало математических процессов. Простая математическая формула будет естественно шустрее в разы.
Но если там кубики и пули, не должно ничего глючить, может ты не совсем это дело корректно делаешь.. |
Часовой пояс GMT +4, время: 09:09. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot