RGSS,RGSS2で敵から弾を発射させる(WAY弾)

| | コメント(0) | トラックバック(0)

今回は、扇状に広がる自機狙い弾(Nウェイ弾)の実装をしていこうと思います。

三角関数の応用で出来るようですね。

ここまでくると、結論から言ってしまえば・・・・

 

理屈なんて全く考えないで、

こう入力したら、こういう結果となる!!

 

と、進めてしまうのがいいかなと、判断します。

理屈を考えて理解したら、

後々、応用も利くし役にたつのですが、

今は、理屈よりプログラムを組んでゲームを実装することが大優先ですし、

WAY弾は、RPGを作るうえでは、役に立ちそうもないので、

理屈を考えるのは、ヤメにしてさっさと進もうとおもいます。

 

 

▼スプリクトは以下のようになります。

------------------

自機クラス(Stg_player)

弾クラス(Stg_bullet) ※更新!

敵クラス(Stg_enemy) ※更新!

シーンクラス(Scene_stg) ※更新!

●(メインは省略します)

------------------

 

上記のスプリクトのシーンクラスですが、

一行の文章量が多いため、二行にわたって表示されている部分があり、

見にくくなっていますが、ご了承ください。

 

まず、弾クラスの39~49行目

------------------

    when 3  
      #敵が撃つ弾、Nウェイ弾  
      self.bitmap = RPG::Cache.picture("e_bullet")  
      @dx = 8  
      @dy = 8  
      @spx = 6  
      @spy = 6  
      @spx = @spx*(target_x-x) / Math.sqrt((target_x-x)**2+(target_y-y)**2)  
      @spy = @spy*(target_y-y) / Math.sqrt((target_x-x)**2+(target_y-y)**2)  
      @spx = @spx * Math.cos(rad) - @spy * Math.sin(rad)  
      @spy = @spx * Math.sin(rad) + @spy * Math.cos(rad)  

------------------ 

の部分で、弾の運動内容を入力します。

ベースは、自機狙い弾と一緒ですね、後半、ちょっと複雑な処理をしてそうですが、、、

 

 

それで、敵クラスの92~96行目

------------------

    when 3  
      #30フレームに一回弾を発射  
      if @count % 30 == 0  
        return 3  
      end 

------------------

の部分で、敵の出現から30フレーム経過したあとに、

「3」を返すメソッドを用意して、

 

 

シーンクラスの117~120行目の

------------------

     if type == 3  
      @enemyshot.push Stg_bullet.new(i.x, i.y, type, @player.x, @player.y, -0.3)  
      @enemyshot.push Stg_bullet.new(i.x, i.y, type, @player.x, @player.y, 0)  
      @enemyshot.push Stg_bullet.new(i.x, i.y, type, @player.x, @player.y, 0.3)

------------------

ここで、敵のショット(3way弾)を実装しています。

 

 

赤文字で表記した数字の部分の単位には、ラジアンが使われているので

マイナス1(-180度)」 ~ 「プラス1(180度)」

を入力して、扇の大小を決めます。


つまり、

扇を大きくしたい場合は「値を 1 または -1 に近づける」

扇を小さくしたい場合は「値を0に近づけれる(0を入力すると自機狙い弾)」

ということだけ抑えておけば、問題なさそうですね。

 

今回は、理屈を考えないで先へ進みましたが、

それはそれでアリだと自分は思っています。

ま、必要になった場合は、調べることになりますけれども。。。(泣

 

次回は、回転弾の実装をしていきたいと思います。

トラックバック(0)

このブログ記事を参照しているブログ一覧: RGSS,RGSS2で敵から弾を発射させる(WAY弾)

このブログ記事に対するトラックバックURL: /104

コメントする

このブログ記事について

このページは、87が2008年9月 9日 17:05に書いたブログ記事です。

ひとつ前のブログ記事は「RGSS,RGSS2で敵から弾を発射させる(自機狙い弾)」です。

次のブログ記事は「RGSS,RGSS2で敵から弾を発射させる(回転弾)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01