AngelScript

AngelScript
Aslogo.png
Datos básicos
Paradigmas :
imperativo orientado a objetos
estructurado
funcional
Año de publicación: 2003
Desarrollador: Andreas Jönsson
Versión actual  2.34.0   (22 de septiembre de 2019)
Escribiendo : estático
Influenciado por: C , C ++
Sistema operativo : plataforma independiente
Licencia : licencia zlib
angelcode.com/angelscript

AngelScript ( AS abreviado ) es un lenguaje de secuencias de comandos fuertemente basado en C ++ . Fue diseñado especialmente como una extensión para programas C y C ++ y se usa principalmente en juegos de computadora y sus motores subyacentes . Los programas AngelScript se pueden integrar en programas C ++ a través de la interfaz de programación (API) AngelScript. AngelScript es de código abierto , se distribuye bajo la licencia gratuita zlib y es compatible con muchos sistemas operativos y compiladores .

idioma

Dado que AngelScript está especialmente diseñado para usarse con C ++, está fuertemente orientado hacia él. AngelScript admite los mismos tipos de datos elementales ( int , bool , ...), está orientado a objetos y usa casi la misma sintaxis que C ++. Sin embargo, también existen algunas diferencias con C ++:

  • El operador de puntero * de C ++ no existe, en su lugar está el operador @ , que funciona de manera similar
  • solo público y privado como modificadores de acceso (adicionalmente protegido en C ++ )
  • Las clases solo pueden heredar de una clase base (en C ++ de cualquier número)
  • Las funciones de clase son automáticamente virtuales (en C ++ esto debe marcarse explícitamente)

El código fuente de AngelScript generalmente se almacena en archivos .as . El siguiente código fuente de muestra muestra un ejemplo de un archivo .as simple .

//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");
    }
}

utilizar

AngelScript se usa en muchos juegos de computadora, incluidos Amnesia: The Dark Descent , la serie Penumbra , Warsow , Warhammer: Mark of Chaos y muchos otros proyectos grandes y pequeños.

La integración en el código fuente de C ++ existente se realiza "registrando" las funciones y clases de C ++ con el motor AngelScript. El siguiente código fuente de muestra da un ejemplo para registrar una clase Auto con sus métodos start () y 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;
}

Las funciones globales también se pueden registrar de forma similar.

desarrollo

Aparecen nuevas versiones con correcciones de errores y nuevas funciones a intervalos irregulares. Dado que el código fuente es de libre acceso, la lista de desarrolladores incluye al programador principal, así como a muchos voluntarios que han participado en el desarrollo y mejora del lenguaje y la API.

enlaces web

Evidencia individual

  1. Lista de todos los desarrolladores
  2. Lista incompleta de software que usa AngelScript
  3. ^ Cambios de AngelScript. AngelCode.com, consultado el 28 de diciembre de 2018 .