Author Topic: WS3D+D Language  (Read 118 times)

0 Members and 1 Guest are viewing this topic.

Offline Nikolas - WS3D Developer

  • Programmer
  • Global Moderator
  • Marquess
  • *
  • Posts: 869
  • Reputation 59
WS3D+D Language
« on: October 07, 2018, 01:05:45 AM »
Привет всем.

Неплохая новость.

С данного момента у нас появился еще один ЯП.: D Language.

Неофициально он уже был, потому как с апреля этого года  уважаемый член нашего сообщества Vuvk использовал этот язык программирования в своих проектах. И благодаря его консультациям мы теперь имеем  возможность программировать  WorldSim3D, используя D Lang.  Эпохально звучит, должен отметить.

На данный момент имеем:
-Заголовок WorldSim3D.d со всеми последними достижениями на данный момент
-WorldSim3D.lib- библиотека для линковки программ на D Lang
-Написан хелловорлд.

Для тех, кто знает толк в D Lang, этого достаточно. Для остальных- есть повод начать программировать на языке, который позиционируется как ЯП, вобравший в себя все лучшие черты С и обошедший стороной все неприятные места С++.

Вот текст хелловорлда на D:

Code: [Select]
import std.stdio;
import std.conv;
//import std.string;
import WorldSim3D;

wFont* MyFont               =null;
wColor4s backColor          ={255,0,125,0};

Int32 prevFPS               =0;
wVector2u wndSize           =wDEFAULT_SCREENSIZE;
wstring wndCaption          ="Example 1: Hello World";

wVector2i fromPos           ={120,80};
wVector2i toPos             ={250,96};

void main()
{

///Init Engine
bool init=wEngineStart(wDriverTypes.wDRT_OPENGL, wndSize, 32, false, false, true, false);

if(!init)
{
    writeln("wEngineStart failure!");
    return;
}

    const(char*) fontPath="../../Assets/Fonts/myfont.bmp";

///Check resources
if(wFileIsExist(fontPath)==false)
    {
        writeln("Check resources!");
        wEngineStop(false);
        return;
    }

wEngineShowLogo(true);

///Load resources
MyFont=wFontLoad(fontPath);

///Main loop
while (wEngineRunning())
    {
wSceneBegin(backColor);

        ///Draw text info
        wFontDraw(MyFont,"Hello World!",fromPos,toPos,wCOLOR4s_WHITE);

wSceneEnd();
wEngineCloseByEsc();

///Update fps
if (prevFPS != wEngineGetFPS())
        {
            prevFPS = wEngineGetFPS();
wstring text = wndCaption ~ " FPS : " ~ to!wstring(wEngineGetFPS()) ~ '\0';
wWindowSetCaption(text.ptr);
        }
    }

///Stop engine
wEngineStop(true);

}


Для написания кода подойдет Code::Blocks точно, о других IDE не скажу, т.к. пока не располагаю информацией.
Правда, с автодополнением кода у меня что-то не случилось.

В ближайшее время постараюсь написать инструкцию  о настройке Code::Blocks+DLang+WS3D, ключевые моменты любезно предоставлены Vuvk-ом.

Поместим ее в директорию D, которую добавим в релизную сборку.
Под лежачий камень мы всегда успеем...

Online Tiranas

  • Friends
  • Esquire
  • *
  • Posts: 60
  • Reputation 30
  • Совсем Тёмный.
Re: WS3D+D Language
« Reply #1 on: October 07, 2018, 02:16:46 AM »
Nikolas
Приветствую, Друг!

А примеры уже перевели?
Или мэнэ пыхтеть?  :)

Да и этот D можно скомпилировать в exe (не D + exe), а как обычный исполняемый?

« Last Edit: October 07, 2018, 02:19:41 AM by Tiranas »
Людям с более широким кругозором ведомо, что четкой границы между реальным, действительным и ирреальным воображаемым не существует, что каждый из нас, благодаря тонким физиологическим и психологическим различиям, воспринимает все явления по-своему. (Говард Филлипс Лавкрафт)

Offline Vuvk

  • Friends
  • Baron (-ess)
  • *
  • Posts: 337
  • Reputation 30
  • Lokemundux Desco Domus Shaantitus
Re: WS3D+D Language
« Reply #2 on: October 07, 2018, 08:28:11 AM »

От этой новости аж дыхание спирает. Не знаю почему ))


