Войти
Urho3DФорумЗАДАВАЙТЕ ВОПРОСЫ

[РЕШЕНО] Angelscript -> Загрузка карты местности в двумерный массив -> как?

Страницы: 1 2 Следующая »
#0
9:38, 24 ноя 2021

Тема у меня такая:
https://gamedev.ru/flame/forum/?id=265228

всё хорошо - документации по урхо море.
хм, и я в нём тону ...

задача вроде простая и она такая:
нужно тупо загрузить своего формата(пусть текстовый) ВЕСЬ файл в строку.

задача чуть сложнее:
что-то типа такого:

File file("my.txt");
Vector<char> mystr[ТУТ_РАЗМЕР_ФАЙЛА_КАК?];
file.Read(mystr.data(), ТУТ_РАЗМЕР_ФАЙЛА_КАК?);
Vector< String > map = mystr.Split('\n');

Как это записать на Angelscript правильно, чтобы работало?

#1
9:58, 24 ноя 2021

Мне кажется тут вряд-ли кто ответит. Попробуй спросить в discourse.

#2
10:16, 24 ноя 2021

GLoom
уже за ваш отзыв вам спасибо)

вроде сама задача проще не придумаешь...

#3
10:23, 24 ноя 2021

xlat-code
Все так, но angelscript....

#4
10:47, 24 ноя 2021

Вообще плохо понимаю зачем вытаскивать этот нафталин 2012 годов
если есть хорошие движки с хорошими скриптованными языками

#5
11:10, 24 ноя 2021

DanQuimby
> плохо понимаю зачем вытаскивать этот нафталин 2012 годов
самый последний(1.7.1) релиз Urho3D в 2019 году,
но на гитхабе лежит версия с последним коммитом 8 дней назад.
которую без проблем можно собрать под что хочешь...

сам AngelScript:
Current version: AngelScript 2.35.1 (September 27th, 2021)

плохо понимаю - о чём вы?

GLoom
> discourse
по ходу пойду зарегюсь,
но это не честно - как же тогда наш форум?
урхо тема тогда тут еле живая окончательно, вежливо говоря, уснёт. )

#6
12:11, 24 ноя 2021

xlat-code

Есть еще вариант спросить в телеге: Urho3D

#7
12:11, 24 ноя 2021

Вот рабочий пример:

#include "Scripts/Utilities/Sample.as"
void Start()
{
    Print("//////////////////");
    File@ f = File("/home/s/test.txt", FILE_READ);
    Print("file size: " + String(f.get_size()));
    //Print(String(ReadInt));
    Print(f.ReadLine());
    Print("current position: " + String(f.get_position()));
    Print(f.ReadString());
    f.Close();
    engine.Exit();
}
String patchInstructions = "";

Доки по чтению файла

Названия функций в AngelScript чуток отличаются от доков, их можно подсмотреть в исходниках к примеру тут  по файлам

#8
16:34, 24 ноя 2021

IPcorp
> Есть еще вариант спросить в телеге: Urho3D
спасибо.

Tarzeron
> Вот рабочий пример:
это для консольного окна?
у меня оно не открывается.

Делаю следующее:
в примере 01_HelloWorld.as

вешаю на helloText.text =

String test()
{   
    File@ f = File("test.txt", FILE_READ);
    if(f.IsOpen()) /// ERROR: No matching signatures 'File::IsOpen'
    {   
        String str = f.ReadString();
                     f.Close     ();
        return str;
    }
    return "no file";
}

Выскакивает ошибка, см. выше.

Tarzeron
> Доки по чтению файла
метод IsOpen() имеется


Tarzeron
> тут  по файлам
прошёл поиском IsOpen - отсутствует

чо делать? как проверить на открытие файла?

юзаю Urho3D-1.7.1-MinGW-SHARED.zip

Tarzeron, что касается самой загрузки файла, то файл отлично грузиться.
спасибо за наводку.

