ゴミ箱.net

汚物は消毒

シューティングゲーム作ったったwwwwww

Boon Striker

Boon Striker バージョン0.1.0を公開しますた
Boon Striker

スポンサーサイト

PageTop

ゲーム製作日記6 衝突判定の続きの続き

衝突判定を実装するにあたり、いずれにしろ領域の種類ごとに衝突判定を書く処理は避けられないわけだが…果たして何種類書けばいいんだろうか。
図形がn種類あれば、n(n+1)/2通りの判定処理が必要なわけで。長方形、円、直線、多角形、…といくらでも種類が考えられるぞ?

続きを読む

PageTop

ゲーム製作日記5 衝突判定の続き

久々に更新するかw

前回では、領域を表す抽象クラスを作ってそこから円とか長方形とかの種類ごとに派生クラスを実装することを考えていたんだったな。
その場合に、異なる種類の領域どうしの当たり判定をどう実装するかを考えねばならなくなる。
どこかで具体的な処理をハードコーディングする必要は避けられないとはいえ、それを誰に持たせるか?円と長方形の衝突判定なら円がそれを受け持つのか?長方形か?もしくは独立した判定メソッドを作るのか?

続きを読む

PageTop

ゲーム製作日記4 衝突判定

道具立ても揃ったことだし、そろそろ実装に入るとするか。
はじめにゲーム作りの基礎ともいえる衝突判定の実装をすることにする。

ゲームが実世界の挙動をそれなりに再現してくれるのは大部分が衝突判定のおかげといっても過言ではない。
地面とプレイヤーキャラが衝突するから、プレイヤーは地面や足場をすり抜けずに立っていられたり、壁をすり抜けるなどの非現実的な挙動をしなくてすんだりする。
格闘ゲームで敵を攻撃したり敵から攻撃を食らったりするのも、自分がダメージを食らう領域と相手が攻撃を仕掛ける領域が衝突するからである。
さらには3次元空間で物体が物に隠れて見えなくなるのも、視線と物体の衝突を判定できてこそだ。

今回は昔ながらの2次元グラフィックスを使うので、2次元空間での領域どうしの衝突判定を考えよう。

続きを読む

PageTop

ゲーム製作日記3 ライブラリの選定

1からゲームを作るとなると、いろいろと面倒が多い。
たとえば画像、音楽、オブジェクトの管理といったことを全部こなさなければならない。
さすがにそれはしんどいので、一部の処理は既存のライブラリを使って楽をすることにする。

○○ツクールみたいな大掛かりなフレームワークは使わない。使えばとても楽なんだろうが、今回は汎用的なゲーム製作のノウハウを身に着ける・ゲームに最適なプログラムの論理構造を研究するという目的もあるので、基本は自力で作成することにする。

今回はとりあえずDXライブラリを使う。
比較的低レベルなインターフェースであり、またあまり面白みのないわりに作るのが面倒な画像や音声の処理がひととおり揃っていて大変都合がいい。しかもC#でも使えるし。
そして、低レベルの処理はDXライブラリに任せ、オブジェクト管理や入力処理といった高レベルな処理を自作することにする。
DXライブラリはどう見てもゲーム作成用に最適化されたライブラリであるが、その提供する機能は画像処理、音声処理といった基本的なものばかりである。それだけゲームの構造というのは一般化しにくいということなのかもしれない。

ここでひとつ問題になるのが、DXライブラリにべったりな処理を書いてしまったら再利用性がぐんと減ってしまうのではないか?ということ。将来的にもっといいライブラリに乗り換えてもある程度コードを使い回せるようにしたい。
そのために、プログラムを特定のライブラリに依存しない部分と、DXライブラリに依存する部分に分けて、できるだけ前者の中で処理を作りこむようにする。
たとえば当たり判定の処理などはただの数値演算なのでライブラリ非依存の部分に落としこめるだろう。しかし、画像の表示はもろにライブラリ依存になってしまう。その場合、画像を表すクラスとしてライブラリに非依存な抽象クラス(またはインターフェース)を作り、それを継承してDXライブラリ依存の処理を作りこんだ具象クラスを作るようにすればいいだろう。

PageTop