ニンテンドー関連記事 - 連続表示

新規書き込み

※該当の記事タイトル一覧はリンク一覧から参照できます。

ヘディングゲーム - プチコン4で重量を考慮したキャラ衝突処理

名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年11月30日

ヘディングゲーム - プチコン4で重量を考慮したキャラ衝突処理9月に作成したキャラ衝突演算のプログラムを使って、「BALL SHOOTING BALL」と「わくわくフルーツ農場」の2本ゲームを作成しました。このキャラ衝突演算は「同じ大きさ(同じ直径)、同じ重量」という条件のみの計算でしたが、これを拡大して「違う大きさ(違う直径)、違う重量」にも対応したキャラ衝突演算プログラムを10日程前に作成しました。このプログラムを使って作成したゲームが今回の「ヘディングゲーム」です。タイトルの通り、ひたすらヘディングするだけのミニゲームです。

タイトル: ヘディングゲーム
公開キー: 4KE8QDPS



自キャラは「わくわくフルーツ農場」でも使ったお兄さんですが、SPSCALEで縦横それぞれ2倍に拡大して32x32ドットの大きさになっています。ボールの大きさも32x32ドットなので、今回作成したプログラムの「違う大きさ」の方は使っていません。ボールの重さはお兄さんの1/4に設定していて、「違う重量」の方はしっかりと応用しています。もちろん実際の人とボールではもっと重量差がありますが、ゲームとしてはこれ位の方が面白いという判断でそうしています。

ちなみに、衝突時の「違う大きさ」の計算はそれ程難しくなく、それぞれのキャラに半径を設定して、その足し算とキャラの中心間の距離が同じになったら衝突処理を開始する流れです。「違う重量」の方はやや複雑で、衝突接線をX軸としてその垂直のY方向の速度をそれぞれのキャラで計算し、それに重量比を考慮して「重心速度」を計算、重心速度と元々の速度の差を算出してそれを倍にしたものを元々の速度に足し、これをそれぞれのキャラで交換…、のような流れになっています。

詳細は下のプログラムを参照してみてください。



今回の「ヘディングゲーム」ですが、実は別のゲームを作っている間にパッとひらめいて、数時間で完成したゲームです。「別のゲーム」の方はシューティングっぽいゲームになっていますが、ヘディングゲーム完成後も微調整が重なったりして、制作が中断してしまっていました。私の能力的に2本同時進行でのゲーム制作は無理なようで、今後は頭にアイデアが浮かんでもメモか何かに残しておいて、制作は後に回すようにします。






ニンテンドー関連記事(リンク一覧): ヘディングゲーム - プチコン4で重量を考慮したキャラ衝突処理 / ロボットかけっこ1着2着当てゲーム - プチコン4で競馬風賭け系ゲーム / わくわくフルーツ農場~早朝編~ - プチコン4で横視点の物理アクションゲーム / TAKARABAKO - プチコン4にPC-6001の自作ゲームを移植 / EXTREME EXTERMINATOR - プチコン4でミサイルコマンド風シューティングゲーム / ...(記事連続表示)

SmileBASIC専用USBキーボード+マウスセット TKPS-001
SmileBASIC専用USBキーボード+マウスセット TKPS-001をAmazon.co.jpでチェック
コメント:ヘディングゲーム - プチコン4で重量を考慮したキャラ衝突処理
名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年12月6日
わくわくフルーツ農場に続き、ヘディングゲームでもTwitter上で色々と助言やアイデアをいただき、内容の変更を加えています。
具体的には以下の通りです。
・当初は画面の左右端から外れるとゲームオーバーというルールのみ。両端の壁のようなものがあれば…。
 →両端に壁のあるGAME Aと、今まで通りのGAME Bで分けた。
・画面左上に謎の当たり判定発生。
 →配列変数の不具合を修正して問題解消。
・画面上に消えたボールの起動が読みづらい。
 →ボールが画面上に消えると矢印が出てきて、矢印の上向き、下向きでボールが上がっているか下がっているかがわかる。

ロボットかけっこ1着2着当てゲーム - プチコン4で競馬風賭け系ゲーム

名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年11月17日
ロボットかけっこ1着2着当てゲーム - プチコン4で競馬風賭け系ゲームプチコン4で競馬風賭け系ゲームを作りました。タイトルは「ロボットかけっこ1着2着当てゲーム」です。ロボット6体の競走で、タイトルの通り1着2着を当てるというものです。2人同時プレイも可能で、音声合成を多用しているのが特徴です。

タイトル: ロボットかけっこ1着2着当てゲーム
公開キー: 4XR3EWEKE



今回のゲームのキャラクターはロボットになっていますが、当初は競馬ゲーム(ゲーム上のお金で馬券を買う)を作ろうと考えて、馬とジョッキーのキャラクターを作ったり、脚質(逃げ、先行、追込など)を設定するところまではできていました。しかし、Switchやプチコン4は小学生も使うため、公開する上ではこの点を考慮しなければいけません。そのため、「ギャンブル臭」を取り除くようにして、馬のキャラクターはロボットに、賭けるのはお金ではなく点数になりました。

