Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax

Ответ
 
Опции темы
Старый 30.03.2009, 21:50   #1
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Перевод из b3d в bmax. простой вопрос

Вот в упор не помню , как перевести тип из б3д в бмакс.

For t1.CSGTriangleTYPE = Each CSGTriangleTYPE
If t1\mindex = 2
For t2.CSGTriangleTYPE = Each CSGTriangleTYPE
If t2\mindex = 1 And t2\tarid <> t1\id
If t2\del = 0
If CSGTrisIntersect(t1,t2) = 1
CSGSplit t1,t2
EndIf
EndIf
EndIf
Next
EndIf
Next
цитата из б3д.

как перевести на ксорс под бмаксом.

For t1:CSGTriangleTYPE = EachIn CSGTriangleTYPE
If t1.mindex = 2
For t2:CSGTriangleTYPE = EachIn CSGTriangleTYPE
If t2.mindex = 1 And t2.tarid <> t1.id
If t2.del = 0
If CSGTrisIntersect(t1,t2) = 1
CSGSplit t1,t2
EndIf
EndIf
EndIf
Next
EndIf
Next
так не сканает, он орет.

Простой вопрос - Нужно создавать тлист для этого? или можно это обойти? Просто создавать тлист очень проблематично будет.
(Offline)
 
Ответить с цитированием
Старый 30.03.2009, 22:36   #2
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Перевод из b3d в bmax. простой вопрос

В BlitzMAX в отличие от B3d "правильные" типы, они скорее уже классы.
Type Class_Name 'называем наш тип/класс
    Field object_var:String ' поле, тип переменной String
    Global gvar:Int 'общая для всех объектов этого типа переменная

    Function GetGvar:Int() 'статическая функция, т.е. оступна по имени типа/ класса
        return gval              'например так: Class_Name.GetGval()
    End function

    Method GetField:String() 'метод класса, доступен только посредством объекта,
        'имеет прямой доступ к полям класса относящимся к текущему объекту.
        ' например: Local g:Class_Name=new Class_Name; g.GetField()
        return object_var
    End function

    'есть 2 уникальных метода New и Delete
    'New - конструктор этот метод если он есть вызывается автоматически при создании нового объекта этого типа.
    'Delete - деструктор, вызывается автоматически при удалении из памяти объекта этого типа
End type 'завершаем
'переменные нашего типа создаются с помощью ключевого слова New:
Local obj:MyType=new MyType 'дословно: создать новую локальную переменную типа MyType. При это для этой переменной будет вызван метод New если он есть.

Удаление переменной:
obj=Null

------
А теперь о методах хзранения полученых переменных, независимо от типа, наш ли он или встроеный, переменные можно хранить в:
* Единичной переменной ( Local a:int=15 или Local obj:MyType=new MyType)
* В массиве: Local a:int[]=new int[100] или Local obj:MyType[]=new MyType[100]
* В кольцевом списке: Local list:TList=new TList; list.AddLast("Hello")
* В индексированом списке: Local dict:TMap=New TMap; dict.Insert(obj, "First")
__________________
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
G.A.D (31.03.2009), Данил (30.03.2009)
Старый 30.03.2009, 22:46   #3
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Ответ: Перевод из b3d в bmax. простой вопрос

Ну, собсно, SBJoker, ты крут )... расписал все, что не просил, по сути)... просто я давно не связывался с типами б3д, и собсно ,все там забыл... как и в бмакс, так как программирование на полгода бросал, в бмаксе подзабыл...)

в общеМ, все-таки , думаю, способа обойти нету, заменил.

Сдался, по сути.)
(Offline)
 
Ответить с цитированием
Старый 30.03.2009, 23:06   #4
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Ответ: Перевод из b3d в bmax. простой вопрос

В общем. перевожу булеановские функции с б3д на бмакс под ксорс.

Загнулся на xCountSurfaces , не видит меш ,и все. (

Думаю, код кидать бессмысленно, думаю, никто не захочет разбираться в 25 кб писанине...

но кину, надежда умерает последней.

Последний раз редактировалось Данил, 30.11.2009 в 20:55.
(Offline)
 
Ответить с цитированием
Старый 30.03.2009, 23:14   #5
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Перевод из b3d в bmax. простой вопрос

* В индексированом списке: Local dict:TMap=New TMap; dict.Insert(obj, "First")
ух ты. в блицмаксе даже такое есть. а он крут!
(Offline)
 
Ответить с цитированием
Старый 31.03.2009, 01:00   #6
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Перевод из b3d в bmax. простой вопрос

В блитзмаксе всё есть, а чего нет можно на нём же и написать
__________________
(Offline)
 
Ответить с цитированием
Старый 31.03.2009, 11:42   #7
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Ответ: Перевод из b3d в bmax. простой вопрос

Сообщение от SBJoker Посмотреть сообщение
В блитзмаксе всё есть, а чего нет можно на нём же и написать
подписываюсь.
__________________
(Offline)
 
Ответить с цитированием
Старый 31.03.2009, 12:50   #8
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Перевод из b3d в bmax. простой вопрос

э.х. забыл про наследование классов написать...
Кароче есть наследование классов, например:

Type MyExType Extends MyBaseType

End Type

После наследования класс нового типа всегда можно присваивать переменным базового типа, пользоваться локальными переменными базового типа как своими собственными. Пользоваться методами базового типа, если они не переопределены в текущем. В любом случае доступ даже к переопределёному методу базового класса возможен через объект Super. Например:
Super.DoMethod()

Доступ к свои методам помимо указания их имени, возможен посредством объекта Self. Например:
Self.DoMethod()

Эти возможности восновном для исключения неопределённости.

Зачем нужно наследование? Для расширения возможностей базового класса.
Например базовый класс Unit можно расширить до конкретных класов TSolder, TAircraft, TTechnic

В которых будут учтены особенности этих типов юнитов. Однако их можно все поместить в один список или массив и обрабатывать однотипно. Т.к. они фактически одного типа.
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всего один простой вопрос... ARTMAN 3D-программирование 3 22.04.2009 18:38
Подскажите в меру простой mp3-проигрыватель ABTOMAT Болтовня 24 30.03.2009 05:20
Реализация простой камеры. Данил 3D-программирование 22 18.11.2007 02:20
OpenGl простой вопрос Russ Delphi 5 07.10.2007 14:47


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com