|
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
|
Злобный Админ
Регистрация: 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 за это полезное сообщение:
|
|
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
|
☭
Регистрация: 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
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Перевод из b3d в bmax. простой вопрос
В блитзмаксе всё есть, а чего нет можно на нём же и написать
__________________
|
(Offline)
|
|
31.03.2009, 11:42
|
#7
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Ответ: Перевод из b3d в bmax. простой вопрос
Сообщение от SBJoker
В блитзмаксе всё есть, а чего нет можно на нём же и написать
|
подписываюсь.
|
(Offline)
|
|
31.03.2009, 12:50
|
#8
|
Злобный Админ
Регистрация: 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)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:47.
|