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)

Nerd 05.08.2013 02:16

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Срочно понадобился простейший HTTP Get.
Это и это не работает, больше ничего не нагуглил.
Пожалуйста, скиньте, если у кого есть.

Randomize 05.08.2013 04:37

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Метод в лоб. Не везде прокатит - веб сервер может дропнуть соединение из-за отсутствия юзер агента и прочих ненужных заголовков.
Код:

Local lines:String = LoadString("http::forum.boolean.name")
Print lines

Метод для бацек
Код:

Global HttpHost:String = "forum.boolean.name" ' Именно хост. Без всяких там http и указания пути
Global HttpPort:Int = 80 ' Ну тут понятно
Global HttpGet:String = "/" ' Собсно гет запрос


'# Соединяемся
Local sock:TSocket = CreateTCPSocket()

If Not sock.Connect(HostIp(HttpHost), HttpPort) Then
        RuntimeError("OH SHI~~!") ' хуИта
EndIf

Local stream:TSocketStream = CreateSocketStream(sock)


' # Шлём
WriteLine(stream, "GET /" + HttpGet + " HTTP/1.0~nHost: " + httpHost + "~nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0~n~n")

' # Принимаем ответ
Local buff:String
While Not Eof(stream)
        buff:+ReadLine(stream) + "~n"
Wend

' # Открыл? Закрой!
sock.Close()
stream.Close()

'# Ну и чо там у нас
Print buff

Ток надо ещё будет заголовки отпилить. Ориентируйся на первую пустую строку.

Nex 01.03.2014 11:37

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Как юзать шрифты в БлитзМаксе?
LoadFont есть, но это как вспомогательная функция. Сам шрифт это как я понял модуль brl.freetypefont?

Загружаю свой шрифт, вывожу текст и возникают странные вещи.
Выводим текст из переменной и с кириллицей все "ок". Выводим текст из файла и с кириллицей борода - каракули в стиле ansi юникода. При использовании utf-8 тоже самое только каракули другие. При этом текст из файла в дебаге в нормальной кодировке.
Ради интереса скидываю русскоязычный текст из переменной в файл и в файле оказываются вообще непонятные символы. Текст "Автоматическая дверь" превращается в "2B><0B8G5A:0O 425@L".

Так же с файловой системой лажа какая то. Хочу открыть директорию и получить список файлов. ReadDir (CurrentDir ()) возвращает хендл директории, но NextFile () уже ничего не возвращает.

В общем как быть, как жить? Подскажите :)

Жека 01.03.2014 16:52

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
1. Шрифт: подключён ли нужный модуль?
Import brl.freetypefont
Использование:
Код:

Global fontText:TImageFont = LoadImageFont("data\fnt\fontText.ttf", 13)
SetImageFont(fontText)

2. Текст: есть функции LoadText и SaveText. Просто сохраняй файлы с русскими буквами в utf-8, тогда LoadText прочитает нормально русский.
Требуется
Import brl.textstream

3. Файлы: модули подключены?
Import brl.stream
Import brl.filesystem

Nex 02.03.2014 09:35

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

Сообщение от Жека (Сообщение 275717)
1. Шрифт: подключён ли нужный модуль?
Import brl.freetypefont
Использование:
Код:

Global fontText:TImageFont = LoadImageFont("data\fnt\fontText.ttf", 13)
SetImageFont(fontText)

2. Текст: есть функции LoadText и SaveText. Просто сохраняй файлы с русскими буквами в utf-8, тогда LoadText прочитает нормально русский.
Требуется
Import brl.textstream

3. Файлы: модули подключены?
Import brl.stream
Import brl.filesystem

Все нужные модули подключены. Файлы в директории все равно не читает.

