DXライブラリ STGのショットについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
C2

DXライブラリ STGのショットについて

#1

投稿記事 by C2 » 14年前

CとDXライブラリでSTGを作っているのですがショット部分がうまくいかないのでご指南ください。
仕様としては
・240ドット進んだら消失
・2秒以上押した状態からキーを離すとチャージショット
としたいのですが

以下の点で困っています
・キーを離した後、キャラを(上下に)動かすと弾の飛距離が変わってしまう。
・弾が飛んでる時にキーを押すと弾が消失+位置が固定されてキーを離すまで弾が出てこない。
・チャージショットが全くわからない

(例:if(SHOT() > 120) とすれば2秒以上押されれたら)

コード:

 
void PlayerShot(){
	double distance = 0 ; // 弾の距離//
	int spd = 5;                //弾の速度//


    if(SHOT()==1 &&  PlayerBullet.flag==0){		//フラグ=0でZキーが押されたら//
		PlayerBullet.flag = 1;
		PlayerBullet.x = sub_p.x;
		PlayerBullet.y = sub_p.y+20;
	}

	if( PlayerBullet.flag == 1 ){
		if(SHOT()==0){
		distance = PlayerBullet.y - sub_p.y;
		if(distance > -240){					
		PlayerBullet.y -= spd;
			DrawGraph(PlayerBullet.x+20,PlayerBullet.y-18,img_player_shot1[0],TRUE);
		}else{
			PlayerBullet.flag = 0;
			distance = 0;
         }
       }
      }
 }

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: DXライブラリ STGのショットについて

#2

投稿記事 by h2so5 » 14年前

SHOT()の仕様が分からないのでZキーが押されていると1を返す関数と仮定します。

・キーを離した後、キャラを(上下に)動かすと弾の飛距離が変わってしまう。
弾を発射した時点の座標を記録しするか、弾を移動するたびに移動量を何らかの変数にカウントして距離を計算します。

・弾が飛んでる時にキーを押すと弾が消失+位置が固定されてキーを離すまで弾が出てこない。
14行目の if(SHOT()==0){ が不要だと思います。

・チャージショットが全くわからない
キーが押されている間、変数powerをカウントアップしておいて
キーが離された時点(SHOT()==0)で 0 < power < 120 なら通常ショット 120 <= power ならチャージショット

閉鎖

“C言語何でも質問掲示板” へ戻る