Смена анимации с помощью KeyDown
Прочитал все сообщения на форуме по поводу загрузки анимации, но для себя ничего не нашел...А потому хочу поинтересоваться у профи, как менять анимацию с помощью KeyDown? Я пробовал разные варианты загрузок: и X, и B3D, и MD2. Но так толком ничего и не понял. С помощью KeyHit смена анимации проходит легко и без проблем, не взирая на то есть там ключи или нет. Но стоит поменять на KeyDown и сменнённая анимация замирает на первом кадре, пока не отпустишь клавишу. Так вот я хотел спросить, кто может мне без отговорок и сссылок на туториал, объяснить на пальцах как сделать простой цикл проверки нажатия и смены анимации? Чтоб нажал вверх - пошел вперёд, отпустил клавишу - стоит, нажал пробел-подпрыгнул, а если две клавиши (вперёд и Shift)- бежит... Вот такой вопрос.
|
Ответ: Смена анимации с помощью KayDown
А что тут не понятного? KeyHit реагирует один раз после нажатия. KeyDown много раз пока не отпустишь клавишу. При KeyDown текущий кадр переносится на 1 кадр пока эта клавиша нажата. Если хочешь приципить анимацию к движению объекта, просто сделай проверку внутри кейдауна на проигрывание анимации объектом если есть уже анимация не вкючать новую.
|
Ответ: Смена анимации с помощью KayDown
Спасибо конечно, но мне это ни о чём не говорит. Если не трудно код пожалуйста напишите для наглядности.
|
Ответ: Смена анимации с помощью KayDown
Если это вам ни о чем не говорит, значит рано браться за программирование игр. едиственное что могу подсказать : команда проверяющая анимированность объекта - Animate(Ent).
|
Ответ: Смена анимации с помощью KayDown
Я боюсь что б не было поздно :) Ведь время не стоит на месте...Про Animate(Ent) я знаю, а вот как его правильно вставить в цикл ? Вот тут у меня соображения не хватает. Наверно я староват уже для понимания :) Ну ничего, если вы мне не можете объяснить попробую обратиться на другой форум... Может там мне не скажут что я недотёпа...
|
Ответ: Смена анимации с помощью KeyDown
Тфу, подрукой блитза нет. Не Animate() а Animating() кажется.
Рановато, и недотепа, разные вещи. Цитата:
|
Ответ: Смена анимации с помощью KeyDown
)))) Да не страшно, ведь я то всё равно ничего не понимаю, ведь так ? Вот куда мне здесь что вставить:
Graphics3D 800,600,16,1 SetBuffer BackBuffer() cam=CreateCamera() lite = CreateLight(1) MoveEntity lite,5,0,0 ;-------------------------------------- m=LoadAnimMesh("officer.b3d") men=ExtractAnimSeq(m,212,232) men2=ExtractAnimSeq(m,236,260) men3=ExtractAnimSeq(m,301,319) ScaleEntity m,0.1,0.1,0.1 PositionEntity m,0,0,0,True PointEntity cam,m PositionEntity cam,0,3,-7 While Not KeyHit(1) Animate m,1,0.5,1 If KeyDown(200) Animate m,1,0.5,men2 If KeyDown(205) Animate m,1,0.5,men3 UpdateWorld RenderWorld Flip Wend End |
Ответ: Смена анимации с помощью KeyDown
If KeyDown(200)
if not Animating(men2) Animate m,1,0.5,men2 endif endif тоже самое с другой кнопкой. Тебе в предыдущей теме тоже хороший код привели. http://forum.boolean.name/showthread.php?t=7338 |
Ответ: Смена анимации с помощью KeyDown
Сейчас попробую...
Попробовал... В строке if not Animating(men2) выбивает ошибку: Entity does not exist Хотя я не могу утверждать что вы не правы, не знаю, может дело в самой анимации? |
Ответ: Смена анимации с помощью KeyDown
"Entity does not exist" дык интити нету, проверь правильность пути к файлу, названия переменных, скорее всего в этом косяк, сам сколько раз мучился с подобным, а потом оказывалась впопыхах переменную не так назвал.
|
Ответ: Смена анимации с помощью KeyDown
Может не надо использовать с B3D ExtractAnimSeq ? Ведь в начале он загружает модель, а потом при проверке ошибка...
|
Ответ: Смена анимации с помощью KeyDown
Синь файлик модели я посмотрю.
И какой версии блица ты пользующийся? |
Ответ: Смена анимации с помощью KeyDown
Вложений: 1
Версия 1.98 А модель я позаимствовал из FPS Креатора (да простят меня они). В архиве X (оригинал), B3D я его просто конвертнул в Fragmotion и MD2, тут я пытался сделать по науке, не знаю вышло ли...
Ой.. забыл скинуть текстуру...ну да и так будет понятно... |
Ответ: Смена анимации с помощью KeyDown
Цитата:
Версия 1.99, у меня всё работает, ошибок нет. Блиц глючит, попробуй запустить в оконном режиме. |
Ответ: Смена анимации с помощью KeyDown
Цитата:
А так ходит, но мне нужно чтоб он шёл только при нажатой клавише... Цитата:
|
Ответ: Смена анимации с помощью KeyDown
#15 тож работает, а вот проверка нажатия сделана через одно место - mav.
Включи дебагер посмотри в чём дело. |
Ответ: Смена анимации с помощью KeyDown
Debuger ничего мне не объяснит по русский :) А как сделать проверку нажатия во втором коде с md2? Может хоть MD2 пойдёт...Сам я не додумаюсь, это точно.
|
Ответ: Смена анимации с помощью KeyDown
вобщем дело в том что в блитце для начала анимации нужно вызывать функцию оджин раз , если делать через кейдовн то функция постоянно вызывается и не может проиграться.
для того чтоб сделать при нажатии хотьбу а при ненажатии другую анимацию нужно использовать переменные я использовал эти Global player_start=0 - игрок начал идти Global player_stop=1 - игрок остновился Global player_still=1 - игрок стоит вот код PHP код:
PHP код:
|
Ответ: Смена анимации с помощью KeyDown
ГЛОБАЛЬНОЕ СПАСИБО !!! Всё доходчиво и понятно. Я понимаю что многим трудно объяснять как для первоклассника, но куда ж нам тогда деваться? Только к вам - мастерам. Ещё раз спасибо. Теперь всё работает отлично !!!
|
Ответ: Смена анимации с помощью KeyDown
Цитата:
|
Ответ: Смена анимации с помощью KeyDown
Эх... Тогда ещё вопрос по ходу дела. Опять я всё про тоже. Наверное достал уже своими вопросами? Что не так в этом коде? ...Честное слово, последний вопрос по этой теме и всё.
Цитата:
|
Ответ: Смена анимации с помощью KeyDown
Код работает, это у тебя блиц балует - серьёзно. На хрена ты там гоосабы сделал? :4to: Фтопку их. Сделай лучше функции отдельно и ссылайся на них, когда нажимаешь клавиши. Кнопки - это же просто! Код:
If KeyDown(адин_кнопка)=True ;если ЗАЖАЛИ такую-то кнопку... Код:
If KeyDown(адин_кнопка)=True and KeyDown(два_кнопка)=True then ;тут что-то происходит... |
Ответ: Смена анимации с помощью KeyDown
короче написал код. пришлось час посидеть. но только толку от этого кода?. ты всеравно сути не поймешь. ты лучше с чегонить попроще начни, главное принцип понять и разбирать код. а не тупо копипастить
просто тут довольно сложный код . т.к. если делать как в играх то тут много ньюансов - например если сначала зажать шифт а потом вперед он сразу должен бежать, если зажать вперед и потом зажимать и отпускать шифт он должен то идти то бежать и т.д. PHP код:
|
Ответ: Смена анимации с помощью KeyDown
Если честно, я не ожидал что понадобится столько времени... Но вам, уважаемый, нужно памятник при жизни ставить за то что имеете терпение и не отказываете в помощи. Вобщем, спасибо за полный код. Теперь у меня есть над чем посидеть и разобраться. Постараюсь, по крайней мере...Однако, на мой взгляд, этот вопрос освещён полностью и у других будет возможность заглянуть как это делается :)
|
Часовой пояс GMT +4, время: 16:42. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot