• 締切済み

剣の攻撃プログラムについて

趣味でゲームを作っています。 例として平面の「テイルズオブ~」のようなものを思い浮かべてください。 キャラクターが剣で攻撃する場合に以下の条件を満たすアルゴリズムはどのようなものでしょうか? 1、一振りでダメージを与えるのは一回にしたい。 2、範囲にいるすべての対象にダメージを与える必要がある。 とりあえず、剣が対象に衝突した場合、次のループから当たり判定を無効にするというものを考案してのですが、他に良い方法を知っている方は教えてください。

みんなの回答

回答No.1

こんにちは、AEと申します。 私は全くの素人ですが、ゲームは大好きです。 素人なりに時々ゲームをやりながら考えていたのですが、やっぱりオブジェクト指向的な考えで設計した方がいいのかなぁ、と思うのです。 たとえば、ご質問のような場合、殴る側に処理を行わせるのではなく、殴られる側、すなわち、敵やその他の障害物という「オブジェクト」側に「殴られた時の処理」というメソッドを持たせる、ということです。 そうすることによって、そのメソッド側で、相手に何回切られたか(剣が当たったか?と言う当たり判定)?という処理を入れておけばよいことになります。 もし、キャラクタ側の何らかの技で10連打みたいな技があってもキャラクタ側の処理は剣をブンブン振り回すだけでよく、敵側の処理内部で勝手にダメージ計算して勝手に死ぬみたいにしておくと、後々楽チンのはずです。 また、このようにしておくと、木や石など障害物も同じようなオブジェクトとして扱うことができて「切れるものと切れないもの」みたいな処理を行うことも簡単になるのではないかなと。 ただ、このような考え方を入れるとゲームの全体的なシステム設計、特にデータ構造(=オブジェクト)の設計を入念に行っておく必要があると思います。 もちろん、ストーリー展開やアイテム、マップなども重要な要素でしょう。 いつもこの辺まで考えて「うっはー、ゲームってすげー!」と思考停止してしまいます(笑)。 その内、挑戦してみたくはありますけども。 ご参考まで。

k_ppm
質問者

お礼

>相手に何回切られたか(剣が当たったか?と言う当たり判定)?という処理を入れておけばよいことになります。 実際はここをどうするかを悩んでいたので、期待していた回答とは異なるのですが、回答してくださったこと自体に感謝します。 質問を開設してから時間が経っていますので、そろそろ質問を締め切りたいと思います。

関連するQ&A