forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Вопрос о функциях.. (http://forum.boolean.name/showthread.php?t=5435)

JeSss 25.12.2007 22:15

Вопрос о функциях..
 
У мя вопрос, когда я делаю новую функцию всегда выдаёт на неё ошибку типа этой:

'Function' can only appear in main program.((:''((

jimon 25.12.2007 22:28

Re: Вопрос о функциях..
 
JeSss
это происходит когда ты пишешь функцию в цикле, типе, в другой функции и тд

IGR 26.12.2007 01:11

Re: Вопрос о функциях..
 
JeSss, ты же английский в школе изучаеш ??
попытался бы и сам перевести !! ;)
при включеном ДЕБАГЕ блиц выдает достоточно понятные обьяснения ошибкам !! стоит лиш подучить английский или запомнить что какая ошибка блица означает !!

ABTOMAT 26.12.2007 01:23

Re: Вопрос о функциях..
 
JeSss, jimon меня опередил :)
Проверь, закрыл ли ты пердыдущую ф-ю прежде чем объявлять новую: End Function

Вообще, делай так: сразу пиши Function *** потом на другой строке End Function, затем ставишь курсор между ними и отодвигаешь строку вправо ([Tab] в блитзевом ИДЕ) - так будет сразу понятно, где у тебя функция и ты никогда не запутаешься, видно где она начинается и где что (точку вначале строки поставил, чтобы форум нормально отступ изобразил):

[blitz]
Function Preved (a)
. Print "ПРЕВЕД, МЕДВЕД №" + a + " !!"
End Function[/blitz]

Цитата:

при включеном ДЕБАГЕ блиц выдает достоточно понятные обьяснения ошибкам !!
Угу, однако частенько вылазит очень информатичное Memory Access Violation

alcoSHoLiK 26.12.2007 02:52

Re: Вопрос о функциях..
 
Цитата:

Угу, однако частенько вылазит очень информатичное Memory Access Violation
Если это вылазит в дебаге, то ошибка семантическая. Вина программиста, компилятор ее не отследит.

JeSss 27.12.2007 21:34

Re: Вопрос о функциях..
 
Я всё проверил, всё нармально, каждая функция на своём месте, и всёравно..(

Черный крыс 28.12.2007 00:22

Re: Вопрос о функциях..
 
Проверь еще раз! =)))

sSwSs 28.12.2007 02:14

Re: Вопрос о функциях..
 
Оно всегда так.....тк ты УВЕРЕН что всё норм но насамом деле гдето какаето мелочь....и ты ее пропустил....у меня както было я над 1 ошибкой парилься почти день....дык я чуть клаву не разбил.....ыыыыыыы:-D :crazy:

HolyDel 28.12.2007 02:20

Re: Вопрос о функциях..
 
JeSss, поставь нормальную IDE (Protean например)
там функции закрываются, и их можно вообще свернуть.

ABTOMAT 28.12.2007 11:53

Re: Вопрос о функциях..
 
Исходник в студию! ©

H@NON 04.01.2008 22:56

Ответ: Вопрос о функциях..
 
У меня структура кода выглядет так:
Сначало инициализация графики
Затем константы и глобальные переменные
Затем типы
Затем уже начинается Главный цикл
Действия происходящие в цикле
закрываем цикл
End
И уже потооом, в сааамом конце у меня идут функции

Код:

Graphics3d width, height, bits, mode
SetBuffer backBuffer()
SeedRnd MilliSecs()

const var1=1
const var2=2
...
global per1, per2, cam, point, quit=false
global abra, cada, bra
...
;=======MAIN CYCLE=============
While not Quit=true
If keyhit(esc) then quit=true
...
UpdateWorld()
...
RenderWorld()
...
Flip vsync
Wend
;=========END CYCLE=============
End
;=================================================
;=================FUNCTIONS=======================
Function Updategame()
...
End Function
;--------------------------------
Function InitWorld()
...
End Function
...

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

tormoz 05.01.2008 02:18

Ответ: Вопрос о функциях..
 
Гораздо легче функции и типы объявлять в разных инклюдах
Для основного цикла тоже свой.
Если игра большая, то и функции нужно разнести в несколько инклюдов.
В том числе меню, гуи и тд

H@NON 05.01.2008 12:49

Ответ: Вопрос о функциях..
 
Думаю к этому варианту приходит каждый новичок самостоятельно, а пока раз у него все в одном файле, то нужно ограждать каждую часть кода от других.

IGR 05.01.2008 15:58

Ответ: Вопрос о функциях..
 
кстати, JeSss, такая ошибка будет если ты НЕ закрыл цикл !! даже если у тебе в структуре программы все норм !! и в конце программы стоит END !!
Graphics3D 800,600,32,2
HidePointer
Global FPS,LastCheck,Frames
C = CreateCamera()
PositionEntity C,0,30,0
plan = CreatePlane ()
Repeat
UpdateWorld
RenderWorld
Flip False
;Until KeyHit(1)
End
Function GetFPS()
Frames = Frames + 1

If MilliSecs() > LastCheck+1000 Then
LastCheck = MilliSecs()
FPS = Frames
Frames = 0
EndIf
Return FPS
End Function

avel 15.01.2008 23:50

Ответ: Вопрос о функциях..
 
а у меня структура - это что-то среднее между вариантами tormoz'а и H@NON'а ...
часть функций (самых главных) в конце кода, а все остальный в отдельном файле через инклуд.
ABTOMAT функцию Preved надо заюзать! :-)
JeSss что посоветовать - не знаю - вроде, уже все сказали... код в студию! (с)
полюбому где-то косяк...
может, скобку где забыл поставить, или еще там какая мелочь...
Цитата:

поставь нормальную IDE (Protean например)
нет IDE лучше блокнота! :)


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

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