実はもともとのアイデアは1987年にPC-6001で自作した「かけゲーム」です。当時マイコンBASICマガジン誌にも掲載されたゲームですが、PC-6001だけあって馬のキャラクターはテキストの「p」でした。このゲームは4人同時プレイが可能だったこともあり、友人同士で楽しく遊んた記憶があります。

今回がプチコン4での8作目のゲーム(公開ゲームとしては7作目)になり、基本的な部分はだいぶ慣れてはきたものの、アクション性の無いゲームはプチコン4では今回が初めてでした。特にどのロボットにどれだけ点数を賭けるかの部分について、PC-6001のようにキーボードを使わず、標準のコントローラーのみでどうしたらやりやすく操作できるかの検討が必要でした。現状の画面下部のボタン配置は試行錯誤の上完成しましたが、今回のゲーム制作の中でこの部分が一番時間がかかったと言っても過言ではありません。

PC-6001では4人同時プレイ可能だったため、「ロボットかけっこ」でも実現しようと思っていました。しかし、キーボードが使えない中、レイアウト的な制限もあって、2人同時プレイがやっとのところでした。

PC-6001の「かけゲーム」を作った頃は、オッズ算出の基本を知らず、「早い馬の組み合わせは低倍率」程度の適当な計算でオッズを出していました。今回は「ロボットの基本能力」のパラメーターをベースに、オッズの計算をするようにしていて、具体的には全オッズの逆数を全て足すとちょうど1になる形です。本物の競馬だとJRAの取り分があるので0.8とから0.75になりますが、ゲームなので甘目に1にしています。

音声合成の実況は簡易的なものですが、ロボットの順位を判断して喋らせるようにしています。この部分は配列の並べ替え(降順)のRSORT文を応用しました。これ以外の所ではプログラム上、特に変わった事はやっておらず、コピペを繰り返したパワープレイの汚いプログラムになっています。変数名もかなり適当です。それでも興味のある方は、以下のプログラムをチェックしてみてください。



今回は技術的な難しさはなかったものの、キャラクターの変更や画面下部のインターフェース作成など手数のかかるゲーム作成でした。




ニンテンドー関連記事(リンク一覧): ヘディングゲーム - プチコン4で重量を考慮したキャラ衝突処理 / ロボットかけっこ1着2着当てゲーム - プチコン4で競馬風賭け系ゲーム / わくわくフルーツ農場~早朝編~ - プチコン4で横視点の物理アクションゲーム / TAKARABAKO - プチコン4にPC-6001の自作ゲームを移植 / EXTREME EXTERMINATOR - プチコン4でミサイルコマンド風シューティングゲーム / ...(記事連続表示)

SmileBASIC専用USBキーボード+マウスセット TKPS-001
SmileBASIC専用USBキーボード+マウスセット TKPS-001をAmazon.co.jpでチェック

わくわくフルーツ農場~早朝編~ - プチコン4で横視点の物理アクションゲーム

名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年10月30日
わくわくフルーツ農場~早朝編~ - プチコン4で横視点の物理アクションゲーム先日プチコン4(Nintendo Switch)で制作したBALL SHOOTING BALL(上視点のビリヤード風ゲーム)の衝突の演算を用いて、今度は横視点の物理系ゲームを作成してみました。鳥2羽をツインスティックで操作、間に白いライン(壁)が引かれるので、これを利用して上から落下してくるフルーツを誘導、画面下にいるお兄さんのカゴ(桶?)に入れるというゲームです。連続でフルーツをカゴに入れるとコンボが発生して高得点になります。敵キャラはハサミで、これにラインを切られると、鳥も落下して数秒間プレイができなくなります。2分間のスコアアタックで、サクッと遊べるゲームになっています。

タイトル: わくわくフルーツ農場~早朝編~
公開キー: 4NZ2E5E8D



数週間前から「2つのキャラの間に伸縮するラインを引く」というアイデアは頭にあったのですが、これとは独立してフルーツがパチンコのように落下していく試作プログラムを作っていました(右画像)。このデモの動画をTwitterにアップし「これをどうゲームにするかは、これから考えます」と書いた所、思いのほか色々な方からアイデアをいただくことになりました。育成系ゲームにする、画面を回転させる(キャメルトライ風)、フルーツの組み合わせでミックスジュースにする…、等々。この他に「(画面下の)カゴを持ったおじさんキャラを左右に動かし…」というのがありました。これは自分の中でぼんやりと考えていた「画面下のトラックにフルーツを積む」というイメージに近いもので、面白くなりそうなのと自分の技術レベル的にも問題ないのとで、これをベースに進めることにしてみました。

プチコン4のプリセットでおじさんキャラが無かったため、代わりにお兄さんのキャラをピックアップ。さらに、ゲームとしてはお兄さんを操作する形ではなく、以前から頭にあった「2つのキャラの間に伸縮するラインを引く」アイデアを採用し、この2つのキャラ(鳥2羽)をリブルラブルのようにツインスティックで操作する形にしました。ラインに壁のような当たり判定を付けてこれでフルーツを誘導し、お兄さんの運ぶカゴに入れるという、ゲームの基本コンセプトができあがりました。

