|
FAQ Туториалы и часто задаваемые вопросы |
24.01.2013, 14:06
|
#1
|
AnyKey`щик
Регистрация: 24.01.2013
Сообщений: 15
Написано 2 полезных сообщений (для 3 пользователей)
|
Смена анимации с помощью KeyDown
Прочитал все сообщения на форуме по поводу загрузки анимации, но для себя ничего не нашел...А потому хочу поинтересоваться у профи, как менять анимацию с помощью KeyDown? Я пробовал разные варианты загрузок: и X, и B3D, и MD2. Но так толком ничего и не понял. С помощью KeyHit смена анимации проходит легко и без проблем, не взирая на то есть там ключи или нет. Но стоит поменять на KeyDown и сменнённая анимация замирает на первом кадре, пока не отпустишь клавишу. Так вот я хотел спросить, кто может мне без отговорок и сссылок на туториал, объяснить на пальцах как сделать простой цикл проверки нажатия и смены анимации? Чтоб нажал вверх - пошел вперёд, отпустил клавишу - стоит, нажал пробел-подпрыгнул, а если две клавиши (вперёд и Shift)- бежит... Вот такой вопрос.
|
(Offline)
|
|
24.01.2013, 14:14
|
#2
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Смена анимации с помощью KayDown
А что тут не понятного? KeyHit реагирует один раз после нажатия. KeyDown много раз пока не отпустишь клавишу. При KeyDown текущий кадр переносится на 1 кадр пока эта клавиша нажата. Если хочешь приципить анимацию к движению объекта, просто сделай проверку внутри кейдауна на проигрывание анимации объектом если есть уже анимация не вкючать новую.
|
(Offline)
|
|
24.01.2013, 14:25
|
#3
|
AnyKey`щик
Регистрация: 24.01.2013
Сообщений: 15
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Смена анимации с помощью KayDown
Спасибо конечно, но мне это ни о чём не говорит. Если не трудно код пожалуйста напишите для наглядности.
|
(Offline)
|
|
24.01.2013, 14:39
|
#4
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Смена анимации с помощью KayDown
Если это вам ни о чем не говорит, значит рано браться за программирование игр. едиственное что могу подсказать : команда проверяющая анимированность объекта - Animate(Ent).
|
(Offline)
|
|
24.01.2013, 14:46
|
#5
|
AnyKey`щик
Регистрация: 24.01.2013
Сообщений: 15
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Смена анимации с помощью KayDown
Я боюсь что б не было поздно Ведь время не стоит на месте...Про Animate(Ent) я знаю, а вот как его правильно вставить в цикл ? Вот тут у меня соображения не хватает. Наверно я староват уже для понимания Ну ничего, если вы мне не можете объяснить попробую обратиться на другой форум... Может там мне не скажут что я недотёпа...
|
(Offline)
|
|
24.01.2013, 14:51
|
#6
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Смена анимации с помощью KeyDown
Тфу, подрукой блитза нет. Не Animate() а Animating() кажется.
Рановато, и недотепа, разные вещи.
Если кейдаун (57)
_____Если анимейтинг(Энт)
_________ничего...(или что то)
_____иначе
_________анимейт(Энт)
_____конец если
конец если
|
|
(Offline)
|
|
24.01.2013, 14:55
|
#7
|
AnyKey`щик
Регистрация: 24.01.2013
Сообщений: 15
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Смена анимации с помощью 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
|
(Offline)
|
|
24.01.2013, 15:04
|
#8
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Смена анимации с помощью KeyDown
If KeyDown(200)
if not Animating(men2)
Animate m,1,0.5,men2
endif
endif
тоже самое с другой кнопкой. Тебе в предыдущей теме тоже хороший код привели.
http://forum.boolean.name/showthread.php?t=7338
|
(Offline)
|
|
24.01.2013, 15:06
|
#9
|
AnyKey`щик
Регистрация: 24.01.2013
Сообщений: 15
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Смена анимации с помощью KeyDown
Сейчас попробую...
Попробовал... В строке if not Animating(men2) выбивает ошибку: Entity does not exist
Хотя я не могу утверждать что вы не правы, не знаю, может дело в самой анимации?
|
(Offline)
|
|
24.01.2013, 15:24
|
#10
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,024
Написано 2,313 полезных сообщений (для 5,350 пользователей)
|
Ответ: Смена анимации с помощью KeyDown
"Entity does not exist" дык интити нету, проверь правильность пути к файлу, названия переменных, скорее всего в этом косяк, сам сколько раз мучился с подобным, а потом оказывалась впопыхах переменную не так назвал.
|
(Offline)
|
|
24.01.2013, 15:33
|
#11
|
AnyKey`щик
Регистрация: 24.01.2013
Сообщений: 15
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Смена анимации с помощью KeyDown
Может не надо использовать с B3D ExtractAnimSeq ? Ведь в начале он загружает модель, а потом при проверке ошибка...
|
(Offline)
|
|
24.01.2013, 15:36
|
#12
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,024
Написано 2,313 полезных сообщений (для 5,350 пользователей)
|
Ответ: Смена анимации с помощью KeyDown
Синь файлик модели я посмотрю.
И какой версии блица ты пользующийся?
|
(Offline)
|
|
24.01.2013, 15:58
|
#13
|
AnyKey`щик
Регистрация: 24.01.2013
Сообщений: 15
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Смена анимации с помощью KeyDown
Версия 1.98 А модель я позаимствовал из FPS Креатора (да простят меня они). В архиве X (оригинал), B3D я его просто конвертнул в Fragmotion и MD2, тут я пытался сделать по науке, не знаю вышло ли...
Ой.. забыл скинуть текстуру...ну да и так будет понятно...
|
(Offline)
|
|
24.01.2013, 16:03
|
#14
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,024
Написано 2,313 полезных сообщений (для 5,350 пользователей)
|
Ответ: Смена анимации с помощью KeyDown
Сообщение от Niburiec
Версия 1.98 А модель я позаимствовал из FPS Креатора (да простят меня они). В архиве X (оригинал), B3D я его просто конвертнул в Fragmotion и MD2, тут я пытался сделать по науке, не знаю вышло ли...
|
Вопервых X несодержит анимацию, но я вижу что ты разобрался.
Версия 1.99, у меня всё работает, ошибок нет. Блиц глючит, попробуй запустить в оконном режиме.
|
(Offline)
|
|
24.01.2013, 16:18
|
#15
|
AnyKey`щик
Регистрация: 24.01.2013
Сообщений: 15
Написано 2 полезных сообщений (для 3 пользователей)
|
Ответ: Смена анимации с помощью KeyDown
Graphics3D 800,600,16,2
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
Animate m,1,0.5,1
While Not KeyHit(1)
If KeyDown(200)
If Not Animating(men2)
Animate m,1,0.5,men2
EndIf
EndIf
Animate m,1,0.5,1
UpdateWorld
RenderWorld
Flip
Wend
End
|
Пробовал я и в оконном - да хоть ты тресни... И пути проверил - всё впорядке... не идёт зараза...
А так ходит, но мне нужно чтоб он шёл только при нажатой клавише...
Graphics3D 800,600,16,2
SetBuffer BackBuffer()
camera=CreateCamera()
light=CreateLight()
RotateEntity light,90,0,0
; Загрузка md2
m=LoadMD2( "officer_5.md2" )
;me1=LoadAnimSeq(
; Загрузка текстуры md2
m_tex=LoadTexture( "officer_1_D2.dds" )
; Наложить текстуру
EntityTexture m,m_tex
; Включаем анимацию md2
PositionEntity m,0,-35,70
RotateEntity m,0,0,0
AnimateMD2 m,1,0.3,1,24
While Not KeyDown( 1 )
If KeyHit(200) AnimateMD2 m,1,0.3,25,49
UpdateWorld
RenderWorld
Flip
Wend
End
|
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:41.
|