forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   BlitzMax (http://forum.boolean.name/forumdisplay.php?f=104)
-   -   Вопрос-Ответ (для новичков BlitzMax) (http://forum.boolean.name/showthread.php?t=13756)

baton4ik 27.11.2010 19:04

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Спасибо! Таугешту только что написал. Только я так и оставил import brl.blitz, не осталось ни одного framework:

SuperStrict

Import brl.blitz
Import brl.pngloader
Import brl.JPGLoader
Import brl.bmpLoader
Import pub.lua

Randomize 27.11.2010 19:06

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
При отсутствии директивы Framework к твоему проекту при компиляции цепляется весь brl.
Вес exe растёт из-за ненужных модулей.

baton4ik 27.11.2010 19:09

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Как фреймворк brl.blitz ставится не хочет. Ок, тогда поставлю brl.d3d7max2d

Randomize 27.11.2010 19:13

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Фреймворком можешь поставть brl.basic

baton4ik 28.11.2010 13:41

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Цитата:

Сообщение от Randomize (Сообщение 170086)
Фреймворком можешь поставть brl.basic

Нет, не работает: Compile Error: Identifier 'TImage' not found
Оставляю brl.d3d7max2d

Итак, 2 вопроса:
1. fixed
2. Поставил maxgui последней версии, подключил maxgui.drivers
Успешно создал окно и гаджеты в нём. Но на это ругается:
Цитата:

Repeat
WaitEvent()
Select EventID()
Case EVENT_WINDOWCLOSE
End
Case EVENT_GADGETACTION
SetGadgetText(Label1,"You have keyed in:"+TextFieldText(MyInput))
End Select
Forever
Compile Error: Identifier 'WaitEvent' not found

Причём, когда начинаю вводить "Wait..." в подсказке всплывает "WaitEvent" и сама функция выделена синим.

SBJoker 28.11.2010 14:42

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Сейчас в максгуи надо цеплять минимум два модуля, сам гуи и требуемый гуи драйвер для конкретной ОС. За события вроде тоже теперь отдельный модуль отвечает.

Т.е. начало должно быть примерно таким:
Код:

SuperStrict

Framework brl.basic

Import maxgui.maxgui
?Win32
    Import maxgui.win32maxguiex
?MacOSX86
    Import maxgui.cocoamaxgui
?
Import brl.eventqueue


baton4ik 28.11.2010 14:53

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Цитата:

Сообщение от SBJoker (Сообщение 170164)
Сейчас в максгуи надо цеплять минимум два модуля, сам гуи и требуемый гуи драйвер для конкретной ОС. За события вроде тоже теперь отдельный модуль отвечает.

Т.е. начало должно быть примерно таким:
Код:

SuperStrict

Framework brl.basic

Import maxgui.maxgui
?Win32
    Import maxgui.win32maxguiex
?MacOSX86
    Import maxgui.cocoamaxgui
?
Import brl.eventqueue


Спасибо, заработало.
Framework brl.basic, как я уже писал, не работает как надо: Compile Error: Identifier 'TImageFont' not found

SBJoker 28.11.2010 16:11

Ты тупой, какое отношение имеешь ты к Framework brl.basic?

Ты хоть понял что тебе компилятор сказал? Он сказал что: "Идентификатор TImageFont не найден".

Потому что ты не включил соответствующий модуль в комплект.

import brl.d3d7max2d //TImageFont именно здесь

Вы вообще понимаете что делает кейворд Framework?
Он говорит что "выкинуть из комплекта все модули кроме следующего"
Т.е. Фактически он подключает лишь один модуль, остальное вы подключаете сами.

baton4ik 28.11.2010 16:19

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Чувак, я это всё понимаю. Просто из постов о brl.basic у меня сложилось мнение, что он включает в себя всё, что надо. Поэтому, когда я подключал brl.basic, я отключал brl.d3d7max2d.
P.S. Хотя я действительно не совсем правильно понимал Framework, спасибо.

Randomize 28.11.2010 23:15

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Для большего понимания по открывай сами модули и посмотри какой за что отвечает. Например d3d7max2d сам использует brl.basic, brl.math, brl.linkedlist и другие и как следствие их подключать не нужно.

Данил 01.12.2010 00:32

Ответ: Вопрос-Ответ (для новичков 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; дошло, и ничего :(

baton4ik 01.12.2010 01:48

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Загружаю звуки в массив Global msounds:TSound[5]
Далее проверяю, не воспроизводится ли csound:TChannel
Если нет, то csound=PlaySound(msounds[Rand(0,4])
Звука нет. Никаких ошибок, весь остальной код работает как надо. Формат - wav. Другие не пробовал.

Randomize 01.12.2010 11:12

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Цитата:

Сообщение от Данил (Сообщение 170420)
В 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; дошло, и ничего :(

PHP код:

Local BigArray:Int[100500]
BigArray[3333] = 3333
BigArray
[71799] = 71799
BigArray
[99999] = 99999
BigArray
[100499] = 100500 1

Print BigArray[3333]
Print 
BigArray[71799]
Print 
BigArray[99999]
Print 
BigArray[100499

Насколько я знаю разpмер массива в BM нужно указывать обязательно. Изменение размера = пересоздание массива. Лучшим вариантом будет использование БД для таких объемов, но ежели памяти не жалко, то используй TList или напиши свой аналог. Ежели хранить нужно только int, то можно смело и банки использовать.

Цитата:

Сообщение от baton4ik (Сообщение 170426)
Загружаю звуки в массив Global msounds:TSound[5]
Далее проверяю, не воспроизводится ли csound:TChannel
Если нет, то csound=PlaySound(msounds[Rand(0,4])
Звука нет. Никаких ошибок, весь остальной код работает как надо. Формат - wav. Другие не пробовал.

Раздел фреймворк покажи.

Накидаю ка пример использования звука в бм:
PHP код:

Framework brl.basic
Import brl
.directsoundaudio
Import brl
.oggloader

SetAudioDriver
"DirectSound" )
Local s:TSound LoadSound("C:\BlitzMax\samples\digesteroids\sounds\menu.ogg")

Local c:TChannel s.Cue()
If 
Not c.Playing() Then PlaySound(s)
Delay(1500)
Null GCCollect() 

SUPERSTRICT или UNINSTALL - Выбор за тобой, %ЮЗЕРНЕЙМ%

baton4ik 01.12.2010 12:12

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Цитата:

Сообщение от Randomize (Сообщение 170435)
PHP код:

Local BigArray:Int[100500]
BigArray[3333] = 3333
BigArray
[71799] = 71799
BigArray
[99999] = 99999
BigArray
[100499] = 100500 1

Print BigArray[3333]
Print 
BigArray[71799]
Print 
BigArray[99999]
Print 
BigArray[100499

Насколько я знаю разpмер массива в BM нужно указывать обязательно. Изменение размера = пересоздание массива. Лучшим вариантом будет использование БД для таких объемов, но ежели памяти не жалко, то используй TList или напиши свой аналог. Ежели хранить нужно только int, то можно смело и банки использовать.


Раздел фреймворк покажи.

Накидаю ка пример использования звука в бм:
PHP код:

Framework brl.basic
Import brl
.directsoundaudio
Import brl
.oggloader

SetAudioDriver
"DirectSound" )
Local s:TSound LoadSound("C:\BlitzMax\samples\digesteroids\sounds\menu.ogg")

Local c:TChannel s.Cue()
If 
Not c.Playing() Then PlaySound(s)
Delay(1500)
Null GCCollect() 

SUPERSTRICT или UNINSTALL - Выбор за тобой, %ЮЗЕРНЕЙМ%

О_о Как раз вчера вечером пилу смотрел, решил, что опять кеш оперы глючит.
SuperStrict, конечно, стоит :)
Проблема была в том, что я не установил аудиодрайвер. Спасибо.

Данил 01.12.2010 19:58

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
эй.
мне именно и нужно динамический массив :(


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

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