制作の上で、フルーツ同士の衝突の処理は特に問題なかったのですが、動くラインとフルーツとの衝突処理はなかなか難しいものがありました。当初のプログラムではフルーツがラインを突き抜けてしまうこともあったりしましたが、フルーツがラインに当たった場合にやや大き目に座標を補正する処理を入れるなどして、何とか解決に至りました。ただ、鳥2羽を最上部の左右両端に配置してしばらくすると、一部のフルーツが上部のピンにのめり込んでしまう現象が見られます。残念ながらこれは解決しないままでしたが、ゲーム性には大きく影響しないので「まあいいか」と妥協して放置しています。

物理ゲームでは、どこまでリアルな動きを追求するか、ということも考える必要があります。今回のゲームは大枠では衝突や落下でこそ物理的な動きをするものの、フルーツの形状による挙動の違いや、フルーツの回転による摩擦などは一切考慮していません。ただ、そもそも鳥2羽の間に直線のラインを引くこと自体が現実から離れているので(重力やフルーツ衝突によるたわみも無視)、まあそこまでのリアルさは必要ないかなと思っています。ちなみにフルーツの回転速度も、X座標移動量と比例させているだけで、特別な計算はしていなかったりします。

あと、「カゴを持ったおじさん(お兄さん)キャラを左右に動かし…」というのをそのまま生かしたものも作りたかったので、"GAME B "として別途用意してみました。こちらは基本的にお兄さんが自動的に動く「デモ」の形を取っていますが、スティックや方向ボタンでの割り込み操作も可能になっています。ただし、スコアは加算されません。

当初のパチンコのような試作プログラムから、丸5日でゲームが完成しました。早速サーバーにアップして公開したところ、後日Twitter上で別の方から「タイムアップ後、フルーツがみんな落ちてから終了になりませんか」というリクエストがありました。当初はタイムアップ後にフルーツも含めて全ての動作が停止してフェードアウトしていく形になっていましたが、確かに「フルーツが落ちてくれれば得点できたのに」と煮え切らないような感覚はありました。そのため、リクエスト通りの修正を加えています。ただ、鳥2羽とラインについては、水平にしたまま残すとフルーツがずっと落ちない状態になってしまうため、これについてはタイムアップ直後にフェードアウトするようにしています。

こんな感じで、今回のゲームは皆さんから頂いたアイデアのおかげで、楽しさが上積みされました。今回採用できなかったアイデアについても頭には残しておきつつ、また機会があれば何らかの形で活かしていきたいです。

以下、プログラムです。やはり、この手のゲームでは三角関数を多用しますね。



プチコン4では色々な方からレベルの高いゲームが投稿されていて、私も思わず夢中になってしまうようなものが多数あります。ただ、物理ゲームはあまり数が多く出ていないので、私としては「ニッチ路線」で狙っていこうかなと思ったりもしています。




ニンテンドー関連記事(リンク一覧): ヘディングゲーム - プチコン4で重量を考慮したキャラ衝突処理 / ロボットかけっこ1着2着当てゲーム - プチコン4で競馬風賭け系ゲーム / わくわくフルーツ農場~早朝編~ - プチコン4で横視点の物理アクションゲーム / TAKARABAKO - プチコン4にPC-6001の自作ゲームを移植 / EXTREME EXTERMINATOR - プチコン4でミサイルコマンド風シューティングゲーム / ...(記事連続表示)

SmileBASIC専用USBキーボード+マウスセット TKPS-001
SmileBASIC専用USBキーボード+マウスセット TKPS-001をAmazon.co.jpでチェック
コメント:わくわくフルーツ農場~早朝編~ - プチコン4で横視点の物理アクションゲーム
名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年11月16日
アップデートで、マックスx30コンボ時の花火と馬の演出を加えてみました。あと、ハサミキャラ変更(当たり判定は変えずサイズを大き目に)、お兄さんの足の運び修正、フルーツがカゴと画面の端に挟まった場合の永久パターン防止なども行っています。



TAKARABAKO - プチコン4にPC-6001の自作ゲームを移植

名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年10月20日
TAKARABAKO - プチコン4にPC-6001の自作ゲームを移植中学3年の時に作成したPC-6001の「バウンドボール」を、プチコン4に移植してみました。バウンドボールは自機のボールを操作し、箱にぶつかると色々なアイテムがでてきて、そのうちの鍵を取って出口に入ればクリアというルールです。オリジナルのPC-6001版はキャラクターが全てテキストで、鍵がアルファベットの「K」、出口が丸記号の「○」でした。このゲームは当時マイコンBASICマガジン誌に掲載されました。

その約1年後にこのゲームをX68000に移植しました。その際、鍵や扉や他のアイテムのキャラクターを自分で描いて、よりゲームっぽい感じの画面になりました(絵心が無いのでパッとはしませんでしたが…)。こちらもマイコンBASICマガジン誌に掲載されています。

今回のプチコン4版はX68000版に近い感じで、BGMやクリア時の音もこちらと同じです。キャラクターはボールのみ自分で描きましたが(先日作成のBALL SHOOTING BALLのボールを少し改良)、他はプチコン4デフォルトのもので間に合わせています。あと、タイトルは大きく変えて"TAKARABAKO"としました。「バウンドボール」という名前のゲームが過去のプチコン作品にあったことと、「バウンドボール」は今聞くと和製英語のような響きもあるのとで、いずれにしてもタイトルは変えようとは思っていました。

