見出し画像

【ー】ORANGE pico 用「接続ゲーム」

#クリエイターフェス 7日目、テーマは「ー」である。

接続ゲーム

ORANGE pico で「接続ゲーム」を作ってみた。
成功すると、「ー」のような横一直線が現れる。

ルール

ゲームを開始すると、左上と右下に線が現れる。

ゲーム開始時の様子

左上の線に力を加えて動かし、右下の線にうまく接続することが目的。

ゲーム中の様子

右側に着いたとき、線がずれていると失敗。

線がずれていて失敗した様子

位置がピッタリ合っても、そのときの速度が速すぎると線が折れてしまって失敗。

速度が速すぎて失敗した様子

十分ゆっくりな速度で、位置をピッタリ合わせて右下の線に接続できれば成功。

成功した様子

左上にかかった秒数が出るので、なるべく早くうまく接続を成功させることを目指そう。

操作方法

キーボードで操作する。UART経由では操作できない。
HetaPad でも操作できるはずである。

  • 上下左右の矢印キー:その方向に力を加える

  • スペースキー:リスタート

プログラム

10 black=rgb(0,0,0):white=rgb(255,255,255)
20 cls:line 310,150,320,150,white:px=0:py=50:x! = 10:y! = 50:dx! = 0:dy! = 0:ended=0:cltms:nextframe=0
30 lx = floor(x! + 0.5):ly = floor(y! + 0.5)
40 if lx<=0 then lx=0:gosub 230
50 if ly<=0 then ly=0:gosub 230
60 if ly>=199 then ly=199:gosub 230
70 if lx>=309 then lx=309:gosub 250
80 if py<>ly then line 0,py,px,py,black:line 0,ly,lx,ly,white:goto 100
90 if px<=lx then line px,ly,lx,ly,white else line lx+1,ly,px,ly,black
100 px=lx:py=ly
110 key = kbstatus()
120 if ended then goto 190
130 t=tickms():gprint 0,0,format$("%d.%0d",t/1000,t/100%10),white
140 x! = x! + dx!:y! = y! + dy!
150 if key & 1 then dx! = dx! - 0.02
160 if key & 2 then dx! = dx! + 0.02
170 if key & 4 then dy! = dy! - 0.02
180 if key & 8 then dy! = dy! + 0.02
190 if key & 16 then goto 20
200 nextframe = nextframe + 17
210 if tickms() < nextframe then goto 210
220 if ended goto 110 else goto 30
230 if ended==0 then gprint 132,96,"FAILED!",white:ended=1
240 return
250 if ended<>0 then return
260 if ly<>150 then goto 230
270 if dx!<=0.5 && -0.5<=dy! && dy!<=0.5 then gprint 136,96,"CLEAR!",white:ended=1:return
280 line 300,ly,309,ly,black
290 line 300,ly,305,ly-5,white
300 line 305,ly-5,309,ly+5,white
310 goto 230

改造のヒント

たとえば、以下の変更を行うことが考えられる。
これらは読者への宿題とする。

  • 実行してすぐにゲームを始めるのではなく、タイトル画面を追加する

  • ゲームコントローラーで操作できるようにする

  • 加速度センサーを接続し、傾けた方向に力を加えられるようにする

  • 効果音を追加する

  • クリア時や失敗時の演出を追加する

  • ハイスコアやランキングが出るようにする

  • スタート地点やゴール地点の位置をランダムにする

  • ゴールに近づくとゴールの方向に引っ張るアシストを加える

  • 右から左に接続するモードを追加する

  • ゴールが動くモードを追加する

ライセンス

今回のプログラムと解説 (「接続ゲーム」節の内容) は、CC BY 4.0 でライセンスする。

この記事が気に入ったらサポートをしてみませんか?