RGSS,RGSS2で弾を発射させる
今回は、RGSS、RGSS2で自機から弾を発射させる処理を施してみます。
いや~、理解するまで結構時間がかかってしまいました。
いままでの処理を、難度Cとするなら、今回は難度Bですね。
いつものように、誤解して理解をしている可能性もありますが(!?)
間違っていると分かったときは、すぐに訂正致しますのでご了承ください。
勢いで、思いのままを書き殴り、
そして、後でこっそり訂正記事を書く。
それが「あひるの水面下」クオリティ!!! Orz<ゴメイワクをオカケシマス
手探りで勉強している状態なので、こればっかりはどうしようもないです;
それでは今日も、RGSS研究室さんのサイトを確認しながら作業を進めます。
まずはpictureフォルダに、弾の画像(bullet.png)を格納し、
そして、弾クラスを作成します。
尚、以下スプリクトは、ツクールXPのRGSSで打ち込んでいます。
▼弾クラス(Stg_bullet)
これは、まったく問題ないですね。
initializeメソッドに引数がついているのは、
自機と同じ場所に位置情報を獲得するためで
「.dispose」を使用するのは、画面外に出た弾を消去するため。
32行目の部分の「screenout?」メソッドは
画像が画面外へ飛んだときに、trueを返し、それ以外はfalseを返すメソッドです
いままでを振り返れば、すぐに理解できる部分ですね。
さて、問題はココからです。
Aボタンを押したときに、
弾クラスを、自機の座標に呼び出しアニメーションをさせるという処理を
シーンクラスに記します。ここを理解するのに苦労しました。。。
順を追って整理したいと思います。
▼前回作ったシーンクラス(Scene_stg)に追記。
まずは、ゲーム中「Aボタン」を押した時に
自機の場所に弾のグラフィックを表示させるスプリクトを作成しました。
28行目から、自機のショットを管理するメソッドを書き込んでいきます。
▼実行結果(弾が動かない・・・)
Aボタンを入力したら、弾の画像は表示されますが、
弾が動かないため、何のゲームだか分からない状態となっています。
気分はペイントソフトと言ったところでしょうか。
さて、自機から発射されても動かない弾なんて、
単なるハナクソにしかすぎないので、
一発一発、発射される弾をなんとかして動かしてみます。
▼シーンクラス(Scene_stg)
▼弾クラス(Stg_bullet)
※自機クラスと、メインクラスは、前回と全く同じものをつかっています。
・・・さて、スプリクトを提示しても、何をやっているのかよく分からないので
一つづつ、細かく確認をしていこうと思います。
コチラにしっかりとした、解説がありますので
このブログの文章を読むより、
リンク先の説明を読んだほうが効率がいいと
思いますが、まぁそれでも進めていきます。
まず、シーンクラスのスプリクト10行目に
弾、一発一発を格納するための配列「@shot」を用意しました。
それぞれの当たり判定、移動処理を今後設定していくので、
一発一発、それぞれをしっかり管理するためという意味でしょう。きっと。
reject
各要素に対して、ブロックを評価し、その値がfalseであった要素を集めた新しい配列を返します。
reject!
key と value を引数としてブロックを評価した値がtureである時、その要素を配列から削除します。
--------------------------
さて、この4つの弾の中の1つが
画面外に行きました。
その時、「@shot」の中身はこのように変化していきます。
▼シーンクラス(Scene_stg)
※自機クラスと、メインクラスは、前回と全く同じものをつかっています。
トラックバック(0)
このブログ記事を参照しているブログ一覧: RGSS,RGSS2で弾を発射させる
このブログ記事に対するトラックバックURL: /96

コメントする