![]() |
Вернуть анимацию
Загрузил анимацию для обьекта в самом начале программы, потом по нажатию клавиши для этого обьета запускаеться 2 анимация.. как зделать так чтобы после оконьчания ее на автомате запускалась первая анимация..
мозгов не хватает самому додуматься.. пытался через флагову переменную но получаеться что 2 анимация работает только при нажатой кнопки.. |
Ответ: Вернуть анимацию
можно использовать select
ExtractAnimSeq model,10,10 ExtractAnimSeq model,10,20 ;--------------------------------UPDATE------ select anim case 0 If AnimSeq(model)<>1 Then Animate model,1,1,1,0 if keyhit(57) then anim=1 ;давим клаву case 1 If AnimSeq(model)<>2 Then Animate model,1,1,2,0 If AnimTime(model)>=10 Then anim=0 ;первая анимация end select |
Re: Вернуть анимацию
Цитата:
|
Re: Вернуть анимацию
А проще нельзя?... Например просто узнать проигрываться сейчас анимация для данного меша или нет... если нет то запускает 1 анимацию..:stop:
|
Re: Вернуть анимацию
а может кто нибудь показать пример как это делается?
Примерно вот так хочеться зделать Repeat проверка играет ли анимация для данного меша если играет то ничего не далать если не играет то запустить такую то анимацию ; какэто все выразить кодом :dontknow: |
Ответ: Вернуть анимацию
а справка по командам не работает?
|
Ответ: Вернуть анимацию
Цитата:
to NitE, вообще не вижу смысла в твоих 2 постах !! Max Payne, тебе же Raion написал !! Что непонятно там ?? если хочеш именно это: Цитата:
|
Re: Вернуть анимацию
Круто конечно но как это работает... не пойму как сюда впихнуть свою анимацию.. откуда она загружаеться... У меня примерно так cub11=LoadAnimMesh("3d models/2sol/sol.b3d") PositionEntity cub11,22,1.2,-15 anim1=LoadAnimSeq (cub11,"3d models/2sol/a1.b3d") anim2=LoadAnimSeq (cub11,"3d models/2sol/a2.b3d") Animate cub11,1,0.3,anim1 Repeat If KeyDown(17)Then Animate (cub11,3,0.3,anim2) |
Re: Вернуть анимацию
cub11=LoadAnimMesh("3d models/2sol/sol.b3d")
PositionEntity cub11,22,1.2,-15 anim1=LoadAnimSeq (cub11,"3d models/2sol/a1.b3d") anim2=LoadAnimSeq (cub11,"3d models/2sol/a2.b3d") anim3=ExtractAnimSeq(cub11,10,20) anim4=ExtractAnimSeq(cub11,21,30) Repeat If KeyHit(17) Animate cub11,0,1,1,0 EndIf If AnimSeq(cub11)=1 And Animating(cub11)=0 Animate cub11,0,1,2,0 не знаю я как связать мой код с твоим :dontknow: :''(( |
Ответ: Вернуть анимацию
|
Re: Вернуть анимацию
во во.. фотка прям про меня я так уже 2 дня сижу..
все равно не вьеду... перечитал справку по командам ,почти наизусть знаю.. просто обьясните поподробней как это работает... mesh=LoadAnimMesh( base_mesh$ ) ;одна сплошная секция анимации номер 0. ExtractAnimSeq( mesh,0,30 ) У меня мешь и анимация это 2 разных меша... какой грузить в mesh=LoadAnimMesh( base_mesh$ ) ... если 1 то это просто мешь.. если второй то это анимация и как ее потом прикрутить к 1 мешу. в бейсике я бы зделал так If keydown(17) then animate(cub11,1,0.2,anim1) else animate(cub11,1,0.2,anim2) но в блице это не прокатит.. просто тут другой принцип и я его не пойму никак... какие то номера кадров анимации...:dontknow: Может ко нибудь исравить этот код... пиво с меня cub11=LoadAnimMesh("3d models/2sol/sol.b3d") PositionEntity cub11,22,1.2,-15 anim1=LoadAnimSeq (cub11,"3d models/2sol/a1.b3d") anim2=LoadAnimSeq (cub11,"3d models/2sol/a2.b3d") Animate cub11,1,0.3,anim1 Repeat If KeyDown(17)Then Animate (cub11,3,0.3,anim2) надо чтоб того как я нажму клавишу и после проигрования второй анимации просто запускалась вот эта команда Animate cub11,1,0.3,anim1 :wallbash: :wallbash: :wallbash: :wallbash: :wallbash: :wallbash: |
Ответ: Вернуть анимацию
NitE , я тебя сколько раз уже предупреждал - не пиши всякую херню
ну блин, не знаешь темы - пройди мимо. человек подождет подождет, и за ум возьмется - начнет хелп читать, семплы смотреть, по форуму поиск заюзает. а с твоими неработающими подсказками точно бросит программирование зы. кто не понял: все советы тов. NitE , мягко говоря не компетентны, неправильны и половина кода не рабочая. как делается анимация раз 50 объяснялось в разных темах на форуме ранее. http://forum.boolean.name/showpost.p...5&postcount=19 |
Re: Вернуть анимацию
;------загрузка--------
player=LoadAnimMesh("player.b3d") ExtractAnimSeq(player,0,9) ExtractAnimSeq(player,10,70) ExtractAnimSeq(player,71,100) ;-----------цикл------- If key_move a_mode=1 a_speed=0.5 a_player=1 a_tran=20 endif If key_attak a_mode=3 a_speed=1 a_player=2 a_tran=2 endif If key_jump a_mode=3 a_speed=1 a_player=3 a_tran=8 endif aseq_player=AnimSeq(player) If aseq_player<>a_player Animate player,a_mode,a_speed,a_player,a_tran Endif с циклом все понятно, какую клавишу нажмеш такие параметры и будут в анимации.. непонятно загрузка меша... player=LoadAnimMesh("player.b3d") ExtractAnimSeq(player,0,9) ExtractAnimSeq(player,10,70) ExtractAnimSeq(player,71,100) что вы имеете ввиду под player, сам меш или его анимацию? у меня это 2 разных файла? |
Ответ: Вернуть анимацию
Цитата:
Цитата:
|
Re: Вернуть анимацию
тогда попробуй это: http://forum.boolean.name/showthread.php?t=7338
там все понятно, там загружаеться 2 анимации и каждая запускаеться разной клавишей...у меня немного другое... Попробую обьяснит полутьше..Надо чтоб после 1 анимации на автомате запускалась вторая и все. Загружаються у меня анимации так anim1=LoadAnimSeq (cub11,"3d models/2sol/a1.b3d") anim2=LoadAnimSeq (cub11,"3d models/2sol/a2.b3d") ит. вот мой код cub11=LoadAnimMesh("3d models/2sol/sol.b3d") ; агрузка меша PositionEntity cub11,22,1.2,-15 anim1=LoadAnimSeq (cub11,"3d models/2sol/a1.b3d") загрузка 1 анимации anim2=LoadAnimSeq (cub11,"3d models/2sol/a2.b3d") загрузка 2 аниации Animate cub11,1,0.3,anim1 запуск 1 анимации Repeat If KeyDown(17)Then Animate (cub11,3,0.3,anim2) запуск 2 анимации как вернуть первую анимации без нажатия кнопок после того как закончит играть 2 анимация.. Ps. У меня получилась то что я хотел но с использованием Goto 10 раз.. хочеться все по другому зделать... Ведь есьже команда которая проверяет играет ли в данной момент анимация или нет.. тока как ей воспользоваться? |
Часовой пояс GMT +4, время: 06:07. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot