AngelScript
| AngelScript | |
|---|---|
| |
| 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
- ↑ Lista de todos los desarrolladores
- ↑ Lista incompleta de software que usa AngelScript
- ^ Cambios de AngelScript. AngelCode.com, consultado el 28 de diciembre de 2018 .
