Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 30.04.2008, 10:53   #1
Dstorton111
Оператор ЭВМ
 
Регистрация: 03.05.2007
Сообщений: 23
Написано 0 полезных сообщений
(для 0 пользователей)
Тормоза при загрузке из AnimSeq

Косяк, Когда чел стоит на месте всё хорошо, но иногда, когда нажимаю вперёд и он начинает двигаться вперёд вместе с запуском анимации из загруженного AnimSeq, то FPS Падает слишком быстро. До 2о-30 FPS.

Может я не там обновляю модель чела в игре?
(Offline)
 
Ответить с цитированием
Старый 30.04.2008, 11:24   #2
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Ответ: Тормоза при загрузке из AnimSeq

мб ты грузишь анимацию в цикле? хотелось бы видеть кусок кода, где возможна ошибка, телепаты как всегда на отдыхе.
(Offline)
 
Ответить с цитированием
Старый 30.04.2008, 16:14   #3
Dstorton111
Оператор ЭВМ
 
Регистрация: 03.05.2007
Сообщений: 23
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Тормоза при загрузке из AnimSeq

Ну, вот он код главного файла:
Graphics3D 1024,768,32,1
   Include "Includes.bb"  ; Подгружаем нужные библиотеки
    SetBuffer BackBuffer()
    GUIw512_Init(1); Меню
    Black_Init(); Видео
    Black_SetSound(1); глобальный уровень звука в видео
 SetFont LoadFont ("Tahoma",16); Шрифт программы
  Include "CreateMenu.bb";//Создаюм окошки меню
While (1);//Обновляем всю программу
If KeyHit (1)
  GState = 0
EndIf 
;==========- UpDate GUI
   Select GState; Определяем состояние программы пауза или игра
   
   Case 0 ;//Если Пауза
                    PauseEkr(1)                                 ; Пауза на видео
                      pxSetPause(1)                            ; Пауза на физику
             WG_ShowElement(wim_0)        ; Показать главное меню
       StartDraw                                      ;Рисуем картинку на Экране
                  DrawImageEx(im,0,0)
                EndDraw
      GUIw512_UpDate()                          ; Обновляем меню
      DrawImage cursor,MouseX(), MouseY()
            
   Case 1 ; Если Нажали на Старт
        Select Gstarted; предыдущее состояние игры
    Case 0; Если Старт
        Include "new_game.bb" ; Сдесь грузим уровень и "  player.player = CreatePlayer() ;Создаём Игрока "
    Case 1 ; Если Продолжить   // Здесь цикл обновления программы
         old_time = MilliSecs ();
      
      LimitFPS(); Ставим ограничение по FPS - 50 кадров "Не догнал как сделать нормальную интерполяцию"
      
         Include "Upd_Game.bb" ; Сдесь функции типа UpdatePlayers()
  
            WG_HideElement(win_opt)
            WG_HideElement (win_autor)
        WG_HideElement(wim_0)
      FreeImageEx im
               Filter_Textures()
               pxSetPause(0)
  
    End Select
   End Select
Include "CheckMenu.bb";//обновляем меню 
 Flip 0
 Include "Update.bb";//Рисуем и обновляем то что нужно
Wend
Black_CloseZ(Bl)
Black_DeInit()
End
Include "Functions.bb";// Основные функции программы
А это функция Загрузки чела в игру:
Function CreatePlayer.player()
    pl.player = New player
 ;Создаём физ тело и материал для него
    pl\body = pxBodyCreateCapsule(15, 2.5 ,45)
         pxBodySetLinearDamping(pl\body, 10)
         pxBodySetFrozenRot(pl\body, 1)
   pxMaskSet(pl\body,3)
    pl\mat = pxCreateMaterial%(); Материал на тело
       pxMaterialSetDyFriction(pl\mat, 1)
         pxMaterialSetToBody(pl\body, pl\mat)
  ;Загружаем анимированный меш игрока
  pl\anim_move =  LoadAnimMesh ("Media\Soviet\Soviet-Idle.3DS");anim seq 0
       LoadAnimSeq pl\anim_move ,"Media\Soviet\Soviet-Move.3DS"  ;anim seq 1
    LoadAnimSeq pl\anim_move ,"Media\Soviet\Soviet-Move-Back.3DS"  ;anim seq 3
       ScaleEntity pl\anim_move, 10, 10, 10
    Animate pl\anim_move,1,0.5
        
    pl\x = 40
 pl\y = 20
 pl\z = 10
 ; Начальная позиция физ тела
 pxBodySetPosition ( pl\body,  pl\x,pl\y,pl\z ) 
    pl\ray = pxCreateRay%()
  ;Точка обозначает тело
  pl\pivot = CreatePivot(pl\anim_move)
      PositionEntity pl\pivot, EntityX (pl\anim_move), EntityY (pl\anim_move)+2.5, EntityZ (pl\anim_move)-1.3
  
  pl\camera = CreateCamera()
         TurnEntity pl\Camera,  0,90,0
      CameraClsColor pl\camera,20,40,45
      CameraRange    pl\camera,1.0,1000.0
         pl\gravity = -40
 
 Return pl
