Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 04.02.2021
Сообщений: 13

Правильная реализация механики удаления фигуры

03.12.2021, 20:43. Показов 516. Ответов 5

Студворк — интернет-сервис помощи студентам
Доброго времени ...(указать свое). Я пишу игру и не могу продумать правильную реализацию удаления фигуры с поля по определенным условиям.
Система "убийства" объектов должна вычислять, есть ли по обе стороны от объекта вражеские фигуры, и уничтожать этот самый объект (как на фото)




Я хотел бы совершать проверку уже после совершения какого-либо хода, не загружая систему постоянным спавном рейкастов в апдейте. И скрипт для этого я написал, но он работает только если ход вот такой:

Но не работает если такой:


Дело в том, что скрипт проверяет это условие для активного объекта, но я не знаю, как будет правильнее реализовать проверку условия для всех объектов, не нагружая игру.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.12.2021, 20:43
Ответы с готовыми решениями:

Правильная реализация удаления элемента из АВЛ-дерева
Реализовано удаление, но в графическом режиме неправильно. #include <iostream> #include<ctype.h> ...

Реализация игровой механики
Здравствуйте! Хотелось бы узнать Вашего мнения относительно того, как реализовывать такую игровую механику: Все мы знаем игрушку...

DataGridView не правильная сортировка и ошибка удаления строки
Вообщем вывожу в DataGridView Имена и дату создания файлов из папки. Заранее сортирую их по дате. Но почему-то всегда 9-ый файл уходит в...

5
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
03.12.2021, 20:58
Если у вас игра по клеткам, и все фигуры ходят строго по клеткам, то не нужно никаких рейкастов, тем более в Update. Нужно просто проверить кто находится на клетке справа и слева. Каждая фигура должна знать на какой клетке она находится, либо иметь карту (двумерный массив), в котором записываются данные о фигурах на поле.
Либо если у вас не прямоугольное поле, а просто фигуры ходят по клеткам (шаг фиксированной длины), то id клетки любой фигуры можно легко вычислить
C#
1
2
cellX = (int)(figure.position.X/cellSize);
cellY = (int)(figure.position.Y/cellSize);
2
0 / 0 / 0
Регистрация: 04.02.2021
Сообщений: 13
03.12.2021, 21:23  [ТС]
У фигур задана четкая позиция, но дело в том, что при втором развитии событий:

Позиции слева и справа проверяются именно для черной фигуры, т.к. она совершает перемещение. А нужно, что б во втором случае позиции проверялись у синей фигуры.
0
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
03.12.2021, 21:47
По идее после каждого хода любой фигуры - должны проверятся все клетки. Ведь поле изменилось и нужно пересчитать текущее положение дел и вычислить тех, кто потенциально попадает в окружение и т.п.
1
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
03.12.2021, 21:49
Цитата Сообщение от Emmer Посмотреть сообщение
не нагружая игру
Серьезно? У тебя там поле 1 000 000 х 1 000 000 или что? Пробегаешься по всем фигурам в массиве после любого хода и удаляешь лишние фигуры. Вангую, займет не больше 5 мс.
1
0 / 0 / 0
Регистрация: 04.02.2021
Сообщений: 13
03.12.2021, 21:59  [ТС]
Ну вообще да, это самый простой способ. Спасибо вам)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.12.2021, 21:59
Помогаю со студенческими работами здесь

Правильная реализация счетчика
Приветствую! Подскажите пожалуйста, как верно реализовать счетчик. Допустим при определенном действии пользователя, которое мне нужно...

Правильная реализация связи 1:1
Мое ракование при попытке правильно организовать связь между двумя таблицами достигло критической отметки, поэтому прошу помощи тут. ...

Роутинг - правильная реализация
Здравствуйте. 1. Скажите, я правильно понимаю, что для успешного роутинга, нужно перенаправить все запросы на индексный файл, и уже...

Правильная реализация подключения к бд
Моё приложение Windows Forms в первой (и, пока, единственной форме) получает от пользователя данные для подключения к MSSQL-серверу, после...

Правильная реализация в цикле
pole=fig; pole=fig; pole=fig; pole=fig; pole=fig; pole=fig; pole=fig; pole=fig; pole=fig; pole=fig;


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru