プチコン3号とは、ニンテンドー3DSで動作するソフトウエアで、BASICというプログラム言語を使って自分でプログラミングをしてゲームやアプリを作ることができます。
プチコンやプログラムに関して、全く知らない初心者の方は
公式サイトのプチコン初心者講座が一番丁寧でわかりやすいです
プチコン3号 SMILEBASIC講座
また、ここではゲームプログラムを作成するにあたっての、
基礎的な知識を、極力難しいことを考えずに伝えたいと考えております。
プチコン4の方はこちらの同じ内容のプチコン4講座へ
ここでは、プチコンで簡単なアクションゲームを作る方法を、細かく丁寧に極力わかりやすく解説していきたいと思います。
青文字が前回から追加された、内容になっています。
今回は2回目なので、第1回目のプログラムを元に解説していきます。
どんなゲームかというと、右から出現してくる敵をジャンプで交わすだけの単純なゲームです。
ですが、ゲームプログラムに重要な、当たり判定、配列によるループ処理が使用されているため、プログラムを作る上での基礎とも言えます。
これで、1体の敵が画面の右から登場し、左方向に横移動し左端に来たら消える。
そして、また画面の右から出てくる。これを繰り返す。
20行目で、-100を入れているが、このプログラムでは敵が出現していないということを表す。
72行目で、-16になったら、-100を設定している。要するに横移動だけでは、-100にはならない。
64行目で、敵を出現させるときに、ランダムで画面端から更に離れた場所に出現させていて、
65行目で、敵の速さをランダムに設定しているところがポイント。
「1+ランダムな数字」としているのは、ランダム関数では0という値になることがあるため、そうなったら移動0で静止してしまうのを防ぐため。
ちなみに、@EMVというラベルは"EnemyMove:敵の移動"という意味を込めて
これで、敵が出現するようになってきた。
ようやく、ゲームらしくなってきた?
敵が出現しても、自分にぶつかったかどうかを判定(通称:当たり判定)しなければゲームとして成り立たない。 当たり判定の仕方はいろいろあるけど、ここでは自分の中心の点が、敵の範囲(四角)の中に入っているかで判定する。 敵の当たりの範囲を敵の絵より大きくしたりすることで、4つの条件だけで、ぶつかっているか判定ができる。 ぶつかっていたら、4つの条件に一致しなかったら。ゲームオーバーになるようにする。
ゲームでは点数が大事。
ここでは、メインループの回数をカウントしている。
で、画面に表示するのは秒数になる。プチコンではVSYNC 1を指定することで60分の1秒に1回メインループが実行されるため。
これで、一応遊べるけど、簡単すぎて面白く無いね。
敵が一体だけでは、つまらないので、たくさん表示させるようにする。
ポイントは敵の変数を配列変数にしてループ(繰り返し命令)で処理させる。
73行目あたりでは、カウントしている経過時間を元に、敵の出現数を制御する。
こうすることで、はじめは敵が少なく簡単だけど、だんだん難しくなるようにできる。
ついでに、BGMを鳴らす処理と、ゲームオーバー時の演出を少し豪華にしてみる。
いかがでしょうか、こんな感じで一応遊べるゲームを作ってみました。
ゲーム好きな方には、クソゲーとか、単純すぎてつまらないと思うかもしれません。
ですが、このプログラムをいろいろ改造することよって、敵のパータンを複雑にしたり。
敵の動きを面白くしたりと、改良方法は無限大です。
自由にいろいろなことを出来ることがプログラミングの魅力であり、面白さでもあります。
今回は、少しずつプログラムを追加して動かしながら、だんだんとゲームらしくなっていく様子を伝えてみたかったので、このような単純なゲームになっています。
インターネットの世界にはプチコンやゲームのプログラムを公開している人がたくさんいます。
そういったプログラムを参考にすることで、高度なプログラムを少しずつ身に着けていくことができるでしょう。
追伸:ソースコード記述の誤りを指摘していただいた方、ありがとうございます。 (2021/07/30)
数学=計算ではない!原理や構造の理解を大切にすると、数学はもっとおもしろくなる!数学は永遠性を秘めている。数学だけが人間の唯一の証ではないかという感動が湧いてくる—。