forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Тормоза при загрузке из AnimSeq (http://forum.boolean.name/showthread.php?t=5969)

Dstorton111 30.04.2008 10:53

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

Может я не там обновляю модель чела в игре?:wallbash:

H@NON 30.04.2008 11:24

Ответ: Тормоза при загрузке из AnimSeq
 
мб ты грузишь анимацию в цикле? хотелось бы видеть кусок кода, где возможна ошибка, телепаты как всегда на отдыхе.

Dstorton111 30.04.2008 16:14

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

Кстати, подкиньте ктонить код интерполяции, желательно в примере

tormoz 30.04.2008 17:56

Ответ: Тормоза при загрузке из AnimSeq
 
Ктож инклюды вызывает в цикле ?
Вызывай функции.
А инклюды подключаются ОДИН раз до цикла

dimanche13 30.04.2008 18:39

Ответ: Тормоза при загрузке из AnimSeq
 
Я, конечно, много повидал, но инклуды в цикле - это знаете ли, свежо!

HolyDel 30.04.2008 19:01

Ответ: Тормоза при загрузке из AnimSeq
 
вы народ особо не удивляйтесь. нет тут ничего удивительного, это просто неправильная блицовая терминология, надо было подключение обозвать uses или там add, но не include.
похоже на лексическое включение.

Dstorton111 30.04.2008 19:12

Re: Тормоза при загрузке из AnimSeq
 
Скажу пару слов о моём использовании Include

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

P.S. Главное во всём знать меру
Насчёт анимации - Есть мысль что это тормоза компа, скорей всего вирусняки, базу давно не обнавлял
Цитата:

А инклюды подключаются ОДИН раз до цикла
Ну знаете ли, и любовью до свадьбы вроде как заниматься нельзя :-)

tormoz 30.04.2008 19:46

Ответ: Тормоза при загрузке из AnimSeq
 
Бу га га !
Он еще и спорит !

HolyDel 30.04.2008 21:37

Ответ: Тормоза при загрузке из AnimSeq
 
Dstorton111, а попробовать сделать как тебе советуют люди далеко не первый год знакомые с блицом? в том числе и с пресловутым include?

Dstorton111 30.04.2008 22:19

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

Кстати как насчёт ИНТЕРПОЛЯЦИИ !!! Помогите хоть с ней, а то останется в переходе рядом с бомжами стоять с табличкой " Помогите исходником на прогу " :-) :-) :-)

Tadeus 30.04.2008 22:26

Ответ: Тормоза при загрузке из 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


HolyDel 30.04.2008 22:33

Ответ: Тормоза при загрузке из AnimSeq
 
ненадо ничего переводить. просто вынеси инклюд за главный цикл (перед главнм циклом его поставь где нибудь, идеологически - лучше ближе к началу)

Tadeus 30.04.2008 22:51

Ответ: Тормоза при загрузке из AnimSeq
 
Все-таки эти tormoz'a запаланили! :crazy:

jimon 30.04.2008 23:10

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

по крайней мере хотя бы руки выпрямляют такие вещи

Dstorton111 30.04.2008 23:23

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

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

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

Dstorton111 30.04.2008 23:29

Re: Тормоза при загрузке из AnimSeq
 
Цитата:

представь что если напишешь в другом месте то не скомпилируется
А смысл, Ведь цель - написать быстро эффективно и удобно, а не выкручиваться из того что есть. Я не хочу быть ограничен средствами и методами разработки. Если что-то есть что я эффективно и с пользой могу пользовать то я буду это делать.

jimon 01.05.2008 00:17

Ответ: Тормоза при загрузке из AnimSeq
 
Dstorton111
писать быстро, эффективно и удобно можно только когда поймешь
что такое медленно, неэффективно и неудобно

ошибки программиста просто всплывают не скоро ...
обычно ошибочное решение всплывает через 2-3 месяца работы
и тянет за собой две недели исправления кода

вот напишешь ты сто инклудов ... и завалится код
будешь переписывать все заново ? скорее проект забросишь

