forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   FAQ (http://forum.boolean.name/forumdisplay.php?f=15)
-   -   FAQ LoadAnimSeq (загрузка нескольких анимаций из файла) (http://forum.boolean.name/showthread.php?t=7338)

ABTOMAT 16.11.2008 22:47

FAQ LoadAnimSeq (загрузка нескольких анимаций из файла)
 
Вложений: 1
Итак, уже (сбился со счёту который) раз меня об этом спрашивают.
Специально написал без синхронизации, а то м.б. народ запутается)
Для запуска семпла нужен Blitz3D версии 1.98 и желательно понимающий русские комментарии
Вся необходимая медия - в аттаче.

Итак:

Код:


Graphics3D 800,600,32,2 ; Объявляем графический режим
SetBuffer BackBuffer() ; и иже с ним - короче, без этого никак в любой проге

cam = CreateCamera() ; Камера,
CreateLight() ; свет - тоже неотъемлемые части любой проги

man = LoadAnimMesh("MedicTFC.b3d") ; Грузим модельку перца
PositionEntity man,0,-50,100 ; Отдаляем от камеры чтоб видно было



idle = LoadAnimSeq(man, "Idle.b3d") ; Вот так грузим первую анимацию
run = LoadAnimSeq(man, "run.b3d") ; Точно так же - вторую

; В переменных run и idle появятся порядковые номера анимации - не более того
; Они назначаются автоматом при загрузке анимации в том порядке, в котором
; эта анимация была загружена. Например, в данном случае, idle будет = 1, а
; run = 2, ноль - это та анимация, которая изначально содержалась в модели
; (Если стояла галка "сохранить анимацию")


Repeat ; Главный цикл

        If KeyHit(2) Then Animate man, 1,.5,run,10 ; По нажатию клавиш анимируем мужика
        If KeyHit(3) Then Animate man, 1,1,idle,10
       
        ; Обратите внимание на 3-й параметр
        ; Собсно туда и указывают, какую анимацию запускать
        ; Остальные параметры (режим, скорость, плавность переключания)
        ; выбирают по ситуации, это, думаю, понятно
        ; Если непонятно - читайте справку
       
       
        UpdateWorld() ; Для того чтобы работала анимация, UpdateWorld обязателен!
        RenderWorld() ; Рендер
       
       
       
        Text 20,20,"PRESS 1 TO RUN AND 2 TO STOP" ; Немного текста
       
        Flip 1 ; Вертикальная синхронизация включена
Until KeyHit(1) ; Выход из главного цикла - по нажатию клавиши Ескейп
End ; Конец всея проги

Хинт: Если скопировать модель с загруженными анимациями при помощи CopyEntity, то и анимация тоже будет в скопированной модели ;) Так что грузим с винта всего 1 раз а потом только копируем.

HolyDel 17.11.2008 19:12

Ответ: FAQ LoadAnimSeq (загрузка нескольких анимаций из файла)
 
респект. буду сюда посылать юнных падаванов если что.

ABTOMAT ,вторая строчка не нужна. когда Graphics3D, тогда двойная буфферизация идет в подарок :)

ABTOMAT 17.11.2008 21:03

Ответ: FAQ LoadAnimSeq (загрузка нескольких анимаций из файла)
 
Цитата:

Сообщение от HolyDel (Сообщение 90841)
респект. буду сюда посылать юных падаванов если что.

ABTOMAT ,вторая строчка не нужна. когда Graphics3D, тогда двойная буфферизация идет в подарок :)

Вот те крест на пузе - точно помню, мне Блитз написал ошибку в 3Д режиме (т.к. 2Д режим юзаю очень редко) "Buffer is not set!", может, версия Блитза старая была, но с тех пор сразу же ставлю.
Вообще, лучше эту строку писать, так явно указано в какой буфер производить буферные операции.

Albert 18.11.2008 15:22

Ответ: FAQ LoadAnimSeq (загрузка нескольких анимаций из файла)
 
Вложений: 1
А как поступить в этом случае , если у тебя место keyhit keydown?

Вот, не могу ни как анимашку делать.
помогите разобраться.

Niburiec 24.01.2013 13:49

Ответ: FAQ LoadAnimSeq (загрузка нескольких анимаций из файла)
 
Сколько времени прошло, а ответа так и нет... Так как же быть если используешь не KeyHit а KeyDown ? Неужели никто не может ответить? Такое впечатление что некому...

H@NON 24.01.2013 14:42

Ответ: FAQ LoadAnimSeq (загрузка нескольких анимаций из файла)
 
Код:

If KeyDown(200) then
    If AnimSeq(man) <> run Then Animate man, 1,.5,run,10
endif


Niburiec 24.01.2013 15:15

Ответ: FAQ LoadAnimSeq (загрузка нескольких анимаций из файла)
 
Пробовал...У меня, например, дергается но не работает...


Часовой пояс GMT +4, время: 10:10.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot