“RUN” それは魔法の言葉

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

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

最後はゲームの微調整部分。
このゲームも200点と500点でミスがクリアされる。
「マンホール」では、1回につき1点しか入らないので、スコア判定も楽だったけど、「オクトパス」は、財宝を取るとその場で1点、船に戻ると3点入る。なので、2か所で判定処理をしなくてはならなかった。

! 財宝ゲット
IF ptake_f=1 & pos=6 THEN
 IF bagpos<10 THEN
  GR.HIDE p_obj[bagpos-1]
  GR.SHOW p_obj[bagpos]
  bagpos++
 ELSE
  pos=6
  ptake_f=0
  sc++
  SOUNDPOOL.PLAY sp,2,0.99,0.99
  VIBRATE vpt[],-1
  GR.HIDE p_obj[bagpos-1]
  GR.SHOW p_obj[pos]
  if sc=200 | sc=500 then GOSUB miss_clear
 ENDIF
 GR.RENDER
ENDIF

bag_score: % 船に戻った

bsc=sc

GR.HIDE p_obj[1]
GR.SHOW p_obj[10]
GR.RENDER
for tt=1 to l*6
next

GR.HIDE p_obj[10]
GR.SHOW p_obj[1]
sc++
SOUNDPOOL.PLAY sp,2,0.99,0.99
GOSUB view_score
GR.RENDER
VIBRATE vpt[],-1
!PAUSE 300
for tt=1 to l*3
next

GR.HIDE p_obj[1]
GR.SHOW p_obj[10]
sc++
SOUNDPOOL.PLAY sp,2,0.99,0.99
GOSUB view_score
GR.RENDER
VIBRATE vpt[],-1
for tt=1 to l*3
next

GR.HIDE p_obj[10]
GR.SHOW p_obj[1]
sc++
SOUNDPOOL.PLAY sp,2,0.99,0.99

GOSUB view_score
GR.RENDER
VIBRATE vpt[],-1
for tt=1 to l*3
next

if (bsc>=197 & bsc<200 & sc>=200) | (bsc>=497 & bsc<500 & sc>=500) then GOSUB miss_clear

start_cnt=20 % 船にいられるカウンタをリセット
bjump=0

RETURN

こうして出来上がったのが、これ。「マンホール」同様、それっぽくて、それなりに遊べるようになった。
youtu.be