StepEver
> Сцена хранится в xml. Можно посмотреть в исходники
попробовал грибов(из SDK) и нахожусь под их впечатлением.

В примерах показана процедурная генерация сцены,
есть одна(или не одна) моделька и они процедурно расставляются.

это 1.

2:
я не собираюсь хранить всю сцену,
я хочу хранить логику(схему) для генератора сцены.

3:
я не профи, поэтому я хочу сейчас научиться делать простые - очень простые вещи.
Согласитесь, как то странно это, ворочать целыми сценами и не уметь загрузить простейшие(char,int) файловые данные...

#9
21:16, 24 ноя 2021

С IsOpen ошибка потому что имя функций в as отличается от плюсов и их доки, нужно использовать  get_open

#10
22:08, 24 ноя 2021

Tarzeron
> get_open()
+100
спасибо, заработало!

блин, сам бы я никогда не догадался...

вы меня воодушевили:
жмакаю Scripting API
затем жму File
и вот оно на тарелочке:

Properties:
...
bool open // readonly
...

И так тоже работает:

String test()
{   
    File@ f = File("test.txt", FILE_READ);
    if(f.open) /// It's work!
    {   
        String str = f.ReadString();
                     f.Close     ();
        return str;
    }
    return "no file";
}

Tarzeron, ещё раз спасибо!

#11
22:27, 24 ноя 2021

Urho3D/AngelScript/IOAPI.cpp#L322
> engine->RegisterObjectMethod("File", "bool get_open()", asMETHOD(File, IsOpen), asCALL_THISCALL);
и всё же "на душе скребут кошки":
какого дога имена в скрипте ДОЛЖНЫ отличаться от имен методов в С++?!
из чего исходили авторы движка, чтобы такое придумать?

откопал в сети прогу Архивариус 3000 для быстрого поиска инфы в файлах, теперь, надеюсь, что найдётся всё ...

#12
12:58, 25 ноя 2021

xlat-code
> какого дога имена в скрипте ДОЛЖНЫ отличаться от имен методов в С++?!
Похоже в скриптах есть свой заморочки, фишки, зарезервированные слова и решили придерживаться их. Меня другое имя не смущает, в моей игре тоже будет большая разница между именами в плюсах и в lua.

xlat-code
> ещё раз спасибо!
пожалуйста)

#13
15:59, 26 ноя 2021

StepEver
Tarzeron,
мои текущие заморочки щас далеки от самой игры:

1.
нашёл наконец то этот лог-файл,
версия Urho3D 1.3 кладёт его рядом с урхо плеером,
блин, но неугомонные разрабы в версии 1.7 решили, что тут лучше:
C:\Users\Admin\AppData\Roaming\urho3d\logs

Вопрос, кто их попросил об этом?!

Только теперь мне стало ясно, как работает Print

2.
Не могу найти в урхо спровайденные
void throw(const string &in exception)
и
string getExceptionInfo()

в доке написано что эксепшены возможны...

Вопрос:
Urho поддерживает исключения для Angelscript?

ёксельмок, гугол молчит, как партизан ...

#14
17:49, 26 ноя 2021

xlat-code
>
> Urho поддерживает исключения для Angelscript?
думаю да, вот пример обработки в самом скрипте

ИзображениеИзображение

а вот отловленная ошибка самим плеером
ИзображениеИзображение

xlat-code
> Не могу найти в урхо спровайденные
> void throw(const string &in exception)
> и
> string getExceptionInfo()
этого в плеере нет, если нужно обработать ошибку которая известна заранее ее можно обработать средствами as с использованием try/catch,  в catch можно сделать принт и выход, в любом другом случае плеер либо выбьет без обработки ошибки либо покажет ее в консоли и диалоге
ну если сильно нужно ничего не мешает добавить подобное самостоятельно и выводить к примеру тот же диалог и принт, но думаю ради этого начинать кастомизировать плеер нет смысла

Страницы: 1 2 Следующая »
Urho3DФорумЗАДАВАЙТЕ ВОПРОСЫ

Тема в архиве.