C++/オープンソースライブラリゲームプログラミング/AngelScript/構文
をテンプレートにして作成
ホーム
検索
最終更新
ヘルプ
Wiki書式ヘルプ(整形ルール)
開始行:
* 構文 [#l789f3fc]
#contents
** class [#zbe0b959]
- public,protected,privateは無し。
- 継承もなし。
- コンストラクタ,デストラクタは有り。
- operatorは可能?(未確認)
** import [#tf87bcd5]
他のmoduleの''関数''(Typeは不可)を自分のmodule内で使う...
なので,一工夫したほうがいいかも。
その一例。
実装クラス(L_MathVector3)はIObjectを必ず継承する。
外部に公開する関数(F_MathVector3_*)はクラス外に宣言し,引...
他のモジュールは,公開されたその関数を通してアクセスする...
:C++コード|
#code(c,){{
// IObject型を追加。
engine->RegisterInterface("IObject");
}}
:Vector3_Local.as|
こいつは,mathモジュールでのみコンパイルされる。
クラスの内部実装を記述している。
#code(c,){{
// module math - local
class L_MathVector3 : IObject
{
L_MathVector3(){ /* */ }
float mX;
float mY;
float mZ;
float& x()
{
return mX;
}
void normalize()
{
//...
}
};
IObject@ F_MathVector3_Constructor()
{
MathVector3 obj;
return @obj;
}
float& F_MathVector3_x( const IObject@ in obj )
{
return cast<L_Vector3>(obj).mX;
}
void F_MathVector3_normalize( IObject@ obj )
{
cast<L_Vector3>(obj).normalize();
}
}}
:Vector3.as|
こいつは,他のmoduleでコンパイルされる。
クラスの内部実装は書かず,内部実装が書かれている関数を呼...
#code(c,){{
// module public
import IObject@ F_MathVector3_Constructor() from "math";
import float& F_MathVector3_x( const IObject& in ) from "...
import void F_MathVector3_normalize( const IObject& in ) ...
class MathVector3
{
MathVector3()
{
mObj = F_MathVector3_Constructor();
}
IObject@ mObj;
float& x()
{
return F_MathVector3_x( mObj );
}
void normalize()
{
F_MathVector3_normalize( mObj );
}
};
}}
終了行:
* 構文 [#l789f3fc]
#contents
** class [#zbe0b959]
- public,protected,privateは無し。
- 継承もなし。
- コンストラクタ,デストラクタは有り。
- operatorは可能?(未確認)
** import [#tf87bcd5]
他のmoduleの''関数''(Typeは不可)を自分のmodule内で使う...
なので,一工夫したほうがいいかも。
その一例。
実装クラス(L_MathVector3)はIObjectを必ず継承する。
外部に公開する関数(F_MathVector3_*)はクラス外に宣言し,引...
他のモジュールは,公開されたその関数を通してアクセスする...
:C++コード|
#code(c,){{
// IObject型を追加。
engine->RegisterInterface("IObject");
}}
:Vector3_Local.as|
こいつは,mathモジュールでのみコンパイルされる。
クラスの内部実装を記述している。
#code(c,){{
// module math - local
class L_MathVector3 : IObject
{
L_MathVector3(){ /* */ }
float mX;
float mY;
float mZ;
float& x()
{
return mX;
}
void normalize()
{
//...
}
};
IObject@ F_MathVector3_Constructor()
{
MathVector3 obj;
return @obj;
}
float& F_MathVector3_x( const IObject@ in obj )
{
return cast<L_Vector3>(obj).mX;
}
void F_MathVector3_normalize( IObject@ obj )
{
cast<L_Vector3>(obj).normalize();
}
}}
:Vector3.as|
こいつは,他のmoduleでコンパイルされる。
クラスの内部実装は書かず,内部実装が書かれている関数を呼...
#code(c,){{
// module public
import IObject@ F_MathVector3_Constructor() from "math";
import float& F_MathVector3_x( const IObject& in ) from "...
import void F_MathVector3_normalize( const IObject& in ) ...
class MathVector3
{
MathVector3()
{
mObj = F_MathVector3_Constructor();
}
IObject@ mObj;
float& x()
{
return F_MathVector3_x( mObj );
}
void normalize()
{
F_MathVector3_normalize( mObj );
}
};
}}
ページ名: