forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=109)
-   -   Несколька вопросов мо БлицМаксу. (http://forum.boolean.name/showthread.php?t=5262)

ЛысыЙ_Чук-Иванчук 09.10.2007 03:30

Не люблю темы общевики. но создовать дафига тем не очень охота;)
Итак при переползании с Б3Д на БМ есть вопросы.
1- с чего начну, Нету чтоли Mouse X, Y, Z- speed() ?
2- Мне нужна чтобы переменая в функции вместе с Var т.е.
Function( BlaBlaVBla... , Vop:Int=0, Perem:int Var)
Была не обязательна.
?

jimon 11.12.2007 08:36

Re: Несколька вопросов мо БлицМаксу.
 
1) нету
сам делай

2) чего ? передача указателя с дефолтом в null ?
а вот хз слегка :) зачем такой маразм надо

может быть Function (bla:int ptr = null)
а потом из указателя добываешь переменую

dimanche13 11.12.2007 11:04

Re: Несколька вопросов мо БлицМаксу.
 
переменная с var не обязательна??? а зачем она тогда вообще нужна?

alcoSHoLiK 11.12.2007 12:51

Re: Несколька вопросов мо БлицМаксу.
 
После первого необязательного параметра все остальные должны быть также необязательными.

ЛысыЙ_Чук-Иванчук 11.12.2007 18:47

Цитата:

Сообщение от dimanche13
переменная с var не обязательна??? а зачем она тогда вообще нужна?

Для UI, т.е. для кнопок;)
Эх кажись так неполучтся. хотя очень нада:(

Итак дальше=)
3- Вчем заключается нужность -Method-дов, пока они у меня прекрасно заменяются функциями?

jimon 12.12.2007 09:17

Re: Несколька вопросов мо БлицМаксу.
 
ЛысыЙ_Чук-Иванчук
читай
http://ru.wikipedia.org/wiki/Объектн...ограммирование
если не поймешь, то толком тебе никто не обьяснит :)

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

типа пример
Код:

Type TEnemy
Field aa#
Method Update() Abstract
End Type

Type TEnemyBot Extends TEnemy
Field bb#
Method Update()
aa = 1
bb = 1
End Method
End Type

Type TEnemyPlayer Extends TEnemy
Field cc#
Method Update()
aa = 1
cc = 1
End Method
End Type

enemy1:TEnemy = new TEnemyBot
enemy2:TEnemy = new TEnemyPlayer

enemy1.Update() 'по сути вызов разных функций
enemy2.Update()

'из TEnemy доступна переменая только aa
debuglog enemy1.aa
'остальные достаем приведением типов
debuglog TEnemyBot(enemy1).bb
debuglog TEnemyPlayer(enemy2).cc

типа если у тебя прога использует только TEnemy как таковой
то при изменении чего-то в TEnemyBot - тебе по сути ничего менять больше не надо

ЛысыЙ_Чук-Иванчук 14.12.2007 07:17

Re: Несколька вопросов мо БлицМаксу.
 
jimon- Спасибо!
4-Итак еще вопрос как сделать чтобы функция подсвечивалась?

jimon 14.12.2007 08:30

Re: Несколька вопросов мо БлицМаксу.
 
ЛысыЙ_Чук-Иванчук
всмысле ? в стандартном IDE или где или как ? :)

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

oxid 14.12.2007 17:08

Re: Несколька вопросов мо БлицМаксу.
 
Цитата:

Сообщение от alcoSHoLiK
После первого необязательного параметра все остальные должны быть также необязательными.

В БМ - нет и необязательные параметры могут быть и посредине и вначале списка аргументов функции. И если вопрос в этом, - никто не мешает поменять последовательность аргументов.

Указатель вполне заменяет VAR, которая сделана для того, чтобы была однозначность задания указателя и не было вариантов с нулевым указателем - это ее назначение (сейф-программирование :-D). Ну еще и удобность написания кода.

ЛысыЙ_Чук-Иванчук 14.12.2007 18:42

Re: Несколька вопросов мо БлицМаксу.
 
Цитата:

Сообщение от jimon
ЛысыЙ_Чук-Иванчук
всмысле ? в стандартном IDE или где или как ? :)

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

Какрас в том и проблема, замутил я модуль он спокойно работает при этом функции из него НЕ подсвечиваются:(

jimon 14.12.2007 22:05

Re: Несколька вопросов мо БлицМаксу.
 
ЛысыЙ_Чук-Иванчук
в blide надо включить расширеный поиск функции,
написать документацию к модулю,
потом пересоздать документацию модулей (функция такая)
и потом уже нажать в blide на поиск новых модулей

возможно ето поможет, правда зачем тебе ето ?

ЛысыЙ_Чук-Иванчук 15.12.2007 04:03

Re: Несколька вопросов мо БлицМаксу.
 
Цитата:

Сообщение от jimon
[b] правда зачем тебе ето ?

Чтобы функции из Xors-a подсвечивались- код становиться читабельнее!;)
Так-как в ООП тока начал въезжать;)
5- Еть тут штуковина не очень понятная мне- что делает то что выделено ЖИРНИм?:)
;-------------------------------------------------------------

Extern "win32"
Function FindWindowA:Int(class:Int,title$z)
Function LoadLibraryA(lib$z)
Function GetProcAddress:Byte Ptr(lib%,fname$z)
End Extern


Global lib:Int = LoadLibraryA("xors3d.dll")

Global xGraphics3D(width%, height%, depth%, mode%, vsync%) "win32"
xGraphics3D=GetProcAddress(lib,"_xGraphics3D@20")

jimon 15.12.2007 10:46

Re: Несколька вопросов мо БлицМаксу.
 
ЛысыЙ_Чук-Иванчук
импортирует функции из виндовской либы

FindWindowA - ищет указатель окна
LoadLibraryA - динамически загружает либу
GetProcAddress - получает адресс функции из динамически загруженой либы

а вот Global xGraphics3D(width%, height%, depth%, mode%, vsync%) "win32" хз
то что ето обьявляет функцию ето да, а вот что там значит "win32" я хз
и хз можно ли так делать

ЛысыЙ_Чук-Иванчук 15.12.2007 17:32

Re: Несколька вопросов мо БлицМаксу.
 
Цитата:

Сообщение от jimon
ЛысыЙ_Чук-Иванчук
а вот Global xGraphics3D(width%, height%, depth%, mode%, vsync%) "win32" хз
то что ето обьявляет функцию ето да, а вот что там значит "win32" я хз
и хз можно ли так делать

В том то и дело что работает!:)
Я так понял оно типа присваевает етой глобальной это-
Цитата:

Extern "win32"
Function FindWindowA:Int(class:Int,title$z)
Function LoadLibraryA(lib$z)
Function GetProcAddress:Byte Ptr(lib%,fname$z)
End Extern

oxid 15.12.2007 18:48

Re: Несколька вопросов мо БлицМаксу.
 
"win32" после функции (или ссылки на функци, как в данном примере), определаяет способ ее вызова: способ и порядок передачи аргуметнов в стеке и регистрах, и работу со стеком вызовов. В данном случае - стандартный вызов для винды. Аналог - STDCALL в директивах для С/С++

А ты бы спросил у того, кто либу делал - а он бы тебе все точно рассказал :)


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

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