Кстати, подкиньте ктонить код интерполяции, желательно в примере
(Offline)
 
Ответить с цитированием
Старый 30.04.2008, 17:56   #4
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Тормоза при загрузке из AnimSeq

Ктож инклюды вызывает в цикле ?
Вызывай функции.
А инклюды подключаются ОДИН раз до цикла
__________________
(Offline)
 
Ответить с цитированием
Старый 30.04.2008, 18:39   #5
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Ответ: Тормоза при загрузке из AnimSeq

Я, конечно, много повидал, но инклуды в цикле - это знаете ли, свежо!
__________________
(Offline)
 
Ответить с цитированием
Старый 30.04.2008, 19:01   #6
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Тормоза при загрузке из AnimSeq

вы народ особо не удивляйтесь. нет тут ничего удивительного, это просто неправильная блицовая терминология, надо было подключение обозвать uses или там add, но не include.
похоже на лексическое включение.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (02.05.2008)
Старый 30.04.2008, 19:12   #7
Dstorton111
Оператор ЭВМ
 
Регистрация: 03.05.2007
Сообщений: 23
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Тормоза при загрузке из AnimSeq

Скажу пару слов о моём использовании Include

1. Не всегда и не весь код срабатывает из функции,(во всяком случае у меня)
2. Ну не писать же 100 функций и описывать 100 типов в одном скрипте.
3. В Файле кода проги размером скажем 300 Кб х...кто разберётся
4. Не вижу негативных моменетов

P.S. Главное во всём знать меру
Насчёт анимации - Есть мысль что это тормоза компа, скорей всего вирусняки, базу давно не обнавлял
А инклюды подключаются ОДИН раз до цикла
Ну знаете ли, и любовью до свадьбы вроде как заниматься нельзя
(Offline)
 
Ответить с цитированием
Старый 30.04.2008, 19:46   #8
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Тормоза при загрузке из AnimSeq

Бу га га !
Он еще и спорит !
__________________
(Offline)
 
Ответить с цитированием
Старый 30.04.2008, 21:37   #9
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Тормоза при загрузке из AnimSeq

Dstorton111, а попробовать сделать как тебе советуют люди далеко не первый год знакомые с блицом? в том числе и с пресловутым include?
(Offline)
 
Ответить с цитированием
Старый 30.04.2008, 22:19   #10
Dstorton111
Оператор ЭВМ
 
Регистрация: 03.05.2007
Сообщений: 23
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Тормоза при загрузке из AnimSeq

Ладно уж, попробую, что смогу перевду в функции.

Кстати как насчёт ИНТЕРПОЛЯЦИИ !!! Помогите хоть с ней, а то останется в переходе рядом с бомжами стоять с табличкой " Помогите исходником на прогу "
(Offline)
 
Ответить с цитированием
Старый 30.04.2008, 22:26   #11
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Ответ: Тормоза при загрузке из AnimSeq

Если ты про сглаживание движения то вот:

;-Cubic Spline Interpolation-;

;[Updated] - Recursive Math Added For fastest Spline Speed Ever

;-by Chroma
;-based on a tutorial at www.gamedev.net

;The object starts at position S and is predicted ahead one second to be at 1.
;The object is then predicted to E and then time reversed one second to 2.
;The spline is then plotted from S to E based on the predicted points of 1 and 2
;and the starting And ending velocities. The object is then moved along the
;spline Until the Next packet arrives and then process starts over.

;S = starting point - time=0
;1 = predicted position after 1 sec
;2 = predicted position reversed from E after 1 sec
;E = ending point

AppTitle "Cubic Spline Interpolation"

Graphics 350,250,16,2
SetBuffer BackBuffer()

;Main Loop
While Not KeyHit(1)
Cls

;Cubic Spline Interpolation (I love those words!)
cspline(50,180,100,50,300,75,-20,-10,0,0)

Flip
Wend
End

