トップページ > 過去ログ > 記事閲覧
弾の連射
名前:本田 日時: 2009/12/01 23:25

こんばんは 現在シューティングの作成を行っております。 現在はこちらのHPにあったソースを下に作っているのですが上手く行きません。申し訳ありませんがどなたかお力をお貸し願えますでしょうか? 以下ソースの一部です。 このソースは以下のページを参考にして作成してます。 ttp://homepage2.nifty.com/natupaji/DxLib/lecture/lecture1_4.html #include "DxLib.h" class Chara{ private: int jiki; //自機変数 int x, y; //座標の変数 int Jx, Jy; //自機座標 int Sx, Sy; //弾座標 int shotx[8], shoty[8]; int shot1; int Flag[8]; int i,j,k; public: Chara() { //コンストラクタ コンストラクタで初期化の場合Privateで定義する必要性がある jiki = LoadGraph("jiki.bmp"); //自機画像をメモリに入れる shot1 = LoadGraph("ballet1.bmp"); Jx=0; //自機のx軸のサイズ Jy=0; //自機のy軸のサイズ Sx=0; Sy=0; x = 288; //x座標の初期値 y = 300; //y座標の初期値 shotx[8]; shoty[8]; Flag[8]; i; j; k; } void shotA(){ for(i=0;i<8;i++){ Flag[i] = 0; } if( CheckHitKey( KEY_INPUT_Z ) == 1){ for(j=0; j<8; j++){ if(Flag[j] == 0){ GetGraphSize( jiki , &Jx , &Jy ) ; //自機画像のサイズチェック GetGraphSize( shot1 , &Sx , &Sy ) ; shotx[j] = (Jx - Sx) / 2 + x; shoty[j] = (Jy - Sy) /2 + y; Flag[j] = 1; break; } } } for(k=0;k<8;k++){ if(Flag[k] == 1){ shoty[k] -= 16; if(shoty[k] < -32){ Flag[k] = 0; } DrawGraph(shotx[k],shoty[k],shot1,FALSE); } } }

Page: 1 |

Re: 弾の連射 ( No.1 )
名前:Will 日時:2009/12/01 23:29

うまくいきません、だけでは何もわかりません。 よって回答も出来ません。
Re: 弾の連射 ( No.2 )
名前:本田 日時:2009/12/02 00:27

大変申し訳ありません。説明を忘れていました。 現在の所Zキーを押すと弾が自機から若干上の部分へ表示されます。 Zキーを押しっぱなしだと弾がずっとその場で表示され、前に進まない状況です。 キーを離すとそのまま消えてしまう状況です。 大変申し訳ありませんでした。この場を借りて謝罪させていただきます。
Re: 弾の連射 ( No.3 )
名前:sy(サイ) 日時:2009/12/02 00:36

別にそこまで謝るほどでないと思いますが。 Zキー押している間、同じ弾(弾のパラメータ)を初期化してるんじゃないでしょうか? 発射状態の弾は、画面外に出るまでフラグ倒してはだめです。 for(i=0;i<8;i++){ Flag[i] = 0; } よってこの部分を変える必要があります。 気力があれば、弾クラスも作った方が管理が楽だと思います。
Re: 弾の連射 ( No.4 )
名前:本田 日時:2009/12/02 00:50

sy(サイ)さんありがとうございます。 for(i=0;i<8;i++){ Flag[i] = 0; } の文を新しく作った関数にいれループ外で関数をよびだした所できました。どうもありがとうございます。

Page: 1 |