タイトル: TAKARABAKO
公開キー: 4EKKEK2HE



もともとシンプルなゲームなのと、プチコン4にも大分慣れてきたこともあって、プログラミング開始から丸一日で完成しました。そんな中、スプライトに関する命令のうち、SPDEF(スプライトを画像の一部から定義)、SPCOL(衝突判定オン)、SPHITSP(衝突判定)、SPANIM(アニメ処理)を初めて使っています。アニメ処理についてはこれまでに作成したゲームでもありましたが、時間毎にSPSETでキャラクターを切り替える処理をしていました。SPANIMはコマの時間が可変するキャラクターには使いづらいですが、それ以外ではこちらの方がかなり楽だとわかりました。

プログラムに興味のある方は、こちらをどうぞ。



このゲームを作り終えた後も、まだ2点ほどゲームのアイデアが頭にぼんやりとあります。ただ、いずれも製作時間がかかりそうなので、次回作はしばらく先になるかも知れません。作り始めるのも腰が重いということもありますね…。それまでは、他の方が作ったゲームで遊んでようと思います。




ニンテンドー関連記事(リンク一覧): ヘディングゲーム - プチコン4で重量を考慮したキャラ衝突処理 / ロボットかけっこ1着2着当てゲーム - プチコン4で競馬風賭け系ゲーム / わくわくフルーツ農場~早朝編~ - プチコン4で横視点の物理アクションゲーム / TAKARABAKO - プチコン4にPC-6001の自作ゲームを移植 / EXTREME EXTERMINATOR - プチコン4でミサイルコマンド風シューティングゲーム / ...(記事連続表示)

SmileBASIC専用USBキーボード+マウスセット TKPS-001
SmileBASIC専用USBキーボード+マウスセット TKPS-001をAmazon.co.jpでチェック

EXTREME EXTERMINATOR - プチコン4でミサイルコマンド風シューティングゲーム

名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年10月15日
EXTREME EXTERMINATOR - プチコン4でミサイルコマンド風シューティングゲームプチコン4でミサイルコマンド風の爆風シューティングゲームを作成してみました。30年前にX68000、3年前にJavaScriptでも同様の爆風シューティングを作成しましたが、今回のゲームの敵は今までと違ってミサイルではなく、ネズミやゴキブリなどの有害生物になります。キャラクターは全てプチコン4のデフォルトのものを使用しているものの、敵が集団で動いている様子は、なかなか気味が悪くて良い感じ(?)です。敵は親玉を含めて8種類で、面毎に出現確率を変えています。全15面あります。

「EXTREME EXTERMINATOR」
公開キー: 4VKEKN4BF



30年前のX68000版はさておき、3年前にJavaScriptで同じようなゲーム(ミサイル防衛)を作っただけあって、プログラミングの上で大きなトラブルはなく、爆風の試作プログラムが2時間程度で出来上がってから、その後は平日も含めて1週間程で完成しました。JavaScriptでは配列化したオブジェクトとsetIntervalを組み合わせて、個々の敵キャラが個別に動いてくれるような作りになっていましたが、プチコン4では爆弾用、爆風用、敵キャラ用などの配列変数をそれぞれ多数用意して対応しています。

爆風はグラフィック画面で処理していますが、デフォルトではグラフィック画面はテキストスクリーン(背景のブロック画像)の後ろになってしまいます。これについてはSPLAYERを使って、グラフィック画面をテキストスクリーンの手前、スプライトの後ろに配置するようにしています。

プログラムに興味がある方は、公開作品からダウンロードするか、こちらの動画を参考にしてみてください。



私のプチコン4の作品としては、プロジェクト未公開の「いんせきゲーム」も含め、本作で5本目になります。相変わらず制作に月単位の時間がかかるような「大作」と呼べるようなものは作っていませんが、今後も規模的にはミニゲームからベーマガ投稿作品位のレベルのもので行こうかなと思っています。




ニンテンドー関連記事(リンク一覧): ヘディングゲーム - プチコン4で重量を考慮したキャラ衝突処理 / ロボットかけっこ1着2着当てゲーム - プチコン4で競馬風賭け系ゲーム / わくわくフルーツ農場~早朝編~ - プチコン4で横視点の物理アクションゲーム / TAKARABAKO - プチコン4にPC-6001の自作ゲームを移植 / EXTREME EXTERMINATOR - プチコン4でミサイルコマンド風シューティングゲーム / ...(記事連続表示)

SmileBASIC専用USBキーボード+マウスセット TKPS-001
SmileBASIC専用USBキーボード+マウスセット TKPS-001をAmazon.co.jpでチェック

プチコン4のお気に入りの公開作品(ゲーム)

名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年9月29日
プチコン4のお気に入りの公開作品(ゲーム)プチコン4はSmileBASICでゲームを自作するのが楽しいのですが、サーバー上で作品を公開できるので、他の方にも自分のゲームを遊んでもらうことができますし、他の方のゲームも自由にダウンロードして遊ぶこともできます。

