“RUN” それは魔法の言葉

私とコンピュータの思い出を、だらだらと綴ります。最近はHSP3でのゲーム作り日記です

186.HSPでゲームを作ろう:竜巻鮫 その8

ゲーム本編ではない部分の作成に取り掛かった。

まずは、ミス時のアニメーション処理。
本物のゲームウォッチと違って、液晶じゃないから、重ねて表示してもよかったんだけど、せっかくここまでこだわってきたので、狭苦しいところに2パターンだけ、新しいグラフィックを追加して、アニメーションさせた。
テストプレイしてもらった友人は、気に入ってくれた♪

次は、ゲームセレクト画面の作成。
処理するボタンは5つ。

  • GAME Aボタン
  • GAME Bボタン
  • MUSICボタン
  • TIMEボタン
  • MANUALボタン

ゲーム本体で作成したタッチ処理を使ってもよかったが、こっちは同時押しをさせたくないので、従来通りのシングルタッチのみ判定する処理を、パラシュートのプログラムから移植。あとはタッチしたXY座標の範囲をif文で判定して、処理を行った。
そして、今回はキーボード操作には対応させなかったので、マウスでクリックしてもらう。

;タッチパネル操作の判定

mtlist touchid
num=stat
if num>0 & touched=0 { ;一本以上指がタッチしていて、かつタッチした直後なら
  id = touchid(0) ;一本目のタッチは0番目
  mtinfo touch,id
  if touch(0)=1 { ;タッチがオンならば
    ;タッチされた座標を変数に代入、タッチしたフラグを付ける
    tx=touch(1):ty=touch(2):touched=1

    ;ボタンを押したか座標で判定
    if tx>=1107 and tx<=1210 {
      if ty>=73 and ty<=128 { ;GAME A
        gamemode=GAMEA
      }
      if ty>=146 and ty<=199 { ;GAME B
        gamemode=GAMEB
      }
      if ty>=219 and ty<=274  { ;MUSIC
        mvol--
        if mvol<0 : mvol=4
      }
      if ty>=293 and ty<=384  { ;TIME
        pause_flg=pause_flg^1
      }
    }
    ;マニュアルボタンを押したかを判定
    if ty>=245 and ty<=298 {
      if tx>=102 & tx<=177 {
        manual_flg=1
        pagecnt=1
      }
    }
  }
} else : if num=0 : touched=0 ;タッチ情報が無くなったら、フラグを戻す

GAME A、Bボタンを押せば即ゲームスタート。

MUSICボタンは、押すたびに音量を4段階+ミュートできるようにした。ミュート時は、液晶の左上に"MUTE"と表示する。
それ以外の音量は、チェーンソーの温度計の目盛りを利用した。

TIMEボタンは、各ゲームのハイスコア表示と、時刻表示を切り替えるようにした。ここもゲームウォッチ再現ということで、12時間表記にしてみた。

MANUALボタンは、取扱説明書風に、青単色で画像を数枚作成し、紙芝居形式でスライドするように画像を表示させることにした。
READMEに書けば済むかもしれないけど、Androidアプリにするので、アプリ内で完結させたかった。

続く。