Я пытаюсь создать платформу с XNA. Я не могу понять, как определить, находится ли объект под объектом «Символ», чтобы его можно было переместить, если он не находится над объектом.Проверка объектов непосредственно под объектом
ответ
Концепция, о которой вы говорите, называется Collision Detection и является в основном ядром любой игры.
Одним из самых простых способов обработки обнаружения столкновений в XNA является использование Rectangle. Каждое из ваших сущностей (персонаж, предмет, оружие, монета, враг) должно использовать Rectangle как hitbox. Давайте изучим простой пример:
class Player
{
public Rectangle hitBox = new Rectangle(0, 0, 10, 30);
...
}
class Coin
{
public Rectangle hitBox = new Rectangle(50, 50, 5, 5);
...
}
Как вы можете видеть, как субъекты имеют прямоугольник, который будет использоваться для обнаружения коллизий (вы можете использовать его для рисования, а также, но я обычно использую Vector2 для этого).
Теперь, как проверить, есть ли столкновение? Это очень просто:
class Game
{
Player player = new Player();
Coin coin = new Coin();
if (player.hitBox.Intersects(coin.hitBox))
{
// Do your stuff
}
}
Конечно, каждый раз, когда вы перемещаете плеер, вам необходимо установить положение хитбокс соответственно. Предположим, что вы переместили плеер на 5 пикселей вправо, вам также нужно переместить 5-ти и 5-ти пикселей вправо.
Удивительный ответ, спасибо. – user2479504
Вы должны использовать BoundingBox для обнаружения столкновений, а простые позиции сравнить, если это «под» что-то. Это 2d, человек, очень простой, как бумага ...
Если ваша игра в 3D, мой ответ тот же.
- 1. setChildIndex для значения непосредственно под целевым объектом
- 2. Переключение div непосредственно под кнопкой
- 3. проблема с объектом объектов
- 4. Обнаружение элемента под объектом перетаскивается
- 5. Новый объект-посредник под объектом
- 6. Что подразумевается под «потокобезопасным» объектом?
- 7. Макет объекта под издеваемым объектом
- 8. Поддержание нижнего колонтитула под объектом
- 9. Переупорядочение объектов под застройку
- 10. Проверка для серийных объектов
- 11. Метод, который вызывается непосредственно перед уничтоженным объектом
- 12. fabric.js, перемещающий объект под другим объектом
- 13. XSL проверка непосредственно предшествующего брата
- 14. проверка объектов
- 15. Django: Как заказать комментарии к сообщению непосредственно под каждым исходным объектом сообщения?
- 16. Хапи/Joi проверка с вложенным объектом
- 17. Проверка компонента под мышкой
- 18. Сопоставление объектов с объектом сопоставления
- 19. Навигация по горизонтали под навигацией CSS не непосредственно под родителем
- 20. Проверка наличия объектов A объектов
- 21. Проверка равенства между переменной и объектом
- 22. Изготовление колонн непосредственно друг под другом
- 23. LogicalTree Control непосредственно под мышью нет VisualTree
- 24. Как разместить ссылку непосредственно под полем формы?
- 25. Разместить текст непосредственно под несколькими изображениями
- 26. Прокрутить ячейку таблицы непосредственно под панелью навигации?
- 27. Как выровнять текст непосредственно под изображением?
- 28. Как разместить ярлык непосредственно под пролетом?
- 29. Позиционирование UILabel непосредственно под другим UILabel
- 30. Получение значения из массива под объектом jQuery
Что вы устали? Эта концепция называется Collision Detection, и у Google есть много информации об этом. – Romoku
Я не искал обнаружения столкновений, но я посмотрел на stackoverflow для вещей с такими же ключевыми словами, как это. – user2479504