AngelScript
| AngelScript | |
|---|---|
| |
| 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
- ↑ Lista wszystkich programistów
- ↑ Niekompletna lista oprogramowania używającego AngelScript
- ^ Zmiany AngelScript. AngelCode.com, dostęp 28 grudnia 2018 .
