Реализовать перемещение персонажа11.09.2022, 23:24. Показов 3626. Ответов 9
Доброго времени!
Столкнулся с проблемой(прокрастинацией в коде!). Пытаюсь реализовать перемещение персонажа и для разного типа перемещения использовать разную скорость. Выглядит это примерно так. Я знаю о существовании паттернов программирования. Хотя и не понимаю с чем их едят. С помощью пространных пояснений от разных авторов понял, что мне надо что то вроде этих паттернов чтобы избавиться от ИФОВ. Простое загугливание паттернов даёт слишком абстрактные знания. Или наоборот слишком частные случаи. Вообще не понятно как их учить. И какой выбрать для моего случая. Буду рад любым советам. Заранее спасибо!
0
|
|
| 11.09.2022, 23:24 | |
|
Ответы с готовыми решениями:
9
Перемещение персонажа
Перемещение персонажа |
|
52 / 35 / 16
Регистрация: 03.08.2019
Сообщений: 389
|
|
| 12.09.2022, 11:48 | |
|
персонаж постоянно в движении или движение происходит при нажатии на кнопки?
0
|
|
| 12.09.2022, 12:10 [ТС] | |
|
Fantom1987, при нажатии на кнопки. WASD + Mouse.
возможно мне подойдет паттерн состояния для переключения скорости. Я нашел видео и понял как они создаются. Но в конце автор показал дулю! Управляя переключениями между состояниями простыми if =(
0
|
|
|
52 / 35 / 16
Регистрация: 03.08.2019
Сообщений: 389
|
|
| 12.09.2022, 12:45 | |
|
devillived, не понимаю зачем так заморачиваться... делайте так чтобы сами понимали, что написали. чем проще код тем лучше - имхо)
0
|
|
| 12.09.2022, 12:55 [ТС] | |
|
Fantom1987, проблема в том, что проще не работает.
и если я захочу добавить бег на корточках например. мне прийдется ТАКОЕ городить!!! вот я и ищу способ простой реализации ветвления условий с возможностью расширения.
0
|
|
|
52 / 35 / 16
Регистрация: 03.08.2019
Сообщений: 389
|
||||||
| 12.09.2022, 13:13 | ||||||
|
писал под 2д, но возможно поможет в реализации
0
|
||||||
| 12.09.2022, 13:35 [ТС] | |
|
Fantom1987, Спасибо!
Я знаком с данной конструкцией. Это по сути те же ифы, то лько завернутые в switch case. Ну ладно пойду дальше книги по Unity читать. может там что то будет. Всем спасибо! Всем удачи.
0
|
|
|
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
|
|||||||
| 12.09.2022, 21:56 | |||||||
Сообщение было отмечено devillived как решение
РешениеДопустим в следующем примере есть игрок. В Update этого игрока выполняется update его текущего состояния. То-есть состояния могут быть разные, и каждое описывает своё, конкретное поведение. Каждое состояние имеет ссылку на игрока, чтобы была возможно ему что-то сообщить, например дать команду "изменить состояние" или что-то другое. Здесь у игрока 4 состояния (покой, ходьба, бег, плавание), изначально устанавливается состояния покоя. - состояние покоя ловит нажатие клавиш движения, и если движение есть, то переходит в состояние ходьбы - состояние ходьбы тоже ловит клавиши и двигает игрока, но если нажимается клавиша шифт, то переходит в состояние бега - состояние бега так же ловит клавиши и увеличивает скорость игрока, а так же дополнительно крутит его, как только клавиши движения отжаты или отжат шифт, то состояние переходит в состояние ходьбы - сам игрок (вне зависимости от состояния) ловит нахождения в триггере воды. И если попадает в него, то меняет своё состояние на состояние плавания. В котором добавляется возможность плавать не только влево-вправо, но и вверх-вниз. Для наглядности добавлена смена цвета у игрока и надпись на ним с описанием текущего состояния Сам код всего этого "добра" выглядит пугающе, но это потому что он сделан для примера, плюс всё в одном файле. Кликните здесь для просмотра всего текста
Ни в коем случае не принимайте это как панацею. Здесь лишь просто попытка объяснить мои понимания данного вопроса. Всё может выглядеть совершенно иначе, правильнее и гибче. Всё нужно подстраивать под свои конкретные задачи. На всякий случай добавлю пакет со сценой, но не уверен, что он корректно экспортировался. StatesExamplePackage.zip
1
|
|||||||
|
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
|
||
| 12.09.2022, 22:36 | ||
|
0
|
||
| 12.09.2022, 22:36 | |
|
Помогаю со студенческими работами здесь
10
Перемещение персонажа по средствам анимации
Задать перемещение персонажа по клику мыши Перемещение объектов || или создание персонажа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|