2月28日 近くのショッピングセンターで北陸工業専門学校と情報システムを専門に教育する姉妹校高岡メディアポートという学校が卒業制作展を開いていたので見に行った。Javaで作成されている対戦型エアーホッケーゲームや,Flashで作ってある仕掛けつきの迷路など,「へぇー」と感心させられるものがあった。また,デザイン的にも優れたものが多かった。
 苦言を呈すとしたら,もう少しユーザー・インタフェースに気を使って,直感的に操作できるようにしたらいいのになと残念に感じた。
 などと,わかった風に書いているが,ほのちゃん(5才)も含め家族5人でダァーと見て回ったので,私の頭が回っていなかっただけかもしれない。
 おっと,肝心なことを忘れていた。マインドストームで作ったロボットも3台あって,赤外線通信で連携して踊っていた。

 そんな卒業制作展に刺激されたのか,かずは「Hot Soupできるけ?」と夕食後に私を待ち構えていた。かずのHSP(Hot Soup Processor)プログラミングは前回から,魚雷戦ゲームの作成を目指している。ビットマップファイルとして作成した戦艦を表示するところまでは,前回で終わっている。

 今日の目標は戦艦を動かすことだ。「勝手に動けば,いいがけ?キーボードで動かせるようにすればいいがけ」とかずは妙なところで引っ掛かっている。「戦艦と潜水艦のどっちが敵キャラ?」と聞くと,「キーで動かせばいいがや」とすぐに納得し,プログラミングを始めた。マニュアル本を片手に,勝手にプログラムを書いていく。「なんかわからんことないか?」と時折声を掛けるが「なーん」とだけ答える。じゃあ,私を待っている必要ないじゃないかと思うが,私は保険のようなものなんだろうとゴロ寝モードに移行した。しばらくゴロゴロしていると,こんなプログラムが出来上がっていた。

----------------------------------------
  buffer 1,,,1
  picload "senkan2.bmp"
  screen 0,640,480, 1
  palcopy 1
  px=600
  py=40
*main
  redraw 2
  gosub *haikei
  stick ky,15
  if ky=1{
    px-=8
    if px<8{
      px=8
    }
  }
  if ky=4{
    px+=8
    if px>600{
      px=600
    }
  }
  pos px,py
  gcopy 1,0,0,32,32
  redraw 1
  wait 1
  goto *main

*haikei
  color 0,255,255
  boxf 0,0,639,479
  color 0,0,255
  boxf 0,60,639,479
  return
----------------------------------------

 senkan2.bmpはhaikeiサブルーチンで描画している背景に合うように,描き直した戦艦のビットマップ画像である。redraw命令が画面を書き換える。パラメータを2にした時は仮想画面を書き換えるだけなので,目に見える変化は起きない。パラメータが 1だと表示されている画面が更新される。
 stickコマンドが押されているキーを読み取る。左矢印キーが押されていると1,右矢印だと 4が返ってくる。押されたキーによりX座標を意味するpxの値を加減算している。picloadコマンドで読み込んであるsenkan2.bmpをpxの位置にgcopyでコピーし直し,redraw 1で画面に反映させている。

左右矢印キーで,この戦艦というほど緊張感のない船が左右にスッーと動く。