Skip to content

kaichitakenaka/mp_exp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

How to build

1. cd ./soft
2. make clean
3. make
4. cd ../hard
5. make clean
6. make
7. make program
./write.shで書き込めます

書き込み完了

How to edit

  • ハードウェアに書き込むファイル: ./mips/soft/test.c
  • 編集するときのファイル: ./main.c
  • 編集内容を書き込みファイルに反映: 書き込み時に自動反映 ./write.sh

Concept

  • 直線上に球を打ち返すゲーム
  • 打ち返すタイミングによって球速が変化
  • 判定するロジックの周波数を高くする必要がある
  • 球を打つたびに効果音

Hardware

  • main board
  • large LCD display
  • buzzer
  • cable 1
  • cable 2
  • extension switch 1
  • extension switch 2

ToDo

  • I/O port 管理(top.v を編集)

External design

  • プレイ人数: 2 人
  • ライフ: 5
  • プレイヤーは球を撃ち返す
  • 撃ち返すラケット位置は固定
  • ボールが適切な位置に移動してきた時に、ボタンを押すと球を撃ち返す(タイミングゲーム)
  • 打ち返せない(画面外にボールが移動する)とライフが-1、ゲーム pause
  • ボタンを押すとボールが撃ち返され、ゲーム再開
  • タイミングが良いと球速が速くなる
  • タイミングがいい時と悪い時でブザー音が変わる
  • ラケットを振ったら(ボタンを押したら)一定時間振ることができない
  • ゲーム開始時と終了時にテロップを表示
  • 画面上にはライフと経過時間を表示

Internal design

  • 必須条件 1: 割り込みハンドラの処理と main の処理を分ける
  • 必須条件 2: 大域変数を使用した値共有の仕様

flow chart

flowChart

program

  1. LCD 描画の class を作成
    • LCD の初期化(init)
    • LCD に描画するフォント・ビットマップ画像の読み込み(load)
    • LCD に描画する情報を保存する情報は、class 変数で管理(set)
    • LCD に描画する情報を更新する関数を作成(dump)
    • LCD をクリアする関数を作成(clear)
  2. LCD 描画の class を使用して、LCD に描画する情報を更新する class を作成
    • ゲーム開始時のテロップの情報を書き込み
    • ゲーム終了時のテロップの情報を書き込み
    • ゲーム画面の情報を書き込み
    • ゲームのポーズ画面の情報を書き込み
    • ゲーム画面の情報を更新
  3. ゲーム内容の管理をする class を作成
    • ゲームパラメーターの初期化
    • ゲーム状態の管理
    • ライフの管理
    • 経過時間の管理
    • クールタイムの管理
    • ボールの位置の管理
    • ボールの速度の管理
    • ボールの移動方向の管理
    • ユーザー入力の処理(ボタン入力の取得と、タイミング判定)
  4. ハンドラー
    • 割り込みハンドラーでボタン入力だけ受理
  5. 大域変数
    • ハンドラーで受理したボタン入力を、大域変数に格納
  6. main
    • LCD 描画の class のインスタンスを作成
    • LCD 描画の class を使用して、LCD に描画する情報を更新する class のインスタンスを作成
    • ゲーム内容の管理をする class のインスタンスを作成
    • 割り込みハンドラーの登録
    • メインループ(state を用いた状態遷移)
      • 0: ゲーム開始前、画面とゲームの init を呼び出す
      • 1: テロップ表示、ユーザーの入力待ち
      • 2: ゲーム中、ゲームの loop を呼び出す
      • 3: ゲーム終了、テロップ表示。ユーザーの入力待ち

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Verilog 49.6%
  • Tcl 24.8%
  • JavaScript 12.6%
  • C 6.9%
  • Shell 4.0%
  • Makefile 1.6%
  • Other 0.5%