これまでに他の方の公開作品を数十点ダウンロードした中で、私のお気に入りのものを紹介します(ゲームのみです。ツールやデモは含めません)。個人的にRPGや連射シューティングはあまりやらないのと、短時間で展開するゲームが好きなのとあって、選択に偏りがあることをご了承ください。

JINTORI
公開キー: 4NZKDDESD
ポリゴン画面の面クリア型シューティングゲーム。敵の陣地を通過して自分の陣地として、敵を全部倒せば面クリア。逆に自分の陣地を全て取られて、自機がやられてしまうとゲームオーバー。16面が難しい…。

モンパラ~MONSTER PARADISE~
公開キー: 4T44YN334
某猫屋敷トランポリンアクションゲーム風の作品。敵の種類が本家(?)よりも多く、弱いトランポリン面、パワードアのない面、暗く視界の狭い面など面の種類も多様です。ボーナスステージもしっかりとあります。

ぱくぱくスライム~PAC-PAC SLIME~
公開キー: 4KKQXSS
某ドットイートゲーム風の作品。画面構成は本家(?)と似ているものの、自機がジャンプできたり、敵の数や動きに違いがあったりします。数面毎のコーヒーブレークもちゃんとありますが、こちらも内容はオリジナルです。初プレーで19面まで行ったので、難易度は低めだと思います。

GASwitch
公開キー: 453PEV3QJ
ギャプラスのような雰囲気のある面クリア型シューティングゲーム。スピードアップ、デュアルショット、レーザー、バリアなどのパワーアップがあります。ゲームの展開が早いのが好みですが、敵の動きが早く難易度が高めで、私はすぐにゲームオーバーになってしまいます。敵キャラの色の感じと、動きがなめらかなのもいいですね。

TILE SWEEP
公開キー: 4XDK4WE4E
同じ色のブロックが2個以上並んだ所を指定してボタンを押すと消すことができて、一度に大量に消すと高得点が狙える、というゲームです。ルールはシンプルですが、中毒性があって短時間でサクッとできることもあり、ちょくちょくプレイしています。

ファイナルバッチコーン
公開キー: 4KK3YX2Y
相手の投球にタイミングを合わせて、Aボタンでバッティングします。空振り9回でゲームセット。投球スピードが毎回違うので、タイミングを取るのがなかなか難しいです。シンプルなミニゲームですが、私は昔バッティングセンターに通ってたこともあり、懐かしい感じで楽しめています。

角度合わせゲーム
公開キー: 45533KENE
「目標」の角度に合わせて、タッチで角度を決めて、「決定」ボタンを押して判定。ぴったりの角度だと「どんぴしゃ」のメッセージが出てきて気持ちいいです。ゲームに馴染みのない人でも気軽に楽しめます。

今後も楽しいゲームが見つかったら紹介していきたいと思います。

私もゲームを作成していく中で、やはり多くの人に遊んでもらえると嬉しいですね。他の方のゲーム作成の技術やアイデアも色々と参考にしたいです。




ニンテンドー関連記事(リンク一覧): ヘディングゲーム - プチコン4で重量を考慮したキャラ衝突処理 / ロボットかけっこ1着2着当てゲーム - プチコン4で競馬風賭け系ゲーム / わくわくフルーツ農場~早朝編~ - プチコン4で横視点の物理アクションゲーム / TAKARABAKO - プチコン4にPC-6001の自作ゲームを移植 / EXTREME EXTERMINATOR - プチコン4でミサイルコマンド風シューティングゲーム / ...(記事連続表示)

Joy-Con (L) ネオンレッド/ (R) ネオンブルー
Joy-Con (L) ネオンレッド/ (R) ネオンブルーをAmazon.co.jpでチェック

BALL SHOOTING BALL - プチコン4でビリヤード風ゲーム

名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年9月27日
BALL SHOOTING BALL - プチコン4でボール同士の衝突計算2年前に購入したKindle本「Pythonゲームプログラミング 知っておきたい数学と物理の基本」に、ボール同士の衝突処理(円と円の衝突処理)の理論とプログラムが掲載されていました。当時、理論を頭で吸収したつもりでPythonのプログラムを自分なりに書いたものの、なぜかうまく動いてくれませんでした。理由が分からないまま、このプログラムは結局お蔵入りとなってしまいました。

今月8日にリベンジを兼ねてプチコン4でボール同士の衝突計算プログラムを作ってみたところ、今回は比較的あっさりと自然な形で動いてくれました。そのプログラムをさらに発展させて、ゲームにしたのが「BALL SHOOTING BALL」です。スティックで白いボールを操作して、他のボールを黒い穴に全て落とせばクリアで、全15ラウンドあります。

「BALL SHOOTING BALL」
公開キー: 42E338E4V



ボール衝突計算プログラム(右画像)が完成した直後は、具体的なゲームのアイデアはありませんでした。ただ、当初から自分のボールをスティックで動かせる形にしていたので、これをそのまま利用することにしました(後にスティック入力に対しての加速と角度の計算に修正を加えています)。ゲームのアイデアを練っていく中で、頭の中にあったのがファミコンの「ルナーボール」です。ルナーボールはビリヤード風のゲームで、ショットの強度をタイミングよく決める所以外でアクション性はありませんでしたが、色々な画面のパターンがあり、時折ラウンドクリアにパズル的な要素があったりして、この点が面白いと思いました。今回作成するゲームの基本的なルールは「画面上の他のボールを全て穴に落とす」こととして、「色々な画面のラウンドを用意しておく」ということで、大よそのアイデアが固まりました。