Dstorton111 01.05.2008 04:23

Re: Тормоза при загрузке из AnimSeq
 
Цитата:

писать быстро, эффективно и удобно можно только когда поймешь
что такое медленно, неэффективно и неудобно

ошибки программиста просто всплывают не скоро ...
обычно ошибочное решение всплывает через 2-3 месяца работы
и тянет за собой две недели исправления кода

вот напишешь ты сто инклудов ... и завалится код
будешь переписывать все заново ? скорее проект забросишь
Jimon - А может тогда ты за меня код напишешь?
Все тут такие спецы млин, опыта выше крыши, знаний хоть профессором в институт, а кроме философских рассуждений уж извините господа нихрена нету.

Уже сколько прошу этот факинговый код на интерполяцию FPS?

Ещё раз говорю, не вижу неудобств использования инклудов, они костяк мсоей проги, удобная фишка от которой я не откажусь, максимум что я зделаю, буду грузить не командой Include а чем-нибудь вроде Uses

А вы, господа крутые программёры если не помогаете дельными советами, то уж лучше бы не мешали. Вторая страница этой ветки уж пошла а толку то от этого почти ноль.

tormoz 01.05.2008 04:53

Ответ: Тормоза при загрузке из AnimSeq
 
Мдя.
Если ты такой крутой, то нафига ваще тут вопросы задаешь ?

1 инклуды все всегда подрубают вне цикла.
Если тебе закон не писан - то ты просто упрямый нуб

Код:

Include filename$
Parameters
filename$ - name of .bb file to be 'Include(d)' in quotes. 

Description
Includes the contents of the specified .bb file in the current source code file.

Useful for when you're code gets too big, or you just want to organise functions that you've finalised and functions that you're working on.

The Include command effectively "cuts and pastes" the contents of the .bb file to be included into the current file at the point of the Include function call, temporarily, before being passed to the compiler to Execute.

Note that each .bb file can only be included once.

2 код стабилизатора фпс многократно выкладывался на форуме. заюзай поиск - будет счастье

3 будешь грубить - хрен тебе кто поможет. скорее всего будешь менять ник - ты уже испоганил репутацию себе

Все три пункта сложить - вырисовывается портрет типичного ламера.
Не хочешь быть ламером - не огрызайся, а принимай к сведению

Dstorton111 01.05.2008 09:45

Цитата:

Если ты такой крутой, то нафига ваще тут вопросы задаешь ?
Не хочешь быть ламером - не огрызайся, а принимай к сведению
Да, Да, Да и ещё раз да. Сорвался.
Не, ну если я в каждом сообщении просил помощи в конкретном вопросе а меня всё тыкали носом как кошака нагадившего на ковре в этот Incude.
Меня реально заводит когда учат чему не просят.
Не судьба было сразу отправить меня на нужную статью по FPS и не напрягаться больше?

Цитата:

Note that each .bb file can only be included once.

Будет время переделаю

Кстати поиск на форуме никуда не годится, жму FPS а мне Sorry - no matches. Please try some different terms

jimon 01.05.2008 13:30

Ответ: Тормоза при загрузке из AnimSeq
 
1) помогут : http://blitzetc.blitzmax.ru/index.php/Каталог:Статьи
2) http://blitzetc.blitzmax.ru/index.ph...ия_FPS_в_играх
http://forum.boolean.name/showthread.php?t=5
3)можно еще в гугле поискать, формат : "ключевые слова site:на_каком_сайте_искать"

можешь поискать на blitz.pp.ru/forum/

Dstorton111 01.05.2008 14:12

Re: Тормоза при загрузке из AnimSeq
 
Thanks GOD!!:rolleyes: Вот реальный конструктивный диалог, JIMON респект:cool:

Dstorton111 01.05.2008 15:34

Re: Тормоза при загрузке из AnimSeq
 
Кстати, кто там говорил насчёт Инклудов? У мененя например этот код из функции не работает абсолютно.
Я наверно туплю и не так программлю, но подскажите если знаете в чём моя ошибка

