タスクシステム総合スレ part2at GAMEDEVタスクシステム総合スレ part2 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト164:名前は開発中のものです。 08/05/26 02:51:26 lNPZHMUK >>162 君こそ通常時の遷移が抜けてるぜw 状態遷移図書いたらわかるけど、このケースだと状態が 赤、黄、青、赤点滅、黄点滅、青点滅の六つ必要になってる 俺は状態遷移そのものが複雑なだけと見てるから その割には単純になったと思ってる どっちを選択しても複雑なんだから StateをCommandとしてListに突っ込んでさらに複雑にするのは バカげていると思わないかい? 165:名前は開発中のものです。 08/05/26 03:18:22 j2qTftQO どーでもいいじゃん 166:名前は開発中のものです。 08/05/26 03:53:53 J4tqU4Kx あー、ごめん。「点滅」は色とは関係ないつもりだった。実際は黄色か赤だろうけど。 つまり、State は4つで、夜間は殴ってもなにも起きなくていい。 つか、自分で仕様変更して自分でソース書いてるんだから、 「状態の数が違う」みたいな豪快なバグは入れないよ。 でも、状態が6つだとしても、>>158 はおかしいだろ。 夜間に殴りつづけると、点滅→赤→青→点滅……と変わっていくんじゃないの? 通常時の遷移はわざわざ書く必要もないだろうし、改行が多すぎて拒否されたんで省いたけど、 その部分だけ書くと、こんな感じかな。 class 信号 { static const int 赤時間; static const int 黄時間; static const int 青時間; int timer; void SetState(State state) { this->state = state; timer = 0; } void 赤処理() { if (++timer >= 赤時間) SetState(青); } void 黄処理() { if (++timer >= 黄時間) SetState(赤); } void 青処理() { if (++timer >= 青時間) SetState(黄); } }; >StateをCommandとしてListに突っ込んで というのが分からんのだが、List に突っ込むのは タスク (この場合は信号オブジェクト) であって、State じゃないだろ。 状態ごとの処理は各タスク内で完結してるんだから、さらに複雑にはならんよ。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch