|
0 / 0 / 1
Регистрация: 15.12.2015
Сообщений: 31
|
|
Взаимодействие персонажа и карты в игрушке18.01.2022, 00:36. Показов 1931. Ответов 6
Времени суток добрейшего!
Значит-ся. Язык - C++. Игрушка. Пошаговая. на клетчатом поле. (что-бы был хоть какой-то контекст). Есть класс Level. Хранит в себе само игровое поле, указатели на объекты с их координатами и проч. ; среди такового - my_pathfinding_layout, представляющий из себя двумерный массив булей : где может ступать нога человека, а где - нифига. Этот лэйаут обновляется при каждом соответствующем изменении в Level-е. Есть класс Character. Хранит персонажей, их координаты, текстуры etc. Есть класс Action. Универсальный класс прародитель, который подтыкаеться к кнопкам ( позволю себе не расписывать UI), и позволяет им делать вещи. Он-же подтыкаеться к персонажам ( и в последствии - и к их кнопкам), и дает делать вещи и им. Теперь, собственно вопрос: У нас есть подкласс Action-а Walk. Он, ожидаемо, позволяет персонажу переместиться с одной клетки на другую. Но что-бы определить, куда персонаж может переместиться, нужно осуществить Pathfinding. Кто должен его делать? Точно не персонаж, ибо плевать он хотел на pathfinding_layout - его это не касается. Да и вообще, Action-ы действуют на персонажей, а не являются их частями. По идее - не Level. Ему тоже пофиг и на Action-ы, и на Character-ов. Ну нет у него необходимости владеть паthфайндингом, не его это компетенция. Но, блин, и не Walk ведь! Ибо у него нет никакого морального права получать доступ к pathfinding layout-у, ибо это свойство левела. И, даже если забить на последний факт, это что-же, для каждого подобного Action-а по новой ваять весь pathfinding? Сам опыт объектно ориентированной разработки имею малый, первый ( сравнительно) крупный проект. Посоветуйте, люди добрые! (Если чего непонятно сказал - спрашивайте, все поясню.)
0
|
|
| 18.01.2022, 00:36 | |
|
Ответы с готовыми решениями:
6
Взаимодействие персонажа с врагом (исключение отталкивание персонажем врага) [Проблема]Взаимодействие внешней звуковой карты+ микрофона с геймпадом dualshock 4 |
|
фрилансер
6440 / 5634 / 1127
Регистрация: 11.10.2019
Сообщений: 14,980
|
|
| 18.01.2022, 06:52 | |
|
TiARETiK, сделай просто глобальную функцию, которая принимает ссылку на поле и точки начала и конца. Возвращает путь
0
|
|
|
0 / 0 / 1
Регистрация: 15.12.2015
Сообщений: 31
|
|
| 18.01.2022, 10:49 [ТС] | |
|
Алексей1153, а не будет духовным провалом тот факт, что у нас валяется в пустоте функция, не являющаяся методом класса? И все еще, а кто ее вызывать будет? Action или Level?
0
|
|
|
фрилансер
6440 / 5634 / 1127
Регистрация: 11.10.2019
Сообщений: 14,980
|
||
| 18.01.2022, 11:08 | ||
|
TiARETiK, не в пустоте, а в глобальном неймспейсе. Ну, если сильно хочется, сделай статическую функцию в классе Conductor
![]() вызывать может кто угодно Добавлено через 36 секунд
0
|
||
|
0 / 0 / 1
Регистрация: 15.12.2015
Сообщений: 31
|
|
| 18.01.2022, 11:39 [ТС] | |
|
Алексей1153, ок, спасибо!
Когда срублю мильон мильонов долларов на игрушке, вспомню тебя добрым словом)
0
|
|
|
фрилансер
6440 / 5634 / 1127
Регистрация: 11.10.2019
Сообщений: 14,980
|
|
| 18.01.2022, 11:42 | |
Сообщение было отмечено TiARETiK как решение
Решение
TiARETiK, да не вопрос!
1
|
|
|
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,224
|
||
| 18.01.2022, 13:16 | ||
|
Соответственно, метод определения возможных направлений движения для конкретного игрока можно добавить сюда, то есть это часть движка игры. Так что вычисляем все производные данные исходя из состояния самого Level-а.
0
|
||
| 18.01.2022, 13:16 | |
|
Помогаю со студенческими работами здесь
7
Стрельба в игрушке Звук в игрушке Нужно задать перемещение в игрушке Собственные звуки в музыкальной игрушке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|