Код:

  Select WG_GetEvent() ;//Проверка нажатия элементов меню
  Case WGV_EventElementClick
    Select WG_EventSource()
  Case but_0;//Старт
          GState=1
  Case but_5;//Выход   
          End
  Case but_7;//Настройки
          WG_HideElement (win_autor)
          WG_SetElementY(win_autor,1000) 
          WG_ShowElement (win_opt)
          WG_SetElementY(win_opt,200)     
  Case but_8;//Авторы
          WG_HideElement(win_opt)
          WG_SetElementY(win_opt,1000)
          WG_ShowElement (win_autor)
          WG_SetElementY(win_autor,200)
  End Select
 End Select


tormoz 01.05.2008 21:14

Ответ: Тормоза при загрузке из AnimSeq
 
И где тут функция ?

Dstorton111 01.05.2008 23:10

Re: Тормоза при загрузке из AnimSeq
 
Цитата:

И где тут функция ?
Здесь ищите строку Include "Update_Menu.bb";//Рисуем Графику Меню
Код:

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 ; Если Пауза
      Pause_Game()
   
  Case 1 ; Если Нажали на Старт
        Select Gstarted; предыдущее состояние игры
    Case 0; Если Старт
        Include "new_game.bb" ; Сдесь грузим уровень. Создаём Игрока "
    Case 1 ; Если Продолжить  //  цикл обновления программы
             
    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 "Update_Menu.bb";//Рисуем Графику Меню
 Flip 0
Wend
GameFree()
End

Include "Functions.bb";// Основные функции программы

Здесь cам файл Update_Menu.bb
Цитата:

;========== Обновляем Меню ======
If MilliSecs()-timefps<1000 Then
fps=fps+1
Else
screenfps=fps
fps=0
timefps=MilliSecs()
speed[0]=.1*30/screenfps
speed[1]=.15*30/screenfps
speed[2]=.2*30/screenfps
WGV_ContextMenuShowSpeed#=speed[1]
WGV_ContextMenuChangeAlphaSpeed#=speed[0]
WGV_WindowShowSpeed#=speed[2]
WGV_WindowChangeAlphaSpeed#=speed[0]
WGV_WindowFurlSpeed#=speed[2]
WGV_ElementShowSpeed#=speed[2]
WGV_ElementChangeAlphaSpeed#=speed[0]
EndIf
Select WG_GetEvent() ;//Проверка нажатия кнопок меню
Case WGV_EventElementClick
Select WG_EventSource()
Case but_0;//Старт
GState=1


Case but_5;//Выход
End
Case but_7;//Настройки
WG_HideElement (win_autor)
WG_SetElementY(win_autor,1000)
WG_ShowElement (win_opt)
WG_SetElementY(win_opt,200)
Case but_8;//Авторы
WG_HideElement(win_opt)
WG_SetElementY(win_opt,1000)
WG_ShowElement (win_autor)
WG_SetElementY(win_autor,200)
End Select
End Select
ТАк вот, Если файл Update_Menu.bb загнать в функцию и вызывать именно функцию вместо Include, ТО меню не реагирует на нажатия, то-есть функция не обробатывается

Ну, я ведь ламер, незнаю как заставить код вызываться из функции. Господа гуру для вас то делов на минуту, помогите!!!

tormoz 01.05.2008 23:30

Ответ: Тормоза при загрузке из AnimSeq
 
Код:

; Function Example

; Get the user's name
name$=Input$("Enter Your Name:")

; Call a function to print how many letters the name has
numletters(name$);

; Let's get something BACK from the function
thefirst$=firstletter(name$)

; Now print results
Print "Was the first letter an 'S'? (1=True/0=False)" + thefirst$

;The program basically ends here, because functions don't run unless called.

; The actual function
Function numletters(passedname$)
Print "Your name has " + Len(passedname$) + " letters in it."
End Function

; Function to see if the first letter is S
Function firstletter(passedname$)

; If the first letter is an 'S' then return from the function a true value
If Left$(passedname$,1) = "S" Then
Return True

; Otherwise, return false
Else

Return False

