![]() |
FPS: Проблема с реализацией игрока
Сделал, как в обучающих примерах, т.е. пивот с камерой сверху
Код:
Const COLLISION_PLAYER = 1, COLLISION_SCENE = 2 Так же малое значение радиуса позволяет подойти близко к стене и "заглянуть" через нее (это лечится заданием небольшого значения перового параметра в CameraRange). Что посоветуете сделать? Подскажите еще, как сделать звук шагов. Простое добавление "воспроизвести звук, если игрок шагнул" на звук шагов не похож. |
Ответ: FPS: Проблема с реализацей игрока
уменьшить гравитацию?
|
Ответ: FPS: Проблема с реализацей игрока
Гравитация сделана вот так (в процедуре обработки движения игрока)
Код:
mvy# = -0.2 Более того, игрок получает возможность забираться по стенам спиной. |
Ответ: FPS: Проблема с реализацией игрока
Давай по порядку:
Цитата:
Цитата:
Цитата:
Для гравитации сделай вертикальную скорость. Отнимай от скорости величину гравитации каждый цикл. Если игрок столкнётся с полом - скорость равна 0, для прыжка вверх один раз прибавь положительное число. Каждый цикл используй MoveEntity scenePlayer, 0, <вертикальная скорость>, 0 |
Ответ: FPS: Проблема с реализацией игрока
RBK, да, спасибо, не углядел про второй параметр. Но, почему их всего два? :(
Получается, что можно задать растяжение в горизонтальной плоскости. А чтобы получить вытянутый вверх эллипсоид, придется еще и повернуть Pivot игрока. Придется пробовать. Размеры камеры и координаты трогать не хочу, поскольку хочу манипулировать камерой отдельно (пролеты камеры, с последующим возвращением к игроку) и при этом указывать глобальные координаты. Задание CameraRange насколько я понимаю ничем не чревато, поскольку это просто задает просчитываемый объем для DirectX. Про гравитацию не совсем понял. У меня так и сделано - вертикальная скорость 0.2. Выталкивается вверх от столкновения с поверхностью, напр. лестница. Прыжка вверх нет (не надо). |
Ответ: FPS: Проблема с реализацией игрока
а че коллизионную модель (прозрачность 0) ктото отменял в местах лестниц?
|
Ответ: FPS: Проблема с реализацией игрока
Alex_Noc, немножко подробнее можно расшифровать?
На данный момент лестница (угол наклона ~45 градусов, ступеньки) содержится в mesh-уровня, т.е. нет отличия где ходит игрок - по лестнице или по уровню. |
Ответ: FPS: Проблема с реализацией игрока
Вложений: 1
Цитата:
Код:
mvy# = mvy# - 0.2 Цитата:
|
Ответ: FPS: Проблема с реализацией игрока
RBK, спасибо! Получилось. Теперь и по лестницам игрок нормально ходит и в дверях не застревает :)
А не подскажешь еще, как шаги озвучить? Понятно, что можно через таймер: 1. Запускаем звук, напр. на 2сек. Выставляем флаг, что больше звук играть нельзя + таймер на 2сек. 2. Через 2сек таймер снимет флаг. Но, что то не очень, как мне кажется :( |
Ответ: FPS: Проблема с реализацией игрока
Действительно не очень, снова смотрим в справку:
Цитата:
1)Если игрок движется, звук не играет - запускаем звук 2)Если игрок движется, звук играет - ничего не делаем 3)Если игрок не движется, звук играет - звук останавливаем |
Ответ: FPS: Проблема с реализацией игрока
Не!
В блитзе есть такое: звук прикрепляют к каналу (channel). Звук запускается loop-ом бесконечно. Когда не нужен звук - уменьшается громкость звучания, когда нужен - увеличивается. (А звук так и играет повторами). + в этом ещё - можно менять звучность и получается, что звуки (шагов) разные.. |
Ответ: FPS: Проблема с реализацией игрока
Как вариант подойдёт, но допустим у меня десяток звуков шагов по разным покрытиям. Мне их что, все запустить? Что-то мне подсказывает, что такое количество каналов совсем нехорошо.
|
Ответ: FPS: Проблема с реализацией игрока
if not chanelplaying(музон) then playsound (музон)
как то так |
Ответ: FPS: Проблема с реализацией игрока
Цитата:
|
Ответ: FPS: Проблема с реализацией игрока
Цитата:
|
Часовой пояс GMT +4, время: 15:45. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot