N64 NuSystem Sample Game SNAKE TAIL HACK ファイル及び関数説明 font.c 画面への文字表示関係です。 ・画面上に8x8、4x8の文字を表示します --gamemain.c ゲームのメイン処理-- void makegameDL(void) ディスプレイリストを作り、グラフィックタスクを起動します void updateGame(void) ゲームメイン部分の進行処理をします void InitSnake(void) 各種パラメーターの初期化をします void InitShotTail(void) 打ち出すテイルの初期化をします void EntryShotTail(int, int) ショット用テイルのエントリーをします void EraseShotTail(int) ショット用テイルの登録抹消をします void SlideTail(int) 自機のテイルをローテートします void ShotTailMove(void) 打ち出したテイルを動かします void DrawHead(Dynamic*, int) 自機の頭を表示します void DrawTail(Dynamic*, int) 自機のテイルを表示します void RecordHeadPos(int) ヘッドの軌跡をバッファに記録します void UpdateTailPos(int) ヘッドの軌跡をテイルが追いかけます void DrawShotTail(Dynamic*) 打ち出したテイルを表示します void ChgHeadDir(int, int, int) 3Dスティックの方向にヘッドを向かせます(90度単位) void ReadMovie(int) ムービーテクスチャーをROMからRAMに読み込みます void DrawInfo(void) 画面情報を表示します int CheckTailNum(int) ゲーム終了判定時に各スネークのテイルの数を数えます void InitGame(void) メインゲーム部分の各種初期化をします gametitle.c ゲームのタイトル処理 void maketitleDL(void) ディスプレイリストを作り、グラフィックタスクを起動します void updateTitle(void) タイトル進行処理をします void DrawTitle(void) タイトル画面描画をします gameover.c ゲームオーバー処理 void makegameoverDL(void) ディスプレイリストを作り、グラフィックタスクを起動します void updateGameOver(void) ゲームオーバー進行処理をします void DrawGameOver(void) ゲームオーバー画面描画をします gamepakerr.c コントローラーパックエラー処理(接続エラーの場合) void makepakerrDL(void) ディスプレイリストを作り、グラフィックタスクを起動します void updatePakErr(void) コントローラーパックエラー進行処理をします void DrawErr(void) パックエラー画面描画をします gamepakrwerr.c コントローラーパックエラー処理(書き込み、読み込みのエラーの場合) void makepakrwerrDL(void) ディスプレイリストを作り、グラフィックタスクを起動します void updateRwPakErr(void) パックエラー進行処理をします void DrawRwErr(void) パックエラー画面描画をします gfxinit.c N64の諸設定ディスプレイリストデータ群 graphic.c グラフィック汎用ルーチン void gfxRCPInit(void) RCPの初期化をします void gfxClearCfb(void) フレームバッファ/Zバッファのクリアをします hitchk.c ゲーム中の当り判定 void Snake2Wall(int) ヘッドと壁との当り判定をします void Snake2Obj(int) ヘッドとマップオブジェクトとの当り判定をします void Snake2Enemy(int) ヘッドと敵との当り判定をします int ShotTail2Wall(float, float) 打ち出したテイルと壁との当り判定をします int ShotTail2Obj(float, float) 打ち出したテイルと障害物との当り判定をします void Snake2ShotTail(int) 自機と打ち出されたテイルとの当り判定をします void Snake2EnemyTail(int) 自機と敵のテイルとの当り判定をします main.c メイン void mainproc(void) メインプロセスです void gametitle(int) タイトルのプロセスです void gamemain(int) ゲームメインのプロセスです void gameover(int) ゲームオーバーのプロセスです void pakerr(int) コントローラーパックエラーのプロセスです void pakrwerr(int) コントローラーパック読み書きエラーのプロセスです void SavePadData(void) パッドデータをバッファに記録します void SaveContPak(void) パッドデータをコントローラーパックに書き込みます void LoadContPak(void) パッドデータをコントローラーパックから読み込みます void ReplayPadData(void) セーブしたパッドデータで再生します void ContPakOpenAll(void) コントローラーパックのオープンをします int ChkPakStat(void) オープンしたコントローラーパックのステータスのチェックをします void NoteOpenAll(void) オープンしたコントローラーパックのゲームノートをオープンします map.c ゲームマップ関係 void DrawMap(Dynamic*) マップのベースを描きます void DrawMapSaku(Dynamic*) マップの柵を描きます void DrawMapObj(Dynamic*) マップ上のオブジェクトを描きます void DrawMovie( Dynamic*, unsigned short *) マップ中央部のムービー部分を描きます math.c 計算(アークタンジェント) float atan2bodyf(float,float) 実際のアークタンジェントの計算部分です float Atan2f(float, float) atan2bodyf()の呼び出し部分です s8 Zettai(s8) 絶対値を返します view.c 視点マトリックスの設定 void SetViewMtx(Dynamic*) 視点マトリックスの設定(通常時)をします void SetViewMtxGameOver(Dynamic*) 視点マトリックスの設定(ゲームオーバー時)をします