プチコン講座

プチコン3号 25日目 擬似3D(2) 視点の移動

今回は、3次元の空間の中を視点が動くプログラムを作ってみます。 上の画面が今回の最終形です。 視点をスライドパッドで前後左右に移動し、十字キー上下で上下に移動し、L・Rボタンで左右に回転します。 物体のほうは水平面上に格子状に等間隔に並べて...
プチコン講座

プチコン3号 24日目 擬似3D(1) 遠近感の表現

今回からオブジェクト指向はいったんお休みにして、3次元グラフィックスを扱います。 といっても、まずは映画のCGのような本格的なものではなく、スプライトの拡大・縮小を使った疑似3Dについて考えます。 プチコン3号では、スプライトの拡大・縮小を...
プチコン講座

プチコン3号 23日目 シューティングゲームの当たり判定とマスク値設定

前回までに、自機と自機の弾、敵機と敵の弾をそれぞれ生成・更新できるようになりました。 今回は当たり判定を追加します。 当たり判定はSPHITSP命令で行えます。 この命令は以前にも11日目に迷路ゲームで使用しました。 このときは、2つのスプ...
プチコン講座

プチコン3号 22日目 SmileBASICでOOP(5)クラスオブジェクトの使い方

前回のサンプルで、シューティングゲームにおける自機、および自機の弾の処理をOOP風に記述してみました。 今回は同じシューティングゲームでの敵機と敵の弾の処理をOOP風に記述してみます。 敵機の動作は、 ・画面上端にランダムに出現 ・真下へ向...
プチコン講座

プチコン3号 21日目 SmileBASICでOOP(4)サンプル

前回までで、オブジェクト指向(風)プログラミングに必要な関数は一通りそろいましたので、使い方をサンプルでお見せします。 例題は ・スライドパッドで自機移動 ・Aボタンで弾発射 という、作りかけのシューティングゲームみたいなものです。 プチコ...
プチコン講座

プチコン3号 20日目 SmileBASICでOOP(3)コンストラクタ・デストラクタ

18日目で関数SP_NEWCLASSを作成し、クラスを生成すると同時にインスタンスのリソースも確保しました。 今回は、インスタンスの管理(生成と廃棄)を扱います。 インスタンスの個数が状況に応じて増えたり減ったりする場合、確保したリソースを...
プチコン講座

プチコン3号 19日目 SmileBASICでOOP(2)ポリモーフィズム

ゲームプログラムでは、例えばシューティングなら自機、敵機、自分の弾、敵の弾など、さまざまなオブジェクトが登場します。 各オブジェクトは挙動が異なりますが、一方で画面上での位置などの更新、ゲーム開始時の初期化、イベント発生時の処理(たとえば自...
プチコン講座

プチコン3号 18日目 SmileBASICでOOP(1)スプライトをオブジェクトと見なす

今回からしばらく初心者向けに詳しく書くのはお休みして、通常運転で行きたいと思います。(内容が、あまり初心者向けではありませんので・・・) これまで1ヶ月あまりSmileBASICを使ってきましたが、やはりBASICはプログラミング言語として...
プチコン講座

プチコン3号 17日目 三角関数でスプライトを動かす&星拾いゲーム完成!

前回のプログラムに星を降らせる部分と星を拾う部分を追加して、ゲームは完成です。 星は、画面内に妖精を飛ばせて、その妖精から落とさせます。 プレイヤーが星を拾ったら、次の星を降らせるようにします。 弾む円は最初は数を少なくして、プレイヤーが星...
プチコン講座

プチコン3号 16日目 グラフィックスの当たり判定

今回と次回で、14日目の「グラフィックスで描いた弾む円」と15日目の「弾むスプライト」を組み合わせたゲームを作ってみます。 プレイヤーが円を避けながら左右に走って、降ってくる星を集めるゲームです。 円にぶつかったらゲームオーバーです。 これ...
プチコン講座

プチコン3号 15日目 スプライトを決まった経路で移動させる

SmileBASICでは、ゲーム作成に便利なスプライト用命令をいろいろ持っていますが、その中でも特徴的なのが9日目の記事でも使ったSPANIM命令です。 SPANIM命令では「座標変更」を指定することもでき、これを使うと、あらかじめ決めたコ...
プチコン講座

プチコン3号 14日目 グラフィックスとアニメーション

プチコン3号にはスプライトやBG以外に、画面に直接絵を描く命令もあります。 描ける図形は ・矩形(線幅1ピクセル、塗りつぶし無し) ・矩形(塗りつぶし) ・直線(線幅1ピクセル) ・真円(線幅1ピクセル、塗りつぶし無し) ・点(1ピクセル)...
プチコン講座

プチコン3号 13日目 本体を傾けてキャラクタを動かす

3DSは移動や傾きを検出するモーションセンサがついています。今回はこれを使って、9日目のプログラムを傾きでコントロールするように変更してみました。 3DSには加速度センサが搭載されていて、平行移動(前後上下左右)の「加速度」、および回転(ピ...
プチコン講座

プチコン3号 12日目 再び迷路生成プログラムについて

前回作成した「迷路探検ゲーム」のプログラムは、迷路生成には5日目に作成したプログラムを使っています。 5日目のプログラムで使用したアルゴリズムは、「バイナリーツリー法」と言います。 バイナリーツリー(二分木)とは、枝が二又に分かれる木のよう...
プチコン講座

プチコン3号 11日目 当たり判定を追加して迷路探検ゲーム完成!

前回は迷路の中に敵を登場させて動かしました。 あとは、敵と自分の当たり判定を行い、さらに自分がゴールに到達したことを判定すれば、ゲームの完成です。 当たり判定は、プチコン3号のSmileBASICにスプライト同士の衝突判定をする命令が用意さ...