“RUN” それは魔法の言葉

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

226.HSPでゲームを作ろう:鮫蛸獣 その3

次はゲームの根本部分となる、タコ足の動きから作っていく。
タコ足は、一定間隔で伸びて、伸びきったら縮む。そして伸び縮みする間隔が短くなっていく。
ポジションごとに、伸びる節の数を変えている。これによって足が伸びきるタイミングがずれていき、ゲームの楽しさになっている。

伸びる節の数は配列で定義する。

dim octposnum,5 ;ラインごとのタコ足ステップ数
octposnum=5,4,3,4,5

dim octline,5 ;タコ足のライン
octline=-1,-1,-1,-1,-1

dim octmove,5 ;タコ足の進行方向
octmove=1,1,1,1,1

最近のモヤモヤの種w。またもや数値が、一定の範囲内で増減を繰り返す処理 が必要になる。
今回は、足ごとに、プラス方向、マイナス方向なのかを、配列で持つようにした。
ベタだけど、伸び切ったときと、縮み切ったときをif文で判定して、符号を反転するようにした。

これを、一定フレームごとに実行する。
はじめは、一定フレームごとに1本の足だけを伸び縮みさせてみたが、なんかけだるい。
そこで、1本ではなく、すべての足の伸び縮みをさせてみた。こっちのほうがあのタコゲームに近いかな。
さらに適度なずれを発生させるべく、伸び始めのタイミングを乱数を使ってずらすようにしてみた。

repeat 5 
  if octline(cnt)<0 { ;足が伸び始めるタイミングをずらす
    if rnd(10)< : continue
  }
  octline(cnt)+=octmove(cnt) ;足を伸ばす/縮める

  ;両端になったかを判定し、方向を逆転させる
  if octline(cnt)>=octposnum(cnt) : octmove(cnt)=-1
  if octline(cnt)<0 : octmove(cnt)=1
loop

ざっくり動かしてみるとこうなる。(スピードはかなり早めにしている)

まずは、これでいいかな。