“RUN” それは魔法の言葉

私とコンピュータの思い出を、だらだらと綴ります。

62.ゲーム&ウォッチのオクトパスを作ろう その3

液晶パターン切り出しの続きで、潜水夫の話。潜水夫も、かなり面倒なことがわかった。

潜水夫の位置は、5か所+船の上。これを切り出すだけなら、そんなに大変じゃないが、このゲームのミッション、宝箱から財宝をゲットすると、潜水夫の手には袋が表示されるのだ。

f:id:CORO3:20210110223428j:plain

これはタコの足と同じようにせず、1つずつ袋も切り出して表示するようにした。
他にもミスの時のタコ足と潜水夫のアニメパターン、財宝をゲットするアニメパターン、財宝を持って船に戻った時のアニメパターンなどを切り出すと、結構な数になった。

f:id:CORO3:20210110223628j:plain

これらの画像を、GR.BITMAP.LOAD命令で読み込んで、GR.BITMAP.DRAW命令で、液晶パターンと重なるように座標を調整しながら表示させた。

!背景画像読み込み・描画
GR.BITMAP.LOAD oct_bg1,"oct_bg1.png"
GR.BITMAP.DRAW bg1,oct_bg1,0,0

!タコ画像読み込み
GR.BITMAP.LOAD o_body,"oct_body.png"
GR.BITMAP.DRAW ob,o_body,252,115

!プレイヤーキャラ画像読み込み
DIM p_obj[10] %潜水夫オブジェクト

GR.BITMAP.LOAD p_png, "oct_p0.png" 
GR.BITMAP.DRAW p_obj[1],p_png,172,87
GR.BITMAP.LOAD p_png, "oct_p1.png" 
GR.BITMAP.DRAW p_obj[2],p_png,172,131
GR.BITMAP.LOAD p_png, "oct_p2.png" 
GR.BITMAP.DRAW p_obj[3],p_png,179,173
GR.BITMAP.LOAD p_png, "oct_p3.png" 
GR.BITMAP.DRAW p_obj[4],p_png,220,205
GR.BITMAP.LOAD p_png, "oct_p4.png" 
GR.BITMAP.DRAW p_obj[5],p_png,268,205
GR.BITMAP.LOAD p_png, "oct_p5.png" 
GR.BITMAP.DRAW p_obj[6],p_png,328,210
GR.BITMAP.LOAD p_png, "oct_ptake1.png" 
GR.BITMAP.DRAW p_obj[7],p_png,330,211
GR.BITMAP.LOAD p_png, "oct_ptake2.png" 
GR.BITMAP.DRAW p_obj[8],p_png,330,211
GR.BITMAP.LOAD p_png, "oct_ptake3.png" 
GR.BITMAP.DRAW p_obj[9],p_png,330,211
GR.BITMAP.LOAD p_png, "oct_p_b.png" 
GR.BITMAP.DRAW p_obj[10],p_png,170,87

FOR i=2 TO 10
 GR.HIDE p_obj[i]
NEXT

!金塊袋読み込み・描画
DIM pbag_obj[5]
GR.BITMAP.LOAD pbag,"oct_pbag1.png"
GR.BITMAP.DRAW pbag_obj[1],pbag,202,151
GR.BITMAP.LOAD pbag,"oct_pbag2.png"
GR.BITMAP.DRAW pbag_obj[2],pbag,199,209
GR.BITMAP.LOAD pbag,"oct_pbag3.png"
GR.BITMAP.DRAW pbag_obj[3],pbag,248,233
GR.BITMAP.LOAD pbag,"oct_pbag4.png"
GR.BITMAP.DRAW pbag_obj[4],pbag,298,232
GR.BITMAP.LOAD pbag,"oct_pbag5.png"
GR.BITMAP.DRAW pbag_obj[5],pbag,317,227

FOR i=1 TO 5
 GR.HIDE pbag_obj[i]
NEXT

!タコ足読み込み・描画
DIM oleg_obj[5,5]
ARRAY.LOAD oleg_ptn[],3,4,5,4,3 % タコ足パターン数