ラウンドは全てグラフィック画面で描画していて、ここはファミコンとは大きく異なります。GLINE、GFILL、GBOX、GTRI、GCIRCLE、GPAINTの組み合わせで、プログラムを手書きしながらコツコツと画面を作っていきました。そういうこともあって、全体的にシンプルなデザインの画面になっています。ラウンド毎のボールの配置もデータ形式ではなく、プログラム中にどのように設置するかが記載されています。

ボールの表示はスプライトで、ボール同士の衝突処理は上記の「Pythonゲームプログラミング 知っておきたい数学と物理の基本」に掲載されている理論を参考にしています。具体的には「(ボールAとボールBの重さが同じ場合)ボールAとボールBの接線を基準(X軸)にして、ボールAとボールBの速度の縦方向(Y方向)のベクトルを交換、横方向(X方向)のベクトルはそのまま保持する」というものです。この部分を関数化して(右の画像をクリックすると拡大できます)、1フレーム(1/60秒)毎に全ボール x 全ボールの当たり判定と衝突の処理を行っています。試した限りではボール50個でも遅延なく動いたので、やはりプチコン4の処理の速さはさすがです。

各ボールの床や穴との当たり判定はボール中央1点、ブロックやバンパーとの当たり判定はボール円周60点で行っており、グラフィック面の「色」から判定しています(GPGET)。今考えると16x16の大きさのキャラクターに円周60点の当たり判定は明らかにオーバースペックですが、処理が遅くなるわけでもないのでそのまま残しておいています。これも1フレーム毎に全ボールでこの判定を行っていますが、プチコン4としては余裕の処理のようです。ちなみにボールの移動は1フレームあたり1ドットを大きく超えることもあり、ボールの円周数点で当たり判定が発生することもあります。その場合には、当たり判定のあった全点の平均の角度を算出した後、跳ね返りの角度を計算するようにしています。

今回、ボール同士の当たり判定、ブロックとの当たり判定(ボール円周)、ボールやブロックの配置など、色々なところで三角関数を使いました。ベクトルからATANで角度を算出して、その角度に変更を加えた上で新たなベクトルをCOSとSINの組み合わせで算出…、というのも多くの所で使っています。

また、今回初めてプチコンでドット絵を描いてみました。とはいうものの、ボールと1UPフラッグ位で大したものではありません。それでもこういったドット絵を描くのはX68000以来なので懐かしさを感じました。まあ、根本的に絵心がないので、他のゲームを作るにしても凝ったキャラクターを描くのは無理ではあるのですが…。

BALL SHOOTING BALLの製作期間は、ボール衝突計算プログラムを含めて2週間ちょっとでしたが、9月は3連休が2回あり、たっぷりと時間を使えたこともあって、プログラムは1500行を超えています(ただし、コメントも含みます)。ここまでのプログラムの長さになると画像を繋げていくのが面倒なので、動画にしてプログラムを公開することにします。興味のある方は以下を参照してみてください。

【2019/10/5追記】プログラムを修正したので動画も差し替えました。修正内容: ボール衝突処理調整、粘着ブロックの効果音追加、ボール右に粘着ブロックがある場合のボール震え防止、音符の音程変更、28面(2周目)のエラー回避(15面の音符座標のリセット)、タイトルの白ボール位置微調整、スコア6桁表示→7桁表示OK



高校1年の数学で三角関数を学んだ頃も、一部の自作ゲームで円周状に回転するキャラクターにSIN、COSを使用していました。ただ、30年後にも三角関数を多用してゲームを作ることになるとは、当時の自分にはさすがに想像がつきませんでした…。




ニンテンドー関連記事(リンク一覧): ヘディングゲーム - プチコン4で重量を考慮したキャラ衝突処理 / ロボットかけっこ1着2着当てゲーム - プチコン4で競馬風賭け系ゲーム / わくわくフルーツ農場~早朝編~ - プチコン4で横視点の物理アクションゲーム / TAKARABAKO - プチコン4にPC-6001の自作ゲームを移植 / EXTREME EXTERMINATOR - プチコン4でミサイルコマンド風シューティングゲーム / ...(記事連続表示)

SmileBASIC専用USBキーボード+マウスセット TKPS-001
SmileBASIC専用USBキーボード+マウスセット TKPS-001をAmazon.co.jpでチェック

プチコン4用にSwitch本体周りを一新(スタンド、ワイヤレスキーボード&マウス)

名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年9月13日
プチコン4用にSwitch本体周りを一新(スタンド、ワイヤレスキーボード&マウス)プチコン4用にSwitch本体周りを一新しました。右の写真の通り、Switch用のスタンドとワイヤレスキーボード&マウスを導入しています。USB Type-Cハブのケーブルの先には、USB 3.0の変換コネクターをアタッチしていて、TVモードの場合でもUSBハブを切り替える必要がありません。

