こんばんわ。
何度も何度もご迷惑をおかけします。
今回は、自機のちょっとした特殊な弾についてどうしてもわからない
ところがあるため、ぜひとも皆さまからのご指南・アドバイスをいただき
たく、こんな真夜中ですが書きこませていただきました。(土下座)
分からないというか・・これはどうすればいいのだろう?というもので、
それが今回のタイトルにある特殊弾というものです。
特殊弾というのは、ステージのクリア特典で使える『チャージショット』
とのことです。
今回・・というか、今これに手を焼かされています。
☆チャージショットについて
①ショットは貫通するもので、雑魚敵は1発で消滅する。
②画面下、128X640のところに設置された(?)ステータス画面に
それぞれチャージバーとチャージゲージの画像を配置。
③ゲージが満タンになる時間は4秒かかり、その間自機は光を放つ。(これは、
自機の画像とは別に、もうひとつ画像を用意しています。(自機が光っている)
④4秒でチャージは完了、QKeyを押すことで発射できる(直進)
⑤その増え方・・つまり、ステータス画面側へと設置したチャージバー右に動く・
勝手に(発射することができるまで)溜まるのはオート(AOUT)とする。
というものです。
①に関しては、敵と接触した場合に弾のフラグを0しなければよいということは分かります。
しかし、ここで分からないのが、どのようにしてオートによるチャージのゲージを満タンにする
かということです。(ゲージの大きさは、縦32・横256)
4秒ということはおそらく『GetNowCount();関数』を使うのでは?と考えたのですが、それをどう書いて
いいか分からず・・また、ステータス画面に設置されたチャージバーのオートの移動に関しても
どう書いていいかわからず、こちらでアドバイス・ご指南をいただこうと思いました。
また、チャージ中の自機の光る画像と、普段の自機の画像との入れ替えはどうしればいいのでしょうか?
頭の中で、なんとなくなんですが、『IF文』を使用すれば画像に関しては大丈夫じゃないだろうかとは
思うのですが・・。
どうぞ、よろしくお願いします。
自機特殊弾
Re:自機特殊弾
> 4秒ということはおそらく『GetNowCount();関数』を使うのでは?と考えたのですが、それをどう書いて
これは違うと思います。可能かもしれませんが、パソコンの性能によって処理速度が異なったとき、GetNowCount()関数を使っていると、どのパソコンでも平等に4秒で貯まってしまいます。これでは、パソコンごとにゲームが違う動作をしてしまいますのでFPS制御を用いたほうが良いです。
ゲームはFPS制御しているので(基本的に)1秒間に60回の処理を行っています。(ある理由から60回です。龍神録のFPS制御を読めば書いてあると思います)
なので「 int count = 0 」を用意し「 count++ 」とすれば、1秒でcountの値は60になっています。
ということは、countが240の時、4秒経過したことになります。
話は変わりますが、チャージ系は「現在のチャージゲージの値」を用意し、その値を4秒でMAXになるよう計算して加算していく方が良いかなと思います。
例) 「現在のチャージゲージの値」+= 「最大ゲージ」/ 240.0;
簡単に書くと、これで大体4秒で最大ゲージになると思います。int型だと計算値の切捨てで加算値が0なのでflot型を使うか、他の方法を考えるかした方がいいです。
これは違うと思います。可能かもしれませんが、パソコンの性能によって処理速度が異なったとき、GetNowCount()関数を使っていると、どのパソコンでも平等に4秒で貯まってしまいます。これでは、パソコンごとにゲームが違う動作をしてしまいますのでFPS制御を用いたほうが良いです。
ゲームはFPS制御しているので(基本的に)1秒間に60回の処理を行っています。(ある理由から60回です。龍神録のFPS制御を読めば書いてあると思います)
なので「 int count = 0 」を用意し「 count++ 」とすれば、1秒でcountの値は60になっています。
ということは、countが240の時、4秒経過したことになります。
話は変わりますが、チャージ系は「現在のチャージゲージの値」を用意し、その値を4秒でMAXになるよう計算して加算していく方が良いかなと思います。
例) 「現在のチャージゲージの値」+= 「最大ゲージ」/ 240.0;
簡単に書くと、これで大体4秒で最大ゲージになると思います。int型だと計算値の切捨てで加算値が0なのでflot型を使うか、他の方法を考えるかした方がいいです。
Re:自機特殊弾
なるほど、『GetNowCount();関数』ではうまくいかないのですね。
私も初めはそれを使って作ってみたのですが、どうもうまくいかず「??」
となりました。
array様、わかりやすいアドバイスありがとうございます。
計算のほうは、実際にいろいろと調べてみて頑張っていきます。
また実際に、龍神録のほうを見てもう少し勉強したいと思います。
夢夢様も、アドバイスありがとうございました。
確かに、アニメーションを使えば出来るかもしれませんね。
アニメーションは使ったことがまだないので、これからこちらのサイトを
見て作ってみたいと思います。
お二方、どうもありがとうございました。
がんばってチャージ攻撃のソースを作っていきたいと思います。
ご協力・わかりやすいアドバイス、ありがとうございました。
私も初めはそれを使って作ってみたのですが、どうもうまくいかず「??」
となりました。
array様、わかりやすいアドバイスありがとうございます。
計算のほうは、実際にいろいろと調べてみて頑張っていきます。
また実際に、龍神録のほうを見てもう少し勉強したいと思います。
夢夢様も、アドバイスありがとうございました。
確かに、アニメーションを使えば出来るかもしれませんね。
アニメーションは使ったことがまだないので、これからこちらのサイトを
見て作ってみたいと思います。
お二方、どうもありがとうございました。
がんばってチャージ攻撃のソースを作っていきたいと思います。
ご協力・わかりやすいアドバイス、ありがとうございました。