![]() |
Вопрос-Ответ (для новичков BlitzMax)
Сюда предлагаю писать легкие вопросы по бмаксу.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Мне кажется, тема обречена на вымирание, ибо новички предпочитают b3d (за 3д. Ты чо, это ж круто!), а в bm приходят уже со своими шишками и хоть каким-то пониманием ситуации...
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Вообще я создал тему потому что у МЕНЯ был вопрос. Но потом я понял что тупанул и заменил текст)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Давай вопрос
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Кто может дать два кода? В одном с помощью GameNet сервер отправляет рандомное число, а во втором клиент принимает его и выводит на экран.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
ИДЕ - BLIde. Всё скомпилировано. Создаю проект, пишу:
Цитата:
Картинка, разумеется есть. С png и bmp то же самое. ЧЯДНТ? P.S. На Framework pub.lua тоже ругается: Framework does not match commandline framework |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
У тебя JPG, а значит:
PHP код:
1) SuperStrict в начале всегда - привыкаем писать правильно 2) d3d9max2ddriver не стабилен. Лучший вариант для Windows - это d3d7max2ddriver На всех семёрках и вистах работет. Проверено. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
В качестве фреймворка надо выбирать базовый модуль а не производные.
Лучший выбор brl.blitz |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
1) Да, знаю, это был проверочный семпл 2) Ок, спасибо А что с pub.lua? |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
о ну тык это тру программинг !! ;)
По дефлоту я так понимаю BidlocodingStrict стоит хД !! Что приходится это писать !! |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
Цитата:
При использовании SuperStrict компилятор такой код просто не пропустит. Профит - избавление от опечаток в именах переменных. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Странно, но
Framework pub.lua конфликтует со всеми остальными. Если он подключен, то import brl.blitz или framework brl.d3d7max2d не работают. В чём дело? Как это исправить? |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Framework brl.d3d7max2d
Import pub.lua |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Спасибо! Таугешту только что написал. Только я так и оставил import brl.blitz, не осталось ни одного framework:
SuperStrict Import brl.blitz Import brl.pngloader Import brl.JPGLoader Import brl.bmpLoader Import pub.lua |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
При отсутствии директивы Framework к твоему проекту при компиляции цепляется весь brl.
Вес exe растёт из-за ненужных модулей. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Как фреймворк brl.blitz ставится не хочет. Ок, тогда поставлю brl.d3d7max2d
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Фреймворком можешь поставть brl.basic
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
Оставляю brl.d3d7max2d Итак, 2 вопроса: 1. fixed 2. Поставил maxgui последней версии, подключил maxgui.drivers Успешно создал окно и гаджеты в нём. Но на это ругается: Цитата:
Причём, когда начинаю вводить "Wait..." в подсказке всплывает "WaitEvent" и сама функция выделена синим. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Сейчас в максгуи надо цеплять минимум два модуля, сам гуи и требуемый гуи драйвер для конкретной ОС. За события вроде тоже теперь отдельный модуль отвечает.
Т.е. начало должно быть примерно таким: Код:
SuperStrict |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
Framework brl.basic, как я уже писал, не работает как надо: Compile Error: Identifier 'TImageFont' not found |
Ты тупой, какое отношение имеешь ты к Framework brl.basic?
Ты хоть понял что тебе компилятор сказал? Он сказал что: "Идентификатор TImageFont не найден". Потому что ты не включил соответствующий модуль в комплект. import brl.d3d7max2d //TImageFont именно здесь Вы вообще понимаете что делает кейворд Framework? Он говорит что "выкинуть из комплекта все модули кроме следующего" Т.е. Фактически он подключает лишь один модуль, остальное вы подключаете сами. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Чувак, я это всё понимаю. Просто из постов о brl.basic у меня сложилось мнение, что он включает в себя всё, что надо. Поэтому, когда я подключал brl.basic, я отключал brl.d3d7max2d.
P.S. Хотя я действительно не совсем правильно понимал Framework, спасибо. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Для большего понимания по открывай сами модули и посмотри какой за что отвечает. Например d3d7max2d сам использует brl.basic, brl.math, brl.linkedlist и другие и как следствие их подключать не нужно.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
В blitzMax можно объявить динамический массив.
Но максимальный индекс элемента в нем может быть 71801. Global Base_Image_array:Int[]; Global Base_Image_number:Int; Base_Image_array[71801]=3; Base_Image_array[71800]=3; Base_Image_array[71799]=3; почему именно 71801 ? 71802 уже не работает! :( add а в этот раз до Base_Image_array[71809]=3; дошло, и ничего :( |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Загружаю звуки в массив Global msounds:TSound[5]
Далее проверяю, не воспроизводится ли csound:TChannel Если нет, то csound=PlaySound(msounds[Rand(0,4]) Звука нет. Никаких ошибок, весь остальной код работает как надо. Формат - wav. Другие не пробовал. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
PHP код:
Цитата:
Накидаю ка пример использования звука в бм: PHP код:
![]() |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
SuperStrict, конечно, стоит :) Проблема была в том, что я не установил аудиодрайвер. Спасибо. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
эй.
мне именно и нужно динамический массив :( |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Тогда читать про слайсы бегом.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Кстати динамически переразмечать массив - крайне медленная операция, если извесно сколько элементов будет в массиве - то лучше создать его заранее, если же создается временный массив, то лучше создать его максимально большим.
Таким недугом грешит коллизия, из за динамических переразметок заметно теряется производительность. Тут я сделал буффер в 64 обьекта, тоесть массив заранее создается в 64 элемента, все остальное отбрасывается. Прирост составил 1 мс против 800 мс в краштесте. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Где можно почитать про Threads , которые были добавлены в бмакс? В справочнике я уже смотрел. В чем их преимущество и как использовать и вообще стоит ли?
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Как я слышал, они официально не поддерживаются. Но может с новой версией, дело обстоит иначе.
ЗЫ, вторая ссылка |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Хотел проверить как используются потоки и решил запустить из "сэмплов" примеры кодов. Программа выдает сообщение, что "Identifier 'TThread' not found" .
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Значит твой БМакс слишком стар или у тебя нет модуля Threads.mod.
Советы: 1) Скачать новую версию БМ 2) Поставить Threads.mod |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Версия самая новая. Как проверить установлен ли модуль?
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
грубоговоря бмакс перехреначивался вдоль и поперек несколько раз, старые примеры могут неработать в новом бмаксе и наоборот.
А ещё в IDE надо переключить на Threated build или ка кто так |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
папка mod/brl.mod/threads.mod
вродь так. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Джокер, ты был прав - переключение помогло.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Пытаясь установить бм на школьном компьютере я столкнулся с непредвиденными трудностями.
Код:
Compiling:blitz_app.c |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
емнип надо gcc4 ставить из комплекта с минГВ
Ну и прописать переменные среды надо как написано в начале установки бмакса. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Не вижу в комплекте с minigw никакого gcc4. Да и на своём домашнем компьютере ставил так же.
Переменные среды надо прописывать для MaxIDE, в Blide путь задаётся в опциях. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Была такая проблема
Исправил перейдя на BLIde(что ты сделал) и отметив всё подряд галочкой при установке(c++ когда только ставил, тоже не работало) |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Всем здрасьте.
Собственно, всё очень просто - не отображаются русские буквы. Совсем. Делаю вроде всё, как положено (самый простой пример): Код:
Global Font:TImageFont Прошу помочь. И, если где-то на форуме есть решение, просьба кинуть линк - поиск не помог, проблема обсуждалась не раз, но либо так и не была решена, либо была решена на Blitz3d, а это не то. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Текст надо в Юникод передавать.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Добавь
Import brl.FreeTypeFont в начале "Arial" измени на "Arial.ttf" и кинь шрифт в папку с проектом. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
baton4ik
Спасибо, помогло. Теперь будем экспериментировать на скачанных шрифтах... |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Суперстрикт рулит! ^^ Это так, вопль души *убежал дальше копать туториалы по работе с пользовательскими типами*
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Вот, вопрос, можете объяснить, в чем разница между методом (Method) и функцией (Function) внутри описания пользовательского типа?
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Метод работает непосредственно с объектом типа, от которого было обращение
т.к. Цитата:
Функции внутри типов ничем не отличаются от функций снаружи типов, кроме того что эти функции можно вызвать от типа(вроде TMap.MyFunc() или map1.MyFunc()) Она НЕ ДАЕТ доступа к переменным внутри типа, тоесть придется писать что-то вроде Цитата:
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Спасибо большое :) То что нужно
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Грубо говоря, функции - глобальные методы.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Функции внутри типа это обычные функции, только они ещё имеют быстрый доступ к внутренним глобальным переменным внутри типа.
PHP код:
Псевдокод: PHP код:
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Кажется разобрался. Всем спасибо. В итоге получается даже удобнее, чем в блитце :)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Пытаюсь писать свой пользовательский тип с функциями и методами. При компиляции, если я обратился к функции CreateBattleCharacter, выдает Attempt to access field or method of Null object на строчке
Код:
bchar_list.AddLast bchar Код:
Global bchar_list:TList = New TList |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
bchar_list = CreateList()
И лучше сделай не глобальный список, а глобальную переменную типа для него: Type TBattleCharacter Global list:TList = CreateList() '... TBattleCharacter.list.AddLast bchar '... |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Правда ли, что использование описания переменной в пределах пользовательского типа называется "статичной переменной" , так же как и функция, описанная в этих пределах именуется "статичной функцией"? От куда такая терминология сложилась? Еще вопрос: можно ли использовать статичные константы в типе и другие типы в типе?
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
Как ты себе представляешь статичные константы? Константа сама по себе статична, на то это и константа. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
В C# например нету оператора Method или Function. Объявление функции и её роль зависит от её значений перед, например в классе:
Код:
public string Name () { А вот: Код:
public static string Name () { Код:
public class TUser { А функция Name, в понятии бм - это метод. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Объясните нубу:
1) Почему переодически отключается возможность копипастирования кода в стандартном IDE? 2) Код:
Type TMaterial |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Измени "Method Create:TMaterial(image :TImage)" на "Function Create:TMaterial(image :TImage)"
Выше как раз описана разница между методом и функцией типа. Насчёт копипаста не скажу, сразу установил blide. |
Часовой пояс GMT +4, время: 17:25. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot