!!! モジュール !! はかないボール, ball/ 6< 生成,動き,消える >9 !! 無敵ボール, mighty/ 6< マイティの生成,動き >9 !! 背景, bg/ 6< 背景を動かす >9 !! ゲーム, ball_and_mighty/ 6< ゲームの生成 * 背景の生成 ** イベントの生成 * ボールとマイティの生成 * イベントループ >9 !!! ヘッダファイル !! ball/ball.h 泡のようなはかないボール ! データ構造 8< typedef mySprite *ball; >8 としているが本当は, 8< typedef struct { mySprite sprite; ball独自の情報 } *ball >8 ! ballのAPI * (無敵ボールと出会って)消える 8< void ball_remove(ball self) >8 * 時間とともに動く 8< void ball_move(ball self) >8 6< * 中で壁にぶつかると跳ね返る * 一定時間間隔で呼ばれる >9 * 目覚める 8< ball ball_new(void) >8 !! mighty/mighty.h 無敵ボール ! mightyのデータ構造 8< typedef (mySprite + alpha) *mighty; >8 ! mightyのAPI * 生まれる 8< mighty mighty_new(area) >8 * 時間とともに動く 8< void mighty_mov(mighty self) >8 6< * 壁にぶつかると跳ね返る >9 !! bg/bg.h 見守るペンギン達 ! データ構造 8< typedef myAnimeArea *bg; >8 ! bgのAPI * 生まれる 8< bg_new(area) bg_set(bg_pixmap) >8 * 行進は続く 8< 複数の背景をtimeoutで描く >8 * クリックされる(と泡ボールを生む) 8< 背景のイベント構造体 >8