End If
End Function

Еще покури глобальные и локальные переменные
И запомни:
инклюды в цикле не вызывают !
Вызывают функции из инклюдов

Dstorton111 01.05.2008 23:46

Re: Тормоза при загрузке из AnimSeq
 
Цитата:

Еще покури глобальные и локальные переменные
И запомни:
инклюды в цикле не вызывают !
Вызывают функции из инклюдов
Пробовал я объявлять все переменные из этого куска кода, и потом ставить функцию, но по нулям.

Может получиться потом чтонибудь сделать но в данный момент кроме инклуда пока ничего не работает

tormoz 02.05.2008 01:42

Ответ: Тормоза при загрузке из AnimSeq
 
speed[0] - это массив ?
Объяви его нормально - глобалом в начале инклюда с этой функцией

Dim speed(10)
квадратными скобками обозначаются локальные массивы, которые доступны только внутри функции.
И запомни: ВСЕ локальные переменные и массивы при выходе\входе в функцию обнуляются

Venom 02.05.2008 08:16

Ответ: Тормоза при загрузке из AnimSeq
 
Цитата:

Сообщение от tormoz (Сообщение 80463)
И запомни:
инклюды в цикле не вызывают !

Да что вы пристали то к человеку, если ему удобно выносить части кода в отдельные файлы, пускай. Какая разница где будет include, препроцессор блица просто заменит его на код в подключаемом файле, другое дело что в этом файле, само собой инициализацию и функции надо вынести за цикл.

HolyDel 02.05.2008 16:34

Ответ: Тормоза при загрузке из AnimSeq
 
Цитата:

Да что вы пристали то к человеку, если ему удобно выносить части кода в отдельные файлы, пускай. Какая разница где будет include, препроцессор блица просто заменит его на код в подключаемом файле, другое дело что в этом файле, само собой инициализацию и функции надо вынести за цикл.
правда-правда? почему то мне нигде не встречалась эта информация.

Venom 02.05.2008 19:12

Ответ: Тормоза при загрузке из AnimSeq
 
Цитата:

Сообщение от HolyDel (Сообщение 80482)
правда-правда? почему то мне нигде не встречалась эта информация.

Нда, а я думал что это должен знать любой уважающий себя программист. Во всех языках (поддерживающих эту директиву) include является директивой препроцессора, которая указывает ему включать содержимое указанного файла, и блиц в этом не исключение.

HolyDel 02.05.2008 19:42

Ответ: Тормоза при загрузке из AnimSeq
 
Цитата:

Нда, а я думал что это должен знать любой уважающий себя программист. Во всех языках (поддерживающих эту директиву) include является директивой препроцессора, которая указывает ему включать содержимое указанного файла, и блиц в этом не исключение.
практика - наше все! недай "неподходящим названиям" захавать свой мозг!

итак, небольшая практическая разборока:
C++

incl.h
Код:

1
main.cpp
Код:

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow)
{
        int a=0;
        while
        (
        #include "incl.h"
        )
        {
                a++;
                if(a>10000)break;
        }
        return 0;
}

компилится. работает.

Блитц3Д

incl.bb
Код:

1
main.bb
Код:

While Include "incl.bb"
        a=a+1
        If(a>10000) Then Exit
Wend

не компилится ((((


к слову
Код:

While 1
        a=a+1
        If(a>10000) Then Exit
Wend

компилится и работает как надо

здается мне что выделенная часть твоей цитаты == false. препроцессора у блица нет, инклюдются файлы в блице каким то другим загадочным образом.

Venom 02.05.2008 21:13

Ответ: Тормоза при загрузке из AnimSeq
 
Ну да, в блице препроцессора как такого нет, его роль исполняет многопроходный компилятор. К сожалению проверка синтаксиса у него стоит на первом месте, почему приведенная тобой и ей подобные конструкции недопустимы, а вот отдельный синтакс-независимый кусок кода можно включать без проблем.
Вообще, я это все к тому что include не функция, а директива, и вызов ее в цикле ни к чему плохому не приведет.


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

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