ページ 11

チャージショットを実装したい

Posted: 2010年10月22日(金) 17:24
by Ex
現在シューティングゲームを作っています。
チャージショットを実装したいのですが、いまいち原理が分かりません。
Zが押されると変数powerをプラスし、Zを放すと攻撃力がpowerの弾を発射させたいです。
考え方を教えてもらえるとありがたいです。
お願いします。


画像

Re:チャージショットを実装したい

Posted: 2010年10月22日(金) 18:35
by ゆーずぃ
その考え方でいいとおもうのですが・・?
恐らく雑魚は弾1発、ボスはx発で倒せるように設定しているでしょうから、zの数値 × 弾数 を当たったという判定にする、というくらいですか。
強いて言えばzが強すぎないように z>MAX になったらそれ以上プラスしないようにするとかですね。

なんか私の答えがずれている気もするので、もうちょっと詳しく質問をして頂けるとありがたいです;

Re:チャージショットを実装したい

Posted: 2010年10月23日(土) 08:37
by Ex
すいません 考え方というのは少し違いました
正確に言うと、コードの組み方が分らないです
例えば、(flag=1 で弾発射)
if(Key[KEY_INPUT_Z]==1){ power++; if(Key[KEY_INPUT_Z==0){ flag=1; }}
とすると、当然ですが発射されないんです。
要するに、わからないところというのはここです。

Re:チャージショットを実装したい

Posted: 2010年10月23日(土) 08:41
by dic
前フレームのpowerが0より大きく 現在のpowerが0のとき発射
と考えたですけどどうでしょうかね
ややこしいですけど

Re:チャージショットを実装したい

Posted: 2010年10月23日(土) 09:14
by あたっしゅ
DxLib 使ってんのか。

if(Key[KEY_INPUT_Z]==1){ power++; }
if(Key[KEY_INPUT_Z]==0){
flag=1;
power=0;
}

こんな感じでどうでしょう。

Re:チャージショットを実装したい

Posted: 2010年10月23日(土) 09:37
by Ex
回答早いww
if文を2つに分けるんですか・・・ よく考えたらif文1つじゃ無理ですね
とりあえず試験的にコードを組んだらうまく動作しました。
ズバリな回答ありがとうございます。

Re:チャージショットを実装したい

Posted: 2010年10月23日(土) 09:51
by あたっしゅ
上のじゃだめだ。
せっかくたまった power をクリアしちゃう。

int pushed_z=0;

と宣言しておいて

if(Key[KEY_INPUT_Z]==1){ pushed_z++; }
if(Key[KEY_INPUT_Z]==0){
flag=1;
power=pushed_z;
pushed_z=0;
}


ま、うまくいったようなので、いいか。