- 追加された行はこの色です。
- 削除された行はこの色です。
* 概要 [#r6930bf3]
#contents
** このページについて [#ie2b0c1a]
AngelScript(以下AS)を全く知らない人が,ASについてなんとなく理解してもらえるような記事を書きます。
細かいことについては各ページを参照してください。
** 特徴 [#laa17591]
- 静的型付け。
- 構文がC++にとても似ている。
- C/C++バインディング可能。
- コールーチン対応。
*** 構文がC++にとても似ている [#e7d5afb5]
構文がC++にとても似ているため,C++経験者であれば構文について少し勉強するだけでコーディングを始められます。
また,C++ソースコードをメインとして使用するプロジェクトでは
ASソースコードとC++ソースコードの2つをコーディングしていくことになります。
そのような状況で,両者の構文が似ているため,頭を大きく切り換える必要がないため,混乱が少なくて済みます。
以下がASのソースコードの例です。
#code(c,){{
// Vector3型の宣言。
class Vector3
{
// メンバ変数の宣言
// public,privateなどのアクセス修飾子はありません
float x;
float y;
float z;
// コンストラクタ
Vector3(float aX, float aY, float aZ)
{
mX = aX;
mY = aY;
mZ = aZ;
}
// デストラクタ
~Vector3()
{
}
// メンバ関数
void add(
const Vector3 &in aVec // 引数にconstや参照修飾子を付けることができます
)
{
mX += aVec.x;
mY += aVec.y;
mZ += aVec.z;
}
// constメンバ関数もあります
float sum()const
{
return mX + mY + mZ;
}
// 演算子のオーバーロードもできます
Vector3@ opAdd(
const Vector3 &in aVec
)
{
add( aVec );
return this;
}
}; // セミコロンはあってもなくても可能。
}}