Quote
А примеры уже перевели?
По-моему в этому вообще нет смысла. Примеры на Си есть, а на Ди этот код абсолютно валиден.


Quote
Да и этот D можно скомпилировать в exe (не D + exe), а как обычный исполняемый?
D + exe? D - язык компилируемый.
файлы .d - это исходники


Quote
Правда, с автодополнением кода у меня что-то не случилось.
Из лучших IDE я бы выделил тройку:
1. Coedit - поддерживает проекты dub (это менеджер пакетов и сборщик такой), пишется, КСТАТИ, на FreePascal. Ссылка: https://github.com/BBasile/Coedit (готовые сборки в релизах там же)
2. Dlang IDE - пишется на Dlang с использованием UI, написанных на D. Для рендеринга используется OpenGL. На совсем доисторических компах могут быть проблемы. Ссылка: https://github.com/buggins/dlangide (готовые сборки в релизах там же)
3. Visual Studio + плагин Visual D. Ну тут всё понятно - онли Windows, но весьма мощный инструмент. Ссылка: https://github.com/dlang/visuald
« Last Edit: October 07, 2018, 08:38:40 AM by Vuvk »
Crudux Cruo!

Offline Nikolas - WS3D Developer

  • Programmer
  • Global Moderator
  • Marquess
  • *
  • Posts: 869
  • Reputation 59
Re: WS3D+D Language
« Reply #3 on: October 07, 2018, 09:30:09 AM »
Привет всем.

Думаю, переписывать примеры не будем. Кроме работ со строками все похоже. Есть, конечно, нюансы, но  для тех, кто изучает этот язык, проблем не должно быть.

SampleFunctions пока тоже переписывать не будем, иначе придется тогда переписывать примеры для тестирования.

Я так понимаю, что для D-версии можно сделать dub-пакет?   Не возьмусь за это пока. Дальше будет видно.

Про IDE хорошо, буду писать про настройку в Code::Blocks, попробую установить что-нибудь из пунктов 1-2
К Студии испытываю уважение, но из-за громоздкости и неповоротливости на моем железе ковырять не буду.
Под лежачий камень мы всегда успеем...

Offline Vuvk

  • Friends
  • Baron (-ess)
  • *
  • Posts: 337
  • Reputation 30
  • Lokemundux Desco Domus Shaantitus
Re: WS3D+D Language
« Reply #4 on: October 07, 2018, 06:48:07 PM »
Т.к. я немного ответственен за поддержку D в WS3D, то предлагаю вашему вниманию мою инструкцию по стартовой настройке проекта для работы с движком из dlang.
Скачать без регистрации и СМС
Crudux Cruo!

Offline Nikolas - WS3D Developer

  • Programmer
  • Global Moderator
  • Marquess
  • *
  • Posts: 869
  • Reputation 59
Re: WS3D+D Language
« Reply #5 on: October 07, 2018, 07:39:48 PM »
Очень хорошая инструкция!

Думаю, Tiranas не пропустит.

Кстати, в DLangIDE файл настроек в json, сразу с места не настроил. Надо знать нужные команды настройки.
Будет время, попробую еще. Пока я в этом направлении слабак.

У нас теперь для D есть уже две IDE: СodeBlocks и CoEdit.
От меня что-то будет только завтра, как минимум. Много других дел подвалило.

Под лежачий камень мы всегда успеем...

Online Tiranas

  • Friends
  • Esquire
  • *
  • Posts: 60
  • Reputation 30
  • Совсем Тёмный.
Re: WS3D+D Language
« Reply #6 on: October 07, 2018, 08:28:33 PM »
Vuvk
Приветствую!

Coedit у меня не запускается - Отказано в доступе,
Скачал даже Win32 3.9.18 - Отказано в доступе
У меня семёрка x32.
Людям с более широким кругозором ведомо, что четкой границы между реальным, действительным и ирреальным воображаемым не существует, что каждый из нас, благодаря тонким физиологическим и психологическим различиям, воспринимает все явления по-своему. (Говард Филлипс Лавкрафт)

Offline Vuvk

  • Friends
  • Baron (-ess)
  • *
  • Posts: 337
  • Reputation 30
  • Lokemundux Desco Domus Shaantitus
Re: WS3D+D Language
« Reply #7 on: October 07, 2018, 08:49:57 PM »
Может автор под x64 собрал... Завтра интереса ради скомпилирую на win32
Crudux Cruo!

