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=4494)

Damp 20.09.2007 16:11

Re: Загрузка
 
Ты недочитал - (например как у визуальных языков).
Имеется ввиду таймер-прерывание. Ставишь ему интервал скажем 1000мс и его функция (в д. случае обновление статуса) вызывается независимо ни от каких процессов 1 раз в секунду, на блице таких нет, а жаль...

Noah 20.09.2007 16:31

Re: Загрузка
 
а что кто может кратко рассказать о программировании для двух потоков? (можем отступить от B3D, но тогда только пинципы, а то с семантикой языков бедновато)

Damp 20.09.2007 16:54

Re: Загрузка
 
Принципы просты - объектно ориентированное программирование :)
Если в блице программа идет от строчки к строчке, то в ооп делаются прерывания на какие-то события.
Блиц тоже частично ооп, но не так продвинут по этой части как допустим его коллега вижуал бэйсик.
Где-то даж тема была, что есть dll позоляющая грузить ресурсы отдельным потоком, но ограничений много и неудобств.

Noah 20.09.2007 17:02

Re: Загрузка
 
"в ооп делаются прерывания на какие-то события" сокраментальная для меня фраза, вот где мезаханизм то )) thnks

dimanche13 20.09.2007 18:32

Re: Загрузка
 
При чем здесь прерывания на какие-то события? Бмакс ООП язык, а Б3Д - не ООП. вот и всё.

IGR 20.09.2007 18:35

Re: Загрузка
 
Noah, юзай goto !! :)

Noah 20.09.2007 18:41

Re: Загрузка
 
Кстати goto ) никогда не пользовал

Я о прнципиальной схеме выполнния кода:
не ООП - последовательное выполнение
ООП - есть контролирующая процесс оболочка реализцющая возможность прерываний
(на сколько понял; поправьте если что или отошлите к инфе раскрывающей этот вопрос)

IGR 20.09.2007 18:48

Re: Загрузка
 
http://ru.wikipedia.org/wiki/Объектн...ограммирование

jimon 20.09.2007 18:55

Re: Загрузка
 
блин, "идиоты !"
возможность программы работать с несколькими потоками
ну скажите мне хоть одну вещь которая относится здесь К ООП ?!
блин, ваще ... в блице3д просто нету встроенных средств
управления мультипоточностью
а так мультипоточность не зависит от возможностей языка на прямую :)

что у меня :
в TGui запихан такой код :
Код:

        Field LoadingCurrentState%
        Field LoadingMaxState% = 130
        Field LoadingCountStates% = 0
        Field LoadingBarGui:TGuiProgressBar
        Field LoadingImage:TResourceImage
       
        Function LoadingBarInit()'draw first loading screen
                SetClsColor 0,155,208
                Cls
                Flip 0
        End Function
       
        Method LoadingBar(StateValues% = 1)'work with loading screen

                'if loading bar isnt ever created - please create them
                If LoadingBarGui = Null Then
                        LoadingBarGui = TGuiProgressBar.Create(GraphicsWidth() / 2 - 100,GraphicsHeight() / 2 + 32,200,20)
                End If
               
                If LoadingImage = Null Then
                        LoadingImage = GetResImage("Menu_PleaseWaitLoading")
                End If
               
                'add states
                LoadingCurrentState:+StateValues
               
                'check if max states < current states .. them recalculate max states
                If LoadingCurrentState > LoadingMaxState Then
                        LoadingMaxState = LoadingCurrentState
                End If
               
                'setup progress bar values
                LoadingBarGui.SetValue(LoadingCurrentState,LoadingMaxState)
               
                'update gui module
                Gui.Update()
               
                'draw loading screen
                SetClsColor 0,155,208
                Cls
                DrawImage LoadingImage.Image(),GraphicsWidth() / 2,GraphicsHeight() / 2
                Gui.Draw()
                Flip
               
                'If KeyHit(key_f6) Game.ScreenShot()
        End Method
        Method LoadingBarClose() 'close loading bar
                'free loading bar
                LoadingBarGui.Free()
                LoadingImage = Null
               
                'if we need to calculate this shit - get fuck out message
                If LoadingCountStates = 1 Then
                        RuntimeError "LoadingBar Maximum up to "+LoadingMaxState+" !!!"
                End If
               
                'clear screen
                Cls
                Flip 0
        End Method

потом загрузка :
1) Инит екрана
2) создает ресур манагер
3) грузит ресурсы нужные для ядра :)
4) создает гуи
5) создает екран загрузки
6) все остальное

просто при каждой загрузке ресурса стоит вызов Gui.LoadingBar()
и все

mr.DIMAS 20.09.2007 19:29

Re: Загрузка
 
Цитата:

блин, "идиоты !"
что то смахивает на флейм

HolyDel 21.09.2007 01:07

Re: Загрузка
 
ну блин, есть же либа для б3д - для мультиипоточности.
авоторы чо, зря ночами неспали разрабатывая сие чудо?
и уже в отдельной, выведенной в отдельной поток ф-ии пишеш чо те нада.

Damp 21.09.2007 10:12

Re: Загрузка
 
" При чем здесь прерывания на какие-то события? "
Как причем...? Привсем. Это главный принцип ооп. Есть событие - есть работа, нет - цпу простаивает.
В ооп все функции (окна, кнопки, поля ввода и .т.д.) явл. грубо говоря отдельными прогами (объектами) делящими между собой цпу и общие переменные, и вызываемые ТОЛЬКО по событию (нажатие кнопки, открытие сдрома, истечение интервала таймера).
Прерываение.. не имею ввиду int , и на самом-то деле ни каких параллельных потоков нет... просто время проца делится между всеми поочереди.

IGR 21.09.2007 11:11

Re: Загрузка
 
to HolyDel, что за лыба ??
дай ссылу плиз !!

Noah 21.09.2007 11:57

Re: Загрузка
 
:) Хотя бы название

всёж не спроста у меня голова на плечах )

dimanche13 21.09.2007 13:49

Re: Загрузка
 
Цитата:

Сообщение от Damp
" При чем здесь прерывания на какие-то события? "
Как причем...? Привсем. Это главный принцип ооп. Есть событие - есть работа, нет - цпу простаивает.

Это не главный принцип ООП, да и не принцип ООП вовсе. Работу с таймерами и прерваниями можно сделать и "процедурно программируя". Почитай про ООП. Вот его основные принципы: инкапсуляция, наследование и полиморфизм. http://licrym.org/samouch/7/36/gl10/gl10_1.html


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

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