ゲームにおけるデータ構造・クラス設計・パターン
■ このスレッドは過去ログ倉庫に格納されています
0093名前は開発中のものです。
2006/08/31(木) 19:32:51ID:FYTUeEKwキャラの状態が色々あってステートの変化の組み合わせが多い(格ゲー系にありがち)とか、
行動の流れが複雑でプログラムがめんどくさい(シューティングにありがち)とか、
カテゴリはいくらでもありそうだからなぁ
でも大抵はスクリプトを使えば割と面倒なタスク処理が解決すると思うので紹介
タスクを実装するのにvirtual Update() = 0;な関数を用意したクラスを使うのは皆よくやると思うのだが
キャラにとっては一連の流れ(=関数)を一々タイムスライスしてやらなきゃならんのは面倒だ。
そこでスクリプトを使うと結構その辺が簡略化されるよ
例えばシューティングゲームで360度回転しながら弾を撃つ処理を書くときとかが良い例だと思うのだが
class Hoge
{
float m_Angle = 0;
Update() {
m_Angle += AngleVel;
Fire(m_Angle);
if( m_Angle >= 360.0f )
Destroy( this );
}
};
と書くよりは
HogeThread() {
for( float Angle = 0; Angle < 360; Angle += AngleVel; ) {
Fire(m_Angle);
Wait(1);
}
}
と書きたいわけだな。Wiat(1)みたいなのはスクリプトの得意技だ
>>9の例を使うと、class ScriptStrategyみたいな感じのクラスを作るのがいい感じ。
■ このスレッドは過去ログ倉庫に格納されています