forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   BlitzMax (http://forum.boolean.name/forumdisplay.php?f=104)
-   -   Возможно ли в BMax (http://forum.boolean.name/showthread.php?t=14784)

maxturbo 25.05.2011 13:51

Возможно ли в BMax
 
Возможно ли в BMax ниже перечисленное :)
Условная компиляция!
Виртуальные функции!
Указатели!
Загрузка текстур из ОЗУ и копирование кусков текстуры с масштабом!
И еще бы хотелось услышать про Blitz3D все выше перечисленное :)
За ранее Благодарю :)

Черный крыс 25.05.2011 14:35

Ответ: Возможно ли в BMax
 
(случайно нажал)

Черный крыс 25.05.2011 14:37

Ответ: Возможно ли в BMax
 
BMax :
1) Да.
2) Да.
3) Да.
4) Да.

оговорка №1 : Препроцессор БМакса не позволяет обьявлять свои лексемы, решение проблеммы : Написать свой препроцессор.

оговорка №2 : Смотря что ты имеешь ввиду по словом "виртуальный". В понятии БМакса следующий код :

Код:

Type TAbstract Abstract
    Function Load(path:String) Abstract
End Type
 
Type TImplement Extends TAbstract
    Function Load(path:String)
        ...
    End Function
End Type

То тут в классе TAbstract функция Load(path:String) - является виртуальной.

B3D :
1) Нет. Пиши свой препроцессор.
2) Нет.
3) Нет.
4) Нет. Да, если юзать сторонние либы.

maxturbo 25.05.2011 14:45

Ответ: Возможно ли в BMax
 
А вот я находил препроцессор здесь на форуме на BMax, он я так понимаю тоже не позволяет объявлять свои лексемы? Или он единственный и существует? :)

Черный крыс 25.05.2011 14:55

Ответ: Возможно ли в BMax
 
Есть препроцессор, который написал Стас aka SBJoker, он позволяет почти все, только один минус - в режиме пошаговой отладки некорректно подсвечиваются строчки с ошибкой. Наскок я знаю, Стас забросил проект.

maxturbo 26.05.2011 08:09

BMX Preprocessor
 
Или у меня руки кривые, или это баг в препроцессоре :)
Поставил вот этот препроцессор BMX Preprocessor но теперь не могу скомпилировать модули на BMax...
Раньше без препроцессора компилировал вот так:
Запускаю cmd перехожу в папку BlitzMax\bin и прописываю bmk makemods xorsteam.xors3d Но ни чего не получается! Может кто то объяснит мне, что ни так я делаю? :)

КТО НИБУДЬ :SOS:
Добавлено:
И еще такой вопрос по BMax'y
Почему не работает в MaxIDE Build Modules ???
MinGW стоит, переменные прописал так:
Панель управления->Система->Дополнительно->Переменные среды
Системные переменные добавил в Path путь до MinGW\bin
Что опять не так делаю :SOS:

SBJoker 26.05.2011 10:20

Ответ: Возможно ли в BMax
 
теперь ты должен обращаться к bmk_orig емнип.

maxturbo 26.05.2011 11:32

Ответ: Возможно ли в BMax
 
Все с MinGW разобрался, что было так и не понял, но факт в том что все заработало :)
Добавлено:
Как структуры с С++ перевести на BMX?
Вот есть структура к примеру:
Код:

struct MAGIC_POSITION
{
        float x;
        float y;
        float z;
};
// Структура для хранения треугольника
struct MAGIC_TRIANGLE
{
        MAGIC_POSITION vertex1;
        MAGIC_POSITION vertex2;
        MAGIC_POSITION vertex3;
};

На BMX будет вроде так:
Код:

Type MAGIC_POSITION
        Field x:Float
        Field y:Float
        Field z:Float
End Type

А вот как будет выглядеть вторая структура (MAGIC_TRIANGLE) в BMX я не могу понять!
И еще:
Код:

// Структура для матриц 4x4
struct MAGIC_MATRIX
{
        union
        {
                struct
                {
                        float _11, _12, _13, _14;
                        float _21, _22, _23, _24;
                        float _31, _32, _33, _34;
                        float _41, _42, _43, _44;
                };
                float m[4][4];
        };
};

Как и ее перевести на BMX?
За ранее Благодарю :)

baton4ik 26.05.2011 17:36

Ответ: Возможно ли в BMax
 
Цитата:

Сообщение от maxturbo (Сообщение 189508)
А вот как будет выглядеть вторая структура (MAGIC_TRIANGLE) в BMX я не могу понять!

Код:

Type MAGIC_TRIANGLE
        Field vertex1:MAGIC_POSITION
        Field vertex2:MAGIC_POSITION
        Field vertex3:MAGIC_POSITION
End Type


maxturbo 30.05.2011 00:54

BMX Preprocessor
 
Есть еще такой вопрос по части препроцессора!!! Возможно ли как нибудь в модуле использовать условную компиляцию???

Venom2 30.05.2011 05:46

Ответ: BMX Preprocessor
 
Цитата:

Сообщение от maxturbo (Сообщение 189822)
Есть еще такой вопрос по части препроцессора!!! Возможно ли как нибудь в модуле использовать условную компиляцию???

Help->Language->Conditional compiling

ЗЫ
По поводу структур (struct) и объединений (union) - в бмаксе их нет, type это класс для которого используется только динамическая память, потому MAGIC_POSITION еще может прокатить, а вот код MAGIC_TRIANGLE показаный baton4ik уже нет, т.к. поля в нем - указатели на данные, а в исходном варианте на С++ это сами данные.
Вообще же в данном случае лучше не обьявлять структуру, а использовать Float Ptr для всех трех структур. Неудобно да, но зато полностью совместимо и никакого оверхеда.
Насчет структуры матрицы - union дает возможность обьявить переменные которые занимают физически одну и ту же память, т.е. в случае с матрицей удобно иметь два варианта элементов - в виде массива и в виде отдельных переменных-компонент.


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

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