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

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

Страницы: 1 2 Следующая »
#0
(Правка: 9:46) 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) 10:23, 24 ноя. 2021

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

#4
10:47, 24 ноя. 2021

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

#5
(Правка: 11:17) 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
13:14, 24 ноя. 2021

xlat-code
> Загрузка карты местности в двумерный массив -> как?
Во всех урховских примерах есть сохранение/загрузка сцены. Сцена хранится в xml. Можно посмотреть в исходники. У урхи большинство объектов имеют аналоги в angelscript, поэтому скорее всего тот же функционал можно сделать и на angelscript

#9
(Правка: 18:53) 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) файловые данные...

#10
21:16, 24 ноя. 2021

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

#11
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, ещё раз спасибо!

#12
(Правка: 23:57) 22:27, 24 ноя. 2021

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

откопал в сети прогу Архивариус 3000 для быстрого поиска инфы в файлах, теперь, надеюсь, что найдётся всё ...
#13
6:25, 25 ноя. 2021
xlat-code
> Согласитесь, как то странно это, ворочать целыми сценами и не уметь загрузить простейшие(char,int) файловые данные...
Да не странно :) Все мы умеем переключать пультом телевизор, но редко кто шарит в радиотехнике :)
Ок, ладно, на самом деле, чисто моё мнение: игру лучше делать в с++, а скрипты использовать, как контент или вспомогательное средство для управления объектами в игре. Я все объекты для игры храню всё равно в xml, использую boost и property_tree для чтения/записи.
#14
12:58, 25 ноя. 2021

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

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

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