今までは、SmileBASIC専用のUSBキーボード+マウスセットを使用していました。これはこれでキータッチやファンクションキーがお気に入りだったのですが、やはりケーブルが煩わしかったのと、プチコン4を使用する度にSwitchのドック横のUSBポートにUSBハブを差し込み、このUSBハブにUSBキーボードとマウスを接続をする(キーボードとマウスのケーブルだけでは短いので)、という作業が少し面倒になってきてしまいました。さらにSwitch本体をドックから取り外して使用する場合には、キーボードとマウスの接続をUSB Type-Cのハブに切り替えなければいけない上に、ハブのコネクターをSwitch本体の下部に差し込む形になり、テーブルモードにできない状態でした。

そのような状況を一気に解消すべく、今回の改善に至ったという流れです。続いて個々の対象品について説明しておきます。

まずは新たに購入した折りたたみ式スタンドです。Lomicallというメーカーのもので、iPhone、iPadなどにも使えるものです。Switch本体を置いても、ケーブルを下から差し込めるスペースがあるので、Switch本体がぐらつくようなことはありません。スタンド自体に重量感があって安定しています。

ワイヤレスキーボード&マウスは、ロジクールの「MK245nBK」という型番のものを新たに購入してみました。ただ、キーボードは正常に動作したものの、マウスは動作せずに別のものを使っています(PCでは使えたので相性問題と思われます)。コンパクトさに重点を置いたので、テンキーがありませんが、昔所有していたファミリーBASICやPC-6001mkIIのキーボードにもテンキーが無かったので、ある意味懐かしさを味わえます(?)。ちなみにファンクションキーの上にあるシールは、SmileBASIC専用キーボードにおまけで付いていたシールの余りです。

ワイヤレスマウスは我が家にあるものを色々と試したものの、動作したものはLogicoolの「M187」という型番の小型マウスのみでした。かなり前に妻が購入したもので、使われずにしばらく引き出しに入っていました。ワイヤレスマウスは相性が厳しいみたいですが、とりあえず1つでも動くものがあって良かったです。

USB Type-CハブはORICOというメーカーのもので、2年前にアマゾンで購入したものですが、現在は販売されていないようです。これのType-Cコネクターの所にUGREEN製の「USB3.0 to Type-C変換アダプター」をアタッチして、TVモードの場合のドックへの接続も容易にできるようにしています。

いずれにしても、Switch本体とキーボード&マウスの間にケーブルが無いのは気分が良いものでです。これでプログラミングもはかどる…、かな?




ニンテンドー関連記事(リンク一覧): ヘディングゲーム - プチコン4で重量を考慮したキャラ衝突処理 / ロボットかけっこ1着2着当てゲーム - プチコン4で競馬風賭け系ゲーム / わくわくフルーツ農場~早朝編~ - プチコン4で横視点の物理アクションゲーム / TAKARABAKO - プチコン4にPC-6001の自作ゲームを移植 / EXTREME EXTERMINATOR - プチコン4でミサイルコマンド風シューティングゲーム / ...(記事連続表示)

折り畳み式スタンド Lomicall 携帯置き台 : スマホ タブレット 兼用スタンド, コンパクト, 角度調整可能, iPhone 11, 11 Pro, 11 Pro Max, 11 プロ マックス XS XS Max XR X 8 7 7plus 6 6s 6plus, アイフォン, アイパッド ミニ エア プロ, iPad, iPad mini, iPad Air, iPad Pro 9.7 10.5 10.2 対応
折り畳み式スタンド Lomicall 携帯置き台 : スマホ タブレット 兼用スタンド, コンパクト, 角度調整可能, iPhone 11, 11 Pro, 11 Pro Max, 11 プロ マックス XS XS Max XR X 8 7 7plus 6 6s 6plus, アイフォン, アイパッド ミニ エア プロ, iPad, iPad mini, iPad Air, iPad Pro 9.7 10.5 10.2 対応をAmazon.co.jpでチェック

しゅりけんゲーム - プチコン4で梱包材のプチプチ感覚(?)ミニゲーム

名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年8月18日
しゅりけんゲーム - プチコン4で梱包材のプチプチ感覚(?)ミニゲーム今日の昼頃に突然「Joy-Conのスティックをはじいてパチンコみたいに手裏剣を飛ばす」というアイデアが頭に浮かびました。プチコン4のSmileBASICの理解が新鮮なうちに「作ってしまえ」ということで、まずはサンプルプログラムを作ってみました。これの背景としてBG(実際にはテキスト画面)を初めて使ってみることにしたのですが、さらに「当たり判定を付けてあげればゲームになる」と思い、完成したのが今回の「しゅりけんゲーム」です。

公開キー: 4X53EWEQE 4KRN3K24E
【2019/9/7追記】バージョンアップにより、公開キーも変更しました。更新内容はページ下のコメント欄に書きました。

ゲームそのものについては、YouTubeにアップした動画を見ていただいた方が分かりやすいかと思います。

今回もゲームの内容はYouTubeにアップした動画の方が見てみてください。実質たった20秒のみの超ミニゲームです。