Online Tiranas

  • Friends
  • Esquire
  • *
  • Posts: 60
  • Reputation 30
  • Совсем Тёмный.
Re: WS3D+D Language
« Reply #8 on: October 08, 2018, 03:28:00 AM »
Приветствую всех!

Статью про D - добавил, архив обновил.
Людям с более широким кругозором ведомо, что четкой границы между реальным, действительным и ирреальным воображаемым не существует, что каждый из нас, благодаря тонким физиологическим и психологическим различиям, воспринимает все явления по-своему. (Говард Филлипс Лавкрафт)

Offline Vuvk

  • Friends
  • Baron (-ess)
  • *
  • Posts: 337
  • Reputation 30
  • Lokemundux Desco Domus Shaantitus
Re: WS3D+D Language
« Reply #9 on: October 08, 2018, 05:52:13 AM »
Tiranas, сегодня ночью вышел coedit 3.6.20. Попробуй установи последний релиз, а потом закинь exe-шник, который я собрал из исходников под win32.
Релиз coedit: https://github.com/BBasile/Coedit/releases/download/v3.6.20/coedit.3.6.20.win32.setup.zip
Мой "патч": https://yadi.sk/d/fW2SnOGraTsm5A


Сейчас посмотрел разрядность оригинала и моей версии - моя 32-битная, а оригинал 64, хотя подписан, как win32.
« Last Edit: October 08, 2018, 06:19:15 AM by Vuvk »
Crudux Cruo!

Online Tiranas

  • Friends
  • Esquire
  • *
  • Posts: 60
  • Reputation 30
  • Совсем Тёмный.
Re: WS3D+D Language
« Reply #10 on: October 08, 2018, 06:26:39 AM »

Двадцатка, так же - Отказано в доступе
Патч запустился, но завис...
Людям с более широким кругозором ведомо, что четкой границы между реальным, действительным и ирреальным воображаемым не существует, что каждый из нас, благодаря тонким физиологическим и психологическим различиям, воспринимает все явления по-своему. (Говард Филлипс Лавкрафт)

Offline Nikolas - WS3D Developer

  • Programmer
  • Global Moderator
  • Marquess
  • *
  • Posts: 869
  • Reputation 59
Re: WS3D+D Language
« Reply #11 on: October 08, 2018, 03:47:57 PM »
Предлагаю пройтись по варианту WS3D+CodeBlocks+D Lang.

Накатал инструкцию, как это вижу сам.

В любом случае думаю, надо добавить обе в хелп.
Под лежачий камень мы всегда успеем...

Offline Nikolas - WS3D Developer

  • Programmer
  • Global Moderator
  • Marquess
  • *
  • Posts: 869
  • Reputation 59
Re: WS3D+D Language
« Reply #12 on: October 08, 2018, 07:30:49 PM »
Quote
сегодня ночью вышел coedit 3.6.20. Попробуй установи последний релиз, а потом закинь exe-шник, который я собрал из исходников под win32.
Релиз coedit: https://github.com/BBasile/Coedit/releases/download/v3.6.20/coedit.3.6.20.win32.setup.zip

Запустилось без патча, все OK.

После патча запустилось тоже.

Tiranas: пора делать format C:  (впрочем, так уже лет 15 никто не делает)

Win7 X64
« Last Edit: October 08, 2018, 07:33:42 PM by Nikolas - WS3D Developer »
Под лежачий камень мы всегда успеем...

Online Tiranas

  • Friends
  • Esquire
  • *
  • Posts: 60
  • Reputation 30
  • Совсем Тёмный.
Re: WS3D+D Language
« Reply #13 on: October 08, 2018, 08:00:03 PM »
Nikolas
Вечер добрый!

Quote
Tiranas: пора делать format C:  (впрочем, так уже лет 15 никто не делает)

Зачем формат-то?
У меня всё отлично работает, даже экзотические приложения и те которые на x64 не работают, собственно, поэтому и не ставлю x64, точнее у меня она стоит, но надо перезагружаться.

Людям с более широким кругозором ведомо, что четкой границы между реальным, действительным и ирреальным воображаемым не существует, что каждый из нас, благодаря тонким физиологическим и психологическим различиям, воспринимает все явления по-своему. (Говард Филлипс Лавкрафт)