2月15日(日) 私は富山県高岡市の情報化を推進するITネットワークアシストたかおか(略称NAT)というボランティア団体に所属している。この日は朝から,高岡市児童文化センターという施設でマインドストームによるロボット体験教室を行い,私は小学生の参加者たちをサポートした。
 次男かずも一緒に出かけ,3年生の参加者のサポートをした。というか兄弟のように一緒に遊んでいた。
 NATにはマインドストーム2.0が5セットしかないので,こじんまりとした教室なのだが,子供たちの熱気が直に伝わってきて楽しい時間であった。

 さて,そんな日もかずのHSP (Hot Soup Processor)プログラミングは続く。シューティングゲームを作ることになったのだが,ロケットでUFOを撃つゲームでは,あまりにありきたりなので,魚雷船ゲームを作ろうと,戦艦の絵を描くところから,この日のHSPタイムは始まった。
 戦艦の絵はPictBearというフリーソフトで描く(PictBearは高機能なフリーのフルカラー・ペイント・ソフトウエアです)。

 しかし,32 x 32ドットで描くかずの絵は,イマイチである。「戦艦って,どんなんやろう」と検索して出てきた画像が「宇宙戦艦ヤマト」ばっかりだったのも,戦艦らしくなさに影響を及ぼしたようだ。

----------------------------------------
  buffer 1,,,1
  picload "senkan.bmp"
  screen 0,640,480,1
  palcopy 1
  px=600
  py=40
  color 0,0,0
  boxf 0,0,639,479
  pos px,py
  gcopy 1,0,0,32,32
  stop
----------------------------------------

 プログラムは前回(150話)紹介した書籍「HSP2.55プログラミング入門」のサンプルプログラムをほとんどそのまま打ち込んだ。

 コードを順に説明すると,bufferはメモリー上に仮想画面を作る命令で,第1引数でウィンドウIDを指定する。picload命令は画像ファイルを現在の画面,この場合はウィンドウID1の仮想画面にロードする。仮想画面だから,この時点では何も表示されない。picload命令はBMP形式のほかにJPEG形式の画像ファイルなどもロードできる。
 screen命令は,これまでにも出てきたが,画面を初期化する。次のpalcopy命令がわかりにくい。第1引数で指定したウィンドウID のパレットを現在の画面,この場合はウィンドウID0の画面にコピーすることを意味するらしいが,その役割は直感的にはわかりにくいものだ。自分でいろいろいじってみて,おかしな現象を出してみないと理解できないかもしれない。
 color 0,0,0はR,G,Bの値が全部0なので,黒色の選択を意味する。次のboxf命令で画面を黒く塗りつぶす。
 pos命令でpx,py座標にポジショニングし,gcopy命令でウィンドウID1の仮想画面の内容,つまり戦艦を目に見える画面にコピーしている。

 実行すると,どっちが前だか後ろだかわかりにくい戦艦が表示された。

   最近,あまり写真を載せていないので,かずがパソコンで絵を描いているところを後ろから撮ってみた。思えば,もう何年もこうして,こうしろうやかずがMindStormsでロボットを作ったり,パソコンで絵を描いたり,プログラミングをする様子を肩越しに眺めている。