AngelScript

AngelScript
Aslogo.png
Podstawowe dane
Paradygmaty : zorientowany obiektowo
imperatyw
strukturalny
funkcjonalny
Rok wydania: 2003
Deweloper: Andreas Jönsson
Aktualna  wersja 2.34.0   (22 września 2019)
Wpisywanie : statyczny
Wpływem: C , C ++
System operacyjny : niezależna od platformy
Licencja : Licencja zlib
angelcode.com/angelscript

AngelScript (skrót AS ) to język skryptowy mocno oparty na C ++ . Został specjalnie zaprojektowany jako rozszerzenie programów C i C ++ i jest używany głównie w grach komputerowych i ich silnikach bazowych . Programy AngelScript można integrować z programami C ++ za pośrednictwem interfejsu programowania AngelScript (API). AngelScript jest open source , jest rozpowszechniany na bezpłatnej licencji zlib i jest kompatybilny z wieloma systemami operacyjnymi i kompilatorami .

język

Ponieważ AngelScript jest specjalnie zaprojektowany do użytku z C ++, jest silnie zorientowany na to. AngelScript obsługuje te same podstawowe typy danych ( int , bool , ...), jest zorientowany obiektowo i używa prawie takiej samej składni jak C ++. Istnieją jednak pewne różnice w porównaniu z C ++:

  • Operator wskaźnik * z C ++ nie istnieje, zamiast tam jest @ operatora, który działa w podobny sposób
  • tylko publiczne i prywatne jako modyfikatory dostępu (dodatkowo chronione w C ++ )
  • Klasy mogą dziedziczyć tylko z jednej klasy bazowej (w C ++ z dowolnej liczby)
  • Funkcje klas są automatycznie wirtualne (w C ++ należy to wyraźnie zaznaczyć)

Kod źródłowy AngelScript jest zwykle przechowywany w plikach .as . Poniższy przykładowy kod źródłowy przedstawia przykład prostego pliku as .

//Datei "beispiel.as"

void main()
{
    //Variablendeklarationen, -initialisationen und -operationen wie in C++
    int a = 5;
    ++a;
    int b = a + 3;

    if(b == 9)
    {
        /* wurde die Funktion print(string) vorher im C++-Quelltext registriert,
         * so wird sie jetzt aus AS heraus aufgerufen
         */
        print("Hello world\n");
    }
}

posługiwać się

AngelScript jest używany w wielu grach komputerowych, w tym Amnesia: The Dark Descent , serii Penumbra , Warsow , Warhammer: Mark of Chaos i wielu innych dużych i małych projektach.

Integracja z istniejącym kodem źródłowym C ++ odbywa się poprzez „rejestrację” funkcji i klas C ++ za pomocą silnika AngelScript. Poniższy przykładowy kod źródłowy przedstawia przykład rejestrowania klasy Auto z jej metodami start () i brake () .

//Datei beispiel.cpp

#include "angelscript.h"

class Auto
{
    public:
        void starten(){};
        void bremsen(){};
};

int main()
{
    asIScriptEngine *engine = asCreateScriptEngine(ANGELSCRIPT_VERSION);

    engine->RegisterObjectType("Auto", 0, asOBJ_REF);

    engine->RegisterObjectMethod("Auto", "void starten()", asMETHOD(Auto,starten), asCALL_THISCALL);
    engine->RegisterObjectMethod("Auto", "void bremsen()", asMETHOD(Auto,bremsen), asCALL_THISCALL);

    return 0;
}

Funkcje globalne można również zarejestrować w podobny sposób.

rozwój

Nowe wersje z poprawkami błędów i nowymi funkcjami pojawiają się w nieregularnych odstępach czasu. Ponieważ kod źródłowy jest swobodnie dostępny, lista deweloperów obejmuje głównego programistę, a także wielu ochotników, którzy uczestniczyli w rozwoju i ulepszaniu języka i API.

linki internetowe

Indywidualne dowody

  1. Lista wszystkich programistów
  2. Niekompletna lista oprogramowania używającego AngelScript
  3. ^ Zmiany AngelScript. AngelCode.com, dostęp 28 grudnia 2018 .