1. cd ./soft
2. make clean
3. make
4. cd ../hard
5. make clean
6. make
7. make program
./write.shで書き込めます
書き込み完了
- ハードウェアに書き込むファイル:
./mips/soft/test.c - 編集するときのファイル:
./main.c - 編集内容を書き込みファイルに反映: 書き込み時に自動反映
./write.sh
- 直線上に球を打ち返すゲーム
- 打ち返すタイミングによって球速が変化
- 判定するロジックの周波数を高くする必要がある
- 球を打つたびに効果音
- main board
- large LCD display
- buzzer
- cable 1
- cable 2
- extension switch 1
- extension switch 2
- 音
- I/O port 管理(top.v を編集)
- プレイ人数: 2 人
- ライフ: 5
- プレイヤーは球を撃ち返す
- 撃ち返すラケット位置は固定
- ボールが適切な位置に移動してきた時に、ボタンを押すと球を撃ち返す(タイミングゲーム)
- 打ち返せない(画面外にボールが移動する)とライフが-1、ゲーム pause
- ボタンを押すとボールが撃ち返され、ゲーム再開
- タイミングが良いと球速が速くなる
- タイミングがいい時と悪い時でブザー音が変わる
- ラケットを振ったら(ボタンを押したら)一定時間振ることができない
- ゲーム開始時と終了時にテロップを表示
- 画面上にはライフと経過時間を表示
- 必須条件 1: 割り込みハンドラの処理と main の処理を分ける
- 必須条件 2: 大域変数を使用した値共有の仕様
- LCD 描画の class を作成
- LCD の初期化(init)
- LCD に描画するフォント・ビットマップ画像の読み込み(load)
- LCD に描画する情報を保存する情報は、class 変数で管理(set)
- LCD に描画する情報を更新する関数を作成(dump)
- LCD をクリアする関数を作成(clear)
- LCD 描画の class を使用して、LCD に描画する情報を更新する class を作成
- ゲーム開始時のテロップの情報を書き込み
- ゲーム終了時のテロップの情報を書き込み
- ゲーム画面の情報を書き込み
- ゲームのポーズ画面の情報を書き込み
- ゲーム画面の情報を更新
- ゲーム内容の管理をする class を作成
- ゲームパラメーターの初期化
- ゲーム状態の管理
- ライフの管理
- 経過時間の管理
- クールタイムの管理
- ボールの位置の管理
- ボールの速度の管理
- ボールの移動方向の管理
- ユーザー入力の処理(ボタン入力の取得と、タイミング判定)
- ハンドラー
- 割り込みハンドラーでボタン入力だけ受理
- 大域変数
- ハンドラーで受理したボタン入力を、大域変数に格納
- main
- LCD 描画の class のインスタンスを作成
- LCD 描画の class を使用して、LCD に描画する情報を更新する class のインスタンスを作成
- ゲーム内容の管理をする class のインスタンスを作成
- 割り込みハンドラーの登録
- メインループ(state を用いた状態遷移)
- 0: ゲーム開始前、画面とゲームの init を呼び出す
- 1: テロップ表示、ユーザーの入力待ち
- 2: ゲーム中、ゲームの loop を呼び出す
- 3: ゲーム終了、テロップ表示。ユーザーの入力待ち
