|
25.12.2007, 22:15
|
#1
|
ПроЭктировщик
Регистрация: 05.08.2007
Сообщений: 115
Написано 0 полезных сообщений (для 0 пользователей)
|
Вопрос о функциях..
У мя вопрос, когда я делаю новую функцию всегда выдаёт на неё ошибку типа этой:
'Function' can only appear in main program.((
|
(Offline)
|
|
25.12.2007, 22:28
|
#2
|
|
Re: Вопрос о функциях..
JeSss
это происходит когда ты пишешь функцию в цикле, типе, в другой функции и тд
|
|
|
26.12.2007, 01:11
|
#3
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Re: Вопрос о функциях..
JeSss, ты же английский в школе изучаеш ??
попытался бы и сам перевести !!
при включеном ДЕБАГЕ блиц выдает достоточно понятные обьяснения ошибкам !! стоит лиш подучить английский или запомнить что какая ошибка блица означает !!
|
(Offline)
|
|
26.12.2007, 01:23
|
#4
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Re: Вопрос о функциях..
JeSss, jimon меня опередил
Проверь, закрыл ли ты пердыдущую ф-ю прежде чем объявлять новую: End Function
Вообще, делай так: сразу пиши Function *** потом на другой строке End Function, затем ставишь курсор между ними и отодвигаешь строку вправо ([Tab] в блитзевом ИДЕ) - так будет сразу понятно, где у тебя функция и ты никогда не запутаешься, видно где она начинается и где что (точку вначале строки поставил, чтобы форум нормально отступ изобразил):
[blitz]
Function Preved (a)
. Print "ПРЕВЕД, МЕДВЕД №" + a + " !!"
End Function[/blitz]
при включеном ДЕБАГЕ блиц выдает достоточно понятные обьяснения ошибкам !!
|
Угу, однако частенько вылазит очень информатичное Memory Access Violation
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
26.12.2007, 02:52
|
#5
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Re: Вопрос о функциях..
Угу, однако частенько вылазит очень информатичное Memory Access Violation
|
Если это вылазит в дебаге, то ошибка семантическая. Вина программиста, компилятор ее не отследит.
|
(Offline)
|
|
27.12.2007, 21:34
|
#6
|
ПроЭктировщик
Регистрация: 05.08.2007
Сообщений: 115
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Вопрос о функциях..
Я всё проверил, всё нармально, каждая функция на своём месте, и всёравно..(
|
(Offline)
|
|
28.12.2007, 00:22
|
#7
|
|
Re: Вопрос о функциях..
Проверь еще раз! =)))
|
|
|
28.12.2007, 02:14
|
#8
|
Оператор ЭВМ
Регистрация: 01.12.2007
Сообщений: 39
Написано 6 полезных сообщений (для 7 пользователей)
|
Re: Вопрос о функциях..
Оно всегда так.....тк ты УВЕРЕН что всё норм но насамом деле гдето какаето мелочь....и ты ее пропустил....у меня както было я над 1 ошибкой парилься почти день....дык я чуть клаву не разбил.....ыыыыыыы
|
(Offline)
|
|
28.12.2007, 02:20
|
#9
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Вопрос о функциях..
JeSss, поставь нормальную IDE (Protean например)
там функции закрываются, и их можно вообще свернуть.
|
(Offline)
|
|
28.12.2007, 11:53
|
#10
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Re: Вопрос о функциях..
Исходник в студию! ©
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
04.01.2008, 22:56
|
#11
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: Вопрос о функциях..
У меня структура кода выглядет так:
Сначало инициализация графики
Затем константы и глобальные переменные
Затем типы
Затем уже начинается Главный цикл
Действия происходящие в цикле
закрываем цикл
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
...
Вот если у тебя будет примерно такой вид программы, то я думаю ты перестанешь путаться в коде.
|
(Offline)
|
|
05.01.2008, 02:18
|
#12
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Вопрос о функциях..
Гораздо легче функции и типы объявлять в разных инклюдах
Для основного цикла тоже свой.
Если игра большая, то и функции нужно разнести в несколько инклюдов.
В том числе меню, гуи и тд
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
05.01.2008, 12:49
|
#13
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: Вопрос о функциях..
Думаю к этому варианту приходит каждый новичок самостоятельно, а пока раз у него все в одном файле, то нужно ограждать каждую часть кода от других.
|
(Offline)
|
|
05.01.2008, 15:58
|
#14
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Ответ: Вопрос о функциях..
кстати, 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
|
(Offline)
|
|
15.01.2008, 23:50
|
#15
|
Бывалый
Регистрация: 12.10.2006
Сообщений: 737
Написано 131 полезных сообщений (для 452 пользователей)
|
Ответ: Вопрос о функциях..
а у меня структура - это что-то среднее между вариантами tormoz'а и H@NON'а ...
часть функций (самых главных) в конце кода, а все остальный в отдельном файле через инклуд.
ABTOMAT функцию Preved надо заюзать!
JeSss что посоветовать - не знаю - вроде, уже все сказали... код в студию! (с)
полюбому где-то косяк...
может, скобку где забыл поставить, или еще там какая мелочь...
поставь нормальную IDE (Protean например)
|
нет IDE лучше блокнота!
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Вопрос |
Черный крыс |
BlitzMax |
1 |
31.03.2009 09:30 |
Вопрос c++ и b3d |
LD |
Разработка LIB |
5 |
19.02.2009 19:22 |
Вопрос |
Fant |
3D-программирование |
8 |
05.03.2007 15:26 |
Часовой пояс GMT +4, время: 19:15.
|