forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Помогите оптимизировать ф-ю (http://forum.boolean.name/showthread.php?t=13070)

Nuprahtor 16.08.2010 18:44

Ответ: Помогите оптимизировать ф-ю
 
Перепутал с LoadAnimSeq
С ExtractAmimSeq не работал, так что хз...

Mark Castle 16.08.2010 18:46

Ответ: Помогите оптимизировать ф-ю
 
это по идее тоже самое, только где мне его написать???

Nuprahtor 16.08.2010 18:49

Ответ: Помогите оптимизировать ф-ю
 
LoadAnimSeq загружает анимацию модели из файла
ExtractAnimSeq берет анимацию из уже загруженной модели.
Давным давно я при загрузке игры загружал ресурсы в глобалы ( :) )
И была функция, которая грузила модель, а также анимации к этой модели.
Функция выполнялась один раз при старте игры.

Mark Castle 16.08.2010 18:59

Ответ: Помогите оптимизировать ф-ю
 
как бы ты написал этот кусок?

Nuprahtor 16.08.2010 19:05

Ответ: Помогите оптимизировать ф-ю
 
Код:

Function LoadModels()
model = LoadModel = bla bla bla;
an1 = ExtractAnimSeq (model, 1,20)
an2 = ExtractAnimSeq (model, 21,40)
End Function

Вот такой вот псевдокод
И эту функцию вызываем один раз в игре.

Mark Castle 16.08.2010 19:31

Ответ: Помогите оптимизировать ф-ю
 
не работает!не вижу модели!это код загрузки фрица:
Код:

Function create_friz(x#,y#,z#,turn#)
        num%=num%+1
        abc(num)=New frizen
;        abc(num)\friz=LoadAnimMesh("media\officer.b3d")
        abc(num)\friz=frize
        abc(num)\frizbox=CreateSphere()
          EntityAlpha abc(num)\frizbox,0.00001
        PositionEntity abc(num)\frizbox,x#,y#+1.1,z#
        ScaleEntity abc(num)\friz,0.025,0.025,0.025
        ScaleEntity abc(num)\frizbox,0.35,0.8,0.3
        PositionEntity abc(num)\friz,x#,y#,z#
        TurnEntity  abc(num)\friz,0,turn#,0
        TurnEntity  abc(num)\frizbox,0,turn#,0
                                        EntityType abc(num)\frizbox,friz_type
                                        EntityParent abc(num)\friz,abc(num)\frizbox
                                        abc(num)\count_bull%=8
                                        abc(num)\times1%=1
                                        abc(num)\times2%=5
                                        abc(num)\count=1
End Function

а это код который в начале игры:
Код:

Function load_model()
frize=LoadAnimMesh("media\officer.b3d")
                                        ExtractAnimSeq(frize,1,32 ) ; 1- idle
                                        ExtractAnimSeq(frize,33,83 ) ; 2- look_around
                                        ExtractAnimSeq(frize,84,117 ) ; 3- walk
                                        ExtractAnimSeq(frize,118,134 ) ; 4- run
                                        ExtractAnimSeq(frize,135,150 ) ; 5- arm
                                        ExtractAnimSeq(frize,150,159 ) ; 6- shoot_forward
                                        ExtractAnimSeq(frize,161,181 ) ; 7- disarm
                                        ExtractAnimSeq(frize,182,197 ) ; 8- shoot_down
                                        ExtractAnimSeq(frize,198,213 ) ; 9- shoot_up
                                        ExtractAnimSeq(frize,214,239 ) ; 10- reload
                                        ExtractAnimSeq(frize,240,270 ) ; 11- die1
                                        ExtractAnimSeq(frize,271,311 ) ; 12- die2
                                        ExtractAnimSeq(frize,312,325 ) ; 13- die3
End Function

че делать?

Nuprahtor 16.08.2010 19:36

Ответ: Помогите оптимизировать ф-ю
 
Тут нужны опытные блитцеры, я с блица перешел на unity, где все уже за меня сделано, и забыл синтаксис блитца ^_^
По идее
Код:

frize=LoadAnimMesh("media\officer.b3d")
frize должна быть глобальной.
Код:

abc(num)\friz = frize

Mark Castle 16.08.2010 19:39

Ответ: Помогите оптимизировать ф-ю
 
так так вроде и есть!

tormoz 16.08.2010 22:49

Ответ: Помогите оптимизировать ф-ю
 
Цитата:

abc(num)\friz=LoadAnimMesh("media\officer.b3d")
abc(num)\friz=frize
:super: :wild:

Mark Castle 16.08.2010 22:59

Ответ: Помогите оптимизировать ф-ю
 
а что это меняет?

GoddoG 16.08.2010 23:40

Ответ: Помогите оптимизировать ф-ю
 
Цитата:

не работает!не вижу модели!это код загрузки фрица:
EntityAlpha abc(num)\frizbox,0.00001 ?:cool:

ABTOMAT 17.08.2010 00:07

Ответ: Помогите оптимизировать ф-ю
 
Цитата:

Сообщение от Mark Castle (Сообщение 158671)
а что это меняет?

Цитата:

abc(num)\friz=LoadAnimMesh("media\officer.b3d")
abc(num)\friz=frize
LoadAnimMesh грузит модельку с винчестера с текстурами и т.д. Что уже само по себе дело небыстрое. Поэтому правильно, славно загружать модельку один раз в начале проги, а потом, когда надо создать монстра (ну, или для чего там эта моделька) при помощи CopyEntity копируют заранее загруженную модельку. Копируется вся анимация и т.д., кроме того - это в сотни раз быстрее, чем её заново грузить.

Вот этот пост сделал меня задуматься:
http://forum.boolean.name/showpost.p...12&postcount=6
Вы нас так тонко троллите или действительно не понимаете сарказма(всё должно стать ясно даже если просто перевести название предложенной функции на русский язык)?

tormoz 17.08.2010 00:36

Ответ: Помогите оптимизировать ф-ю
 
Цитата:

Сообщение от ABTOMAT (Сообщение 158679)
LoadAnimMesh грузит модельку с винчестера с текстурами и т.д. Что уже само по себе дело небыстрое. Поэтому правильно, славно загружать модельку один раз в начале проги, а потом, когда надо создать монстра (ну, или для чего там эта моделька) при помощи CopyEntity копируют заранее загруженную модельку. Копируется вся анимация и т.д., кроме того - это в сотни раз быстрее, чем её заново грузить.

еще раз посмотри
он грузит модель в переменную, а потом приравнивает ее к другой
скорее всего в ней в этот момент ничего нет

и ваще, нахрена вам дебаггер ?

Mark Castle 17.08.2010 00:39

Ответ: Помогите оптимизировать ф-ю
 
тонко троллим)

Mark Castle 17.08.2010 01:00

Ответ: Помогите оптимизировать ф-ю
 
а ведь кстати, все равно глючит!


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

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