プログラムは右の黒い画像をクリックすると見られます。今回は昔のベーマガ(マイコンBASICマガジン)掲載のプログラムっぽく、コロンで複数の命令を各行に詰めてみたりしました。

相変わらずミニゲームばかりですが、中学の時にPC-6001mkIIで色々とミニゲームを作っていた頃を思い出しました。あの頃も1日で作れるようなゲームが多かったです。




ニンテンドー関連記事(リンク一覧): ヘディングゲーム - プチコン4で重量を考慮したキャラ衝突処理 / ロボットかけっこ1着2着当てゲーム - プチコン4で競馬風賭け系ゲーム / わくわくフルーツ農場~早朝編~ - プチコン4で横視点の物理アクションゲーム / TAKARABAKO - プチコン4にPC-6001の自作ゲームを移植 / EXTREME EXTERMINATOR - プチコン4でミサイルコマンド風シューティングゲーム / ...(記事連続表示)

SmileBASIC専用USBキーボード+マウスセット TKPS-001
SmileBASIC専用USBキーボード+マウスセット TKPS-001をAmazon.co.jpでチェック
コメント:しゅりけんゲーム - プチコン4で梱包材のプチプチ感覚(?)ミニゲーム
名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年9月7日
バージョンアップしました。
・木の再生方法変更(自動再生→クリア後)
・スティックの感度調整
・タイム変更(20秒→30秒)
・師匠のお言葉と音声合成


フルーツゲーム3D - プチコン4で疑似3Dのシンプルアクションゲーム

名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年8月17日
フルーツゲーム3D - プチコン4で疑似3Dのシンプルアクションゲーム先週末に「プチコン4 SmileBASIC」で初めてゲームを作ったばかりですが、頭の中の理解がまだ新鮮なうちに第二弾のミニゲームを作ってしまうことにしました。今回は疑似3D画面でフルーツを取るアクションゲームで、名前もそのまま「フルーツゲーム3D」です。

公開キー: 4X53EWEQE 44534WENE
【2019/9/4追記】バージョンアップにより、公開キーも変更しました。更新内容はページ下のコメント欄に書きました。

ゲームそのものについては、YouTubeにアップした動画を見ていただいた方が分かりやすいかと思います。



プログラムは右の縦長の黒い画像をクリックすると見られます。

疑似3Dの座標やキャラ拡大・縮小の計算については、昨年Python+PyGameで作成した「とび職人の通勤事情3D」とほぼ同様で、今回の「フルーツゲーム3D」についても計算部分を関数化してプログラム中で何度も処理をしています。

疑似3Dのゲーム作成にあたっては、キャラクターの表示順が重要になってきます。手前のキャラクターに隠れているはずの奥のキャラクターが、表示順を間違えて手前側に表れてしまうと、一気に違和感たっぷりの雰囲気になってしまいます。

Python+PyGameではキャラクターの表示順を整理するのに、「オブジェクトのリストのコピーをラムダ式でz座標の属性の降順で並び替える」という面倒なことをやっていました。一方、プチコン4のSmileBASICでは、SPOFS命令のz座標に数値を入れるだけで、自動的に値の小さいスプライトが画面手前側になるため、プログラムが非常に簡素な形で済みます。

プチコン4はBASIC言語ということもあってとっつきやすいのと、私の頭に浮かぶようなタイプのゲームでは、Python+PyGameやJavaScriptよりも処理速度がかなり早いのではないかと思います(もちろん、PCの環境やゲームの種類でも大きく左右されるのは間違いないです)。今回は100個近く同時にキャラクターを動かしていますが、これ位は全く余裕のようです。




ニンテンドー関連記事(リンク一覧): ヘディングゲーム - プチコン4で重量を考慮したキャラ衝突処理 / ロボットかけっこ1着2着当てゲーム - プチコン4で競馬風賭け系ゲーム / わくわくフルーツ農場~早朝編~ - プチコン4で横視点の物理アクションゲーム / TAKARABAKO - プチコン4にPC-6001の自作ゲームを移植 / EXTREME EXTERMINATOR - プチコン4でミサイルコマンド風シューティングゲーム / ...(記事連続表示)

SmileBASIC専用USBキーボード+マウスセット TKPS-001
SmileBASIC専用USBキーボード+マウスセット TKPS-001をAmazon.co.jpでチェック
コメント:フルーツゲーム3D - プチコン4で疑似3Dのシンプルアクションゲーム
名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年9月4日
上の方に追記で書きましたが、バージョンアップしています。
変更点は以下の通りです。
・フルーツの座標を16の倍数に(自キャラと合わせやすく)
・隕石のスピードダウン
・フルーツ大量タイムの導入



右の縦長の黒い画像をクリックするとプログラムを見られます。
コメント:フルーツゲーム3D - プチコン4で疑似3Dのシンプルアクションゲーム
名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2019年9月7日
さらにバージョンアップしました。
・難易度調整
・PHASE表示追加
・ボーナスタイム改良(BGM変更、当たり判定拡大、PHASE 6毎)
・効果音追加


| 前ページ(新しい記事) |     | 次ページ(過去の記事) |

※該当の記事タイトル一覧はリンク一覧から参照できます。