!タコ足①
GR.BITMAP.LOAD p_leg,"oct_leg1-1.png"
GR.BITMAP.DRAW oleg_obj[1,1],p_leg,201,137
GR.BITMAP.LOAD p_leg,"oct_leg1-2.png"
GR.BITMAP.DRAW oleg_obj[1,2],p_leg,201,137
GR.BITMAP.LOAD p_leg,"oct_leg1-3.png"
GR.BITMAP.DRAW oleg_obj[1,3],p_leg,201,137

!タコ足②
GR.BITMAP.LOAD p_leg,"oct_leg2-1.png"
GR.BITMAP.DRAW oleg_obj[2,1],p_leg,208,142
GR.BITMAP.LOAD p_leg,"oct_leg2-2.png"
GR.BITMAP.DRAW oleg_obj[2,2],p_leg,208,142
GR.BITMAP.LOAD p_leg,"oct_leg2-3.png"
GR.BITMAP.DRAW oleg_obj[2,3],p_leg,208,142
GR.BITMAP.LOAD p_leg,"oct_leg2-4.png"
GR.BITMAP.DRAW oleg_obj[2,4],p_leg,208,142

!タコ足③
GR.BITMAP.LOAD p_leg,"oct_leg3-1.png"
GR.BITMAP.DRAW oleg_obj[3,1],p_leg,250,157
GR.BITMAP.LOAD p_leg,"oct_leg3-2.png"
GR.BITMAP.DRAW oleg_obj[3,2],p_leg,250,157
GR.BITMAP.LOAD p_leg,"oct_leg3-3.png"
GR.BITMAP.DRAW oleg_obj[3,3],p_leg,250,157
GR.BITMAP.LOAD p_leg,"oct_leg3-4.png"
GR.BITMAP.DRAW oleg_obj[3,4],p_leg,250,157
GR.BITMAP.LOAD p_leg,"oct_leg3-5.png"
GR.BITMAP.DRAW oleg_obj[3,5],p_leg,250,157

!タコ足④
GR.BITMAP.LOAD p_leg,"oct_leg4-1.png"
GR.BITMAP.DRAW oleg_obj[4,1],p_leg,294,172
GR.BITMAP.LOAD p_leg,"oct_leg4-2.png"
GR.BITMAP.DRAW oleg_obj[4,2],p_leg,294,172
GR.BITMAP.LOAD p_leg,"oct_leg4-3.png"
GR.BITMAP.DRAW oleg_obj[4,3],p_leg,294,172
GR.BITMAP.LOAD p_leg,"oct_leg4-4.png"
GR.BITMAP.DRAW oleg_obj[4,4],p_leg,294,172

!タコ足⑤
GR.BITMAP.LOAD p_leg,"oct_leg5-1.png"
GR.BITMAP.DRAW oleg_obj[5,1],p_leg,348,186
GR.BITMAP.LOAD p_leg,"oct_leg5-2.png"
GR.BITMAP.DRAW oleg_obj[5,2],p_leg,348,186
GR.BITMAP.LOAD p_leg,"oct_leg5-3.png"
GR.BITMAP.DRAW oleg_obj[5,3],p_leg,348,186

FOR i=1 TO 5
 FOR j=1 TO oleg_ptn[i]
  GR.HIDE oleg_obj[i,j]
 NEXT j
NEXT i

!残り潜水夫マーク読み込み・描画
DIM p_stock[2]
GR.BITMAP.LOAD p_stc,"oct_p_stock.png"
GR.BITMAP.DRAW p_stock[1],p_stc,208,87
GR.BITMAP.DRAW p_stock[2],p_stc,232,87

!ミスパターン読み込み・描画
DIM p_miss[2]
GR.BITMAP.LOAD p_miss,"oct_miss1.png"
GR.BITMAP.DRAW p_miss[1],p_miss,264,155
GR.BITMAP.LOAD p_miss,"oct_miss2.png"
GR.BITMAP.DRAW p_miss[2],p_miss,264,155

FOR i=1 TO 2
 GR.HIDE p_miss[i]
NEXT

!セロファン部読み込み・描画
GR.BITMAP.LOAD oct_bg2,"oct_bg2.png"
GR.COLOR 204,0,0,0 % 画像の透過度を設定
GR.BITMAP.DRAW bg2,oct_bg2,0,0

これから、メインのプログラムを作っていった。