【プチコン/mkII 両対応】
ゲームを作るには欠かせないのは画面表示です。プチコンでは画面表示においてコンソール、グラフィック、スプライト、BG画面が利用できます。今回はその中からコンソールとグラフィックについて書いていきます。
《簡略化の一例》 ◎「スーパーマリオ」のようなゲームを作りたい ↓(簡略化) ・敵を出さずにスクロールする床をジャンプで越えていくゲームにする ・固定画面でジャンプしながら敵をかわすゲームにする ↓(難しくて作れないようならばさらに簡略化) ・自分のキャラをジャンプさせてみよう ・画面をスクロールさせてみよう ・敵を動かしてみよう 最初は簡単なもので十分です。1つずつ完成させて経験値アップをしましょう! |
@LOOP B=BUTTON() IF B==16 THEN X=X+1 LOCATE 15,12 PRINT X GOTO @LOOP |
CLS X=0 @LOOP A=B B=BUTTON() IF B==16 AND A==32 THEN X=X+1 IF B==32 AND A==16 THEN X=X+1 LOCATE 15,12 PRINT X GOTO @LOOP |
CLS X=0 F=0 @LOOP B=BUTTON() IF F==0 AND B==16 THEN X=X+1:F=1 IF F==1 AND B==32 THEN X=X+1:F=0 LOCATE 15,12 PRINT X GOTO @LOOP |
CLS X=0 F=16 @LOOP B=BUTTON() IF B==F THEN X=X+1:F=48-F LOCATE 15,12 PRINT X GOTO @LOOP |
CLS X=0 F=16 @LOOP B=BUTTON() IF B==F THEN X=X+1:F=48-F:LOCATE X-1,20:PRINT "□" LOCATE X,20:PRINT "人" GOTO @LOOP |
CLS X=0 F=16 @LOOP B=BUTTON() IF B==F THEN X=X+1:F=48-F LOCATE X,20:PRINT "□人" GOTO @LOOP |
CLS GCLS CLEAR @LOOP B=BUTTON() IF B==16 THEN Y=Y-1 IF B!=16 THEN Y=Y+1 X=X+1 IF X>255 THEN END VSYNC 1 GOTO @LOOP |
CLS GCLS CLEAR @LOOP B=BUTTON() IF B==16 THEN Y=Y-2 Y=Y+1 X=X+1 IF X>255 THEN END VSYNC 1 GOTO @LOOP |
CLS GCLS CLEAR FOR I=1 TO 100 GPSET RND (256),RND (192),11 NEXT @LOOP B=BUTTON() IF B==16 THEN Y=Y-2 Y=Y+1 X=X+1 IF X>255 THEN END VSYNC 1 GOTO @LOOP |
コラム 反射と思考「ドットよけゲーム」というと一般的には反射型のアクションゲームと考えれており、思考型アクションゲームと考える人はまず居ないでしょう。ドットよけゲームは1ドット単位の緻密な操作が要求されるのですがそのまま進んだ場合に障害となるドットに当たるかどうかというのはよほど荒いドットで構成されていないと直前に来るまでは分かりません。もしも、反射神経(≒反応力)のみでドットを避けるのならば人間の反応速度は一般的に最高でも0.1〜0.2秒と考えられているために1秒間に5ドット進むくらいの速度(5fps=VSYNC 12くらい)に設定する必要があります。私が作ったドットよけゲームはVSYNC 2(30fps)となっておりこの速度では当たる直前に反射神経でドットを避けるのは不可能です。 したがって、障害となるドットに「当たるか否か」ではなく「当たりやすいか否か」という判断によって障害となるドットがより少ない場所を通るように操作することになります。 それぞれのドット同士の間隔が5ドット空いていれば反射神経だけで避ける場合に単純計算では5倍ほど速度が遅くなったのと同じになります。そのため反射神経だけでクリアすることは不可能ではありません。 ただ、それも今回作ったドットよけゲームのように固定移動量のゲームにおいて言えることであり、慣性が付いたゲームの場合は反応ができてもそれを制御する時間が必要になります。したがって、反射神経だけではどうにもならない場面もあり「運の要素」が高くなりがちなので注意が必要です。 ステージが進むごとに難易度を高めるため障害となるドットをやたら増やしたり、速度を上げるということは普通に行われていますが、これは人間の反射神経を超える行為となるためどんどん「運の要素」が高まってくるわけです。(「どちらに移動すべきかが分かる→その反応を行う→実際にその地点まで移動する」という一連の動作を行う時間と障害物に到達するまでの時間を比べ後者の方が長くなっていれば運の要素はほぼ無くなる) それと同じくスタート付近にすぐにドットを配置するのも反射神経を考えると避けられないためそういう配置がされないように配慮する必要があります。 それでは30fpsで5ドットより狭い間隔で配置されている部分がある場合は運の要素が極めて高いのかというとそうではありません。というのもドットよけゲームというのは一般的には固定画面で全体構成が把握できているため上記のようにより安全なルートを選択するという方法があるからです。 これは間隔の狭い場所はあえて通らずに別ルートを通ればいいということです。 それに間隔が広い方が単純に通りやすいというものではなく確率を言えば2つのドットの間を通る場合にはその2つのドットを結んだ直線に対して垂直に近い角度で侵入できる方が確率が高くなってきます。リアルタイムでここまで思考できるようになれば反射神経で十分避けられる速度の場合はクリアは容易となりドットよけゲームはリアルタイム思考型ゲームの要素を含んでいると言えるでしょう。 つまり、ドットよけゲームと単純に言ってもその障害物の配置や量、そして移動速度によって反射、思考、運の要素のバランスが変わってくるわけです。これはドットよけゲームに限らず他のさまざまなジャンルのゲームにおいて言えることなのでこのバランス調整というのはゲームにおいて非常に重要な要素といえます。 |