Показать сообщение отдельно
Старый 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)
 
Ответить с цитированием