LoadText (url:Object)
Как это понимать? Почему url не String или TStream? И что передавать в этот параметр? :(

надо наверно на манки переходить...

Жека 03.03.2014 07:54

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

Путь содержит русские символы? Если да то увы, с русскими не пашет.

>> LoadText (url:Object)
Код:

Local text$ = LoadText("data.txt")
Ещё на всякий случай: Если у тебя задумка читать из файла названия других файлов и открывать их, то пригодится TRIM:
Код:

Local text:String = LoadText("data.txt")
Local arr:String[] = text.Split("~r~n")
For Local k:Int = 0 Until arr.Length
    Local s:String = Trim(arr[k])
    Local file:TStream = ReadFile(s)
        '
        '
        CloseFile(file)
Next

>> надо наверно на манки переходить...

там с файлами особо ничего не поделаешь, нет таких функций.

Nex 04.03.2014 15:26

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

Сообщение от Жека (Сообщение 275876)
Путь содержит русские символы? Если да то увы, с русскими не пашет.

Путь из английских символов.
Вот код из хелпа:
Код:

' readdir.bmx
dir = ReadDir("C:")
If Not dir RuntimeError "failed to read current directory"

Repeat
        t:String = NextFile(dir)
                DebugLog t
        If t="" Exit
        If t="." Or t=".." Continue

Forever
CloseDir dir

Возвращает только хенлд директории и все. Цикл на первом же проходе прекращается. t ничему не равно. Пробовал даже запускать с админ правами.

Цитата:

Сообщение от Жека (Сообщение 275876)
Ещё на всякий случай: Если у тебя задумка читать из файла названия других файлов и открывать их, то пригодится TRIM:

Из файла считываются путь до картинки объекта и описание предмета (Аптечка, Фонарик и тд.)

Обидно, что потратил много времени на написание парсера и теперь надо все переделывать либо ставить кучу костылей и потом об них же в будущем спотыкаться... :(

Жека 05.03.2014 06:32

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Да не должно костылей быть с файлами. У тебя БМакс новый? (хз может в каком-то билде была проблема)

1. Попробуй закомментировать подключение модулей, чтобы по дефолту подключались все, вдруг забыл какой-то.
2. Какую конкретно директорию ты пытаешься прочитать? Попробуй читать директорию из другого раздела диска, не из системного.

Черный крыс 05.03.2014 15:45

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
1) Попробуй LoadDir()
2) FreeTypeFont - в топку. Есть мое решение шрифтов, более быстрое и с большими возможностями ( ищи в разделе "модули" )

LLI.T.A.L.K.E.R. 12.05.2014 05:07

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
не актуально - проблема решена: http://forum.boolean.name/showthread...488#post280488
но архив у кого есть - можете передать?


ни у кого не осталось? PhysX архив примеров для BMax?

BMax examples and files: http://files.swargo.com/render/BMaxExemples.rar

нужно поглядеть на функцию (пример использования):
pxClothGetNormals (Cloth %, nbank *) - fills bank nbank with normals of Cloth vertices. It is used for an update of Cloth in BMax. See example!

Code013 21.10.2014 15:57

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Не работают битовые операции как в Blitz3D.
Например: Print ($01 And $ff) = 1 (в Blitz3D)
в BM Print ($01 And $ff) = 255
Тут другие команды работы с битами?
Подскажите кто знает.

Randomize 21.10.2014 16:01

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

Сообщение от Code013 (Сообщение 288339)
Не работают битовые операции как в Blitz3D.
Например: Print ($01 And $ff) = 1 (в Blitz3D)
в BM Print ($01 And $ff) = 255
Тут другие команды работы с битами?
Подскажите кто знает.

And = &
Or = |
Xor = ~

Code013 21.10.2014 16:06

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

Jlemyp 18.11.2014 20:51

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Всем привет. 2 года назад изучал Blitz3D и с сетью проблем не возникало.Сейчас решил пощупать BlitzMax и не как не разберусь с сетью.
Помогити,напишите простой пример сервера и клиента с коментариями,что бы я смог понять от чего отталкиваться.
пример: запущен сервер и клиент.Клиент говорит серверу что хочет кинуть игральный кубик.Сервер принемает запрос на бросание кубика и бросает его,а результат отправляет клиенту.
Весь форум прочесал но точного понятия что к чему не нашел.
Буду очень блогодарен.

moka 18.11.2014 23:33

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Код за тебя я думаю мало кто писать будет.
А вот помочь с конкретными проблемами - думаю сможем.

Главное начни с простого, сделай два новых приложения, сервер и клиент (пустых), и создай сокет на сервере по порту, и соедени клиент с сервером.

Далее, подумай как логически поддерживать несколько клиентов. Это чисто логика.

Затем уже думай на счет игрового цикла на сервере и клиенте и синхронизации данных.

Начни с простого, по чуток пиши, не спеши. Как будут проблемы, попробуй 5 раз по разному, если не получилось, иди выпей чаю, и снова по разному попробуй, 10 в этот раз. Ну если реально совсем ничего не выходит. То либо стоит бросить это дело (слабый вариант), либо попробовать еще 20 раз, и уж потом постить на форум конкретно сформулированный вопрос о том что и как не выходит, с конкретным кодом (не 100500 строк, а минимум, меньше - лучше), и описанием конкретной проблемы, что пробовал для решения и где думаешь проблема.

По факту скажу, если ты начнешь следовать подобному методу в разработке как начинающий, то у тебя и вопросов по сути возникать не будет, т.к. ты просто будешь сам находить решение, получать опыт и т.п.
Но если ты не будешь пытаться сам, то да, будут вопросы типа: "сделайте мне игру", или "сделайте мою домашнюю работу".


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

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