;-=-=-=-=-=-=-=-=-=-=-=-=-=-=;
;=Cubic Spline Interpolation=;
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=;
Function cspline(Xold,Yold,Xvelold,Yvelold,XNew=0,YNew=0,Xvelnew,Yvelnew,XAccelNew,YAccelNew,Time=3)

;Init Local Variables
Local x,y,x0,y0,x1,y1,x2,y2,x3,y3
Local a,b,c,d,e,f,g,h,t#

;Coord#1 is the current object's X,Y (or X,Z if using 3D)
Color 0,255,0
X0=Xold : Y0=Yold
Text X0-4,Y0-16,"S"
Rect X0,Y0,3,3,1

;Calc Coord#2
Color 255,255,0
X1 = X0 + XVelOld
Y1 = Y0 + YVelOld
Text X1-4,Y1-16,"1"
Rect X1,Y1,3,3,1

;Calc Coord#3 (must calc after Coord#4)
Color 200,100,0
X2=XNew + XVelNew * Time + .5 * XAccelNew * Time^2
Y2=YNew + YVelNew * Time + .5 * YAccelNew * Time^2
Text X2-4,Y2-16,"2"
Rect X2,Y2,3,3,1

;Calc Coord#4
Color 255,0,0
X3=XNew
Y3=YNew
;X3=X2 - (XVelNew + XAccelNew * Time)
;Y3=Y2 - (YVelNew + YAccelNew * Time)
Text X3-4,Y3-16,"E"
Rect X3,Y3,3,3,1


;Calc Cubic Spline Points
RecursiveMathA=3*x2
RecursiveMathB=3*x1
RecursiveMathC=6*x1
RecursiveMathD=3*x0
RecursiveMathE=3*y2
RecursiveMathF=3*y1
RecursiveMathG=6*y1
RecursiveMathH=3*y0


A = X3 - RecursiveMathA + RecursiveMathB - x0
B = RecursiveMathA - RecursiveMathC + RecursiveMathD
C = RecursiveMathB - RecursiveMathD
D = x0
E = y3 - RecursiveMathE +RecursiveMathF - y0
F = RecursiveMathE - RecursiveMathG + RecursiveMathH
G = RecursiveMathF - RecursiveMathH
H = y0


;Draw the Spline
For t#=0 To 1 Step .001
	x = A*t^3 + B*t^2 + C*t + D
	y = E*t^3 + F*t^2 + G*t + H 
Plot x,y
Next

End Function
(Offline)
 
Ответить с цитированием
Старый 30.04.2008, 22:33   #12
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Тормоза при загрузке из AnimSeq

ненадо ничего переводить. просто вынеси инклюд за главный цикл (перед главнм циклом его поставь где нибудь, идеологически - лучше ближе к началу)
(Offline)
 
Ответить с цитированием
Старый 30.04.2008, 22:51   #13
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Ответ: Тормоза при загрузке из AnimSeq

Все-таки эти tormoz'a запаланили!
(Offline)
 
Ответить с цитированием
Старый 30.04.2008, 23:10   #14
jimon
 
Сообщений: n/a
Ответ: Тормоза при загрузке из AnimSeq

Dstorton111
все инклуды нужно писать только в начале исходника
представь что если напишешь в другом месте то не скомпилируется

по крайней мере хотя бы руки выпрямляют такие вещи
 
Ответить с цитированием
Старый 30.04.2008, 23:23   #15
Dstorton111
Оператор ЭВМ
 
Регистрация: 03.05.2007
Сообщений: 23
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Тормоза при загрузке из AnimSeq

Tadeus vbmenu_register("postmenu_80416", true); Спасибо за код, постараюсь использовать его макс. эффективно, хотя пока не знаю для чего.

ИЗВИНЯЮСЬ ПЕРЕД ВСЕМИесли не так поняли, или если я ступил по незнанию.

Под словом интерполяция я имел ввиду: Когда скорость иры подстраивается под FPS, А то я поставил ограничение на 50 FPS. Но чувствую что оставлять это просто так нельзя иначе зас...у(сорри загажу) весь проект ещё на начальном этапе.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создать прозрачную картинку Kurdt JAVA Micro Edition 2 28.02.2011 12:29
загрузчик 3ds mr.DIMAS C++ 0 24.11.2009 18:52
?Linux.загрузка индексированных файлов aureli0 C++ 4 21.09.2008 12:52
редактор физики(PhysXeditor) и загрузчик под него(PhysXeditorInc Dstorton111 3D-программирование 4 19.08.2008 23:21
Помогите разобраться с IK-Solver'ами Belamore 3D Моделирование 5 03.04.2008 21:39


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com