シューティングゲームのステージの流れを関数を使ってスマートに表すアイディア |
●以下の様に,各ステージの処理を関数にまとめると良い。
・main()関数の中身が分かり易くなる(処理の流れが一目瞭然)。
・各関数を異なる開発スタッフが担当するなど,分業にも適している。
・一人でプログラムを作る場合も,関数を作成している間は,その関数の処理に集中して開発できる。
stagefuncs.cpp
01 | /* |
02 | * シューティングゲームなどでステージ処理を分かり易く関数に分割した例 |
03 | */ |
04 | |
05 | /* このステージで生き抜いたら1、死んだら0を返す */ |
06 | int stage1() { |
07 | /* ステージ1の処理 */ |
08 | while ( 1 ) { |
09 | /* 無限ループ内でゲームの処理を行う */ |
10 | if ( プレイヤーの負け ) return 0; |
11 | if ( ステージクリア ) break ; |
12 | } |
13 | return 1; |
14 | } |
15 | |
16 | /* このステージで生き抜いたら1、死んだら0を返す */ |
17 | int stage2() { |
18 | /* ステージ2の処理 */ |
19 | } |
20 | |
21 | /* このステージで生き抜いたら1、死んだら0を返す */ |
22 | int stage3() { |
23 | /* ステージ3の処理 */ |
24 | } |
25 | |
26 | void goodEnding() { |
27 | /* グッドエンディング表示 */ |
28 | } |
29 | |
30 | void badEnding() { |
31 | /* バッドエンディング表示 */ |
32 | } |
33 | |
34 | int main( void ) { |
35 | |
36 | if ( stage1() == 0 ) { |
37 | badEnding(); |
38 | return 0; |
39 | } |
40 | |
41 | if ( stage2() == 0 ) { |
42 | badEnding(); |
43 | return 0; |
44 | } |
45 | |
46 | if ( stage3() == 0 ) { |
47 | badEnding(); |
48 | return 0; |
49 | } |
50 | |
51 | goodEnding(); |
52 | |
53 | return 0; |
54 | } |