プレイヤーの残機を減らす方法について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
samusu0905
記事: 336
登録日時: 5年前

プレイヤーの残機を減らす方法について

#1

投稿記事 by samusu0905 » 5年前

プレイヤーの残機を減らす処理なんですが、どのようなプログラムを書けばいいんですか?
ダメージ処理のところに書くことはわかっています。ダメージ処理なので、衝突判定の部分ですよね?
衝突判定のところにダメージを負ったら残機を減らすのを書くところまではわかりますが、
プログラムがいまいちわかりません。
具体的にどのような処理を衝突判定に書けばよいですか?
わかりやすい説明をお願いします。
因みに衝突判定なので多分こんな感じのコードだと思います。

コード:

//ドラゴンと敵の衝突判定------------------------------------------------------
void CollisionDragonEnemy(void)
{
	int i;

	//敵の数ループ
	for(i=0; i<ENEMY1_MAX; i++)
	{
		//敵が存在すれば
		if( gEnemy1[i].flg == ON)
		{
			CollisionDragonEnemyOne(i);	//ドラゴンと敵の衝突判定の実施
		}
	}
}


//ドラゴンと敵の衝突判定の実施------------------------------------------------
void CollisionDragonEnemyOne(int i)
{
	//敵が存在していれば
	if( gEnemy1[i].flg == ON)
	{
		if( gDragon.x+DRAGON_XSIZE > gEnemy1[i].x &&		//ドラゴンの右>敵の左
			gDragon.x < gEnemy1[i].x+ENEMY1_XSIZE &&			//ドラゴンの左<敵の右
			gDragon.y+DRAGON_YSIZE > gEnemy1[i].y &&		//ドラゴンの下>敵の上
			gDragon.y+30 < gEnemy1[i].y+ENEMY1_YSIZE)		//ドラゴンの上<敵の下
		{
			gEnemy1[i].flg = OFF;							//敵が存在しない
			gsPlaySound( sBombSE, LOOP_OFF);				//敵の爆発SE
			//gsPlaySound( sDamageSE, LOOP_OFF);			//ドラゴンのダメージSE
			gDragonLife[i].HP -= 1;							//ドラゴンのダメージ

		}
	}
}

アバター
みけCAT
記事: 6190
登録日時: 8年前
住所: 千葉県
連絡を取る:

Re: プレイヤーの残機を減らす方法について

#2

投稿記事 by みけCAT » 5年前

なんでいきなりドラゴンが出てくるのですか?
プレイヤー=ドラゴンですか?
samusu0905 さんが書きました:衝突判定のところにダメージを負ったら残機を減らすのを書くところまではわかりますが、
プログラムがいまいちわかりません。
具体的にどのような処理を衝突判定に書けばよいですか?
まず、ダメージを負う条件は何ですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

samusu0905
記事: 336
登録日時: 5年前

Re: プレイヤーの残機を減らす方法について

#3

投稿記事 by samusu0905 » 5年前

そうですね。自分が今回作っているゲームのプレイヤーはドラゴンにしています。
ですから、プレイヤー=ドラゴンです。
ダメージを負う条件ついては、ドラゴン左右上下と敵の左右上下がそれぞれ衝突したときに
ドラゴンの残機を減らすという処理です。
そこまでは出来ましたが、ドラゴンと敵が衝突するたびにドラゴンの残機が一つずつ減っていくという処理です。

samusu0905
記事: 336
登録日時: 5年前

Re: プレイヤーの残機を減らす方法について

#4

投稿記事 by samusu0905 » 5年前

いきなりドラゴンですみませんでした。前もって言うべきでしたね・・。

アバター
みけCAT
記事: 6190
登録日時: 8年前
住所: 千葉県
連絡を取る:

Re: プレイヤーの残機を減らす方法について

#5

投稿記事 by みけCAT » 5年前

現状のコードで何が問題なのですか?
samusu0905 さんが書きました:因みに衝突判定なので多分こんな感じのコードだと思います。
そう思ったものを、まず自分でコンパイルして実行してみましたか?
「ダメージ(HP)」と「残機」の概念は両方作るのですか?ここでの「HP」=「残機」ではないのですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
プラム
記事: 164
登録日時: 5年前
住所: 東海地方

Re: プレイヤーの残機を減らす方法について

#6

投稿記事 by プラム » 5年前

gDragon.Numと
gDragon.flg とか言う(名前はなんでもいいですが)ものがあれば
このようにコードを書けばいいじゃないですか?

コード:

//ドラゴンと敵の衝突判定の実施------------------------------------------------
void CollisionDragonEnemyOne(int i)
{
    //敵が存在していれば
    if( gEnemy1[i].flg == ON)
    {
        if( gDragon.x+DRAGON_XSIZE > gEnemy1[i].x &&        //ドラゴンの右>敵の左
            gDragon.x < gEnemy1[i].x+ENEMY1_XSIZE &&            //ドラゴンの左<敵の右
            gDragon.y+DRAGON_YSIZE > gEnemy1[i].y &&        //ドラゴンの下>敵の上
            gDragon.y+30 < gEnemy1[i].y+ENEMY1_YSIZE)       //ドラゴンの上<敵の下
        {
            gEnemy1[i].flg = OFF;                           //敵が存在しない
            gsPlaySound( sBombSE, LOOP_OFF);                //敵の爆発SE
            //gsPlaySound( sDamageSE, LOOP_OFF);            //ドラゴンのダメージSE
            gDragonLife[i].HP -= 1;                         //ドラゴンのダメージ
 if(gDragonLife[i].HP<=0){

gDragon.Num -= 1;

if(gDragon.Num<=0){
gDragon.flg=OFF;
} 

}
        }
    }
}
と書けばたぶんできると思います。

samusu0905
記事: 336
登録日時: 5年前

Re: プレイヤーの残機を減らす方法について

#7

投稿記事 by samusu0905 » 5年前

ハルルンさん申し訳ございませんが、ドラゴンのflgはあってもNumは定義してないですね・・。
教えて下さったのに失礼なことを言ってすみません。
Numが定義されてなければ別の定義されているものを利用すればよろしいでしょうか?

アバター
みけCAT
記事: 6190
登録日時: 8年前
住所: 千葉県
連絡を取る:

Re: プレイヤーの残機を減らす方法について

#8

投稿記事 by みけCAT » 5年前

samusu0905 さんが書きました:ハルルンさん申し訳ございませんが、ドラゴンのflgはあってもNumは定義してないですね・・。
教えて下さったのに失礼なことを言ってすみません。
Numが定義されてなければ別の定義されているものを利用すればよろしいでしょうか?
それはプログラムの設計や仕様によります。
Numを新たに定義することはできないのですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

samusu0905
記事: 336
登録日時: 5年前

Re: プレイヤーの残機を減らす方法について

#9

投稿記事 by samusu0905 » 5年前

説明がまだ分かりずらかったですか?
なら更にわかりやすく説明いたします。
実はドラゴンの残機をハートで表しているんですが、
そこで教えてほしいのは、ドラゴンの残機(ハート)8個が、敵とドラゴンが衝突する度にドラゴンの残機(ハート)を一つずつ
削っていく処理です。 わざわざプログラムまで書いていただいたのにすみませんね・・・。
あまりにも自分の説明のなさに申し訳ないです。

アバター
プラム
記事: 164
登録日時: 5年前
住所: 東海地方

Re: プレイヤーの残機を減らす方法について

#10

投稿記事 by プラム » 5年前

少しわかりづらかったかもしれません。ごめんなさい。
gDragonと書いてある場所のかっこの中にflgとNumを追加して。コードコメントを付けたのでそれを見れば大体わかると思います。

コード:

//ドラゴンと敵の衝突判定の実施------------------------------------------------
void CollisionDragonEnemyOne(int i)
{
    //敵が存在していれば
    if( gEnemy1[i].flg == ON)
    {
        if( gDragon.x+DRAGON_XSIZE > gEnemy1[i].x &&        //ドラゴンの右>敵の左
            gDragon.x < gEnemy1[i].x+ENEMY1_XSIZE &&            //ドラゴンの左<敵の右
            gDragon.y+DRAGON_YSIZE > gEnemy1[i].y &&        //ドラゴンの下>敵の上
            gDragon.y+30 < gEnemy1[i].y+ENEMY1_YSIZE)       //ドラゴンの上<敵の下
        {
            gEnemy1[i].flg = OFF;                           //敵が存在しない
            gsPlaySound( sBombSE, LOOP_OFF);                //敵の爆発SE
            //gsPlaySound( sDamageSE, LOOP_OFF);            //ドラゴンのダメージSE
            gDragonLife[i].HP -= 1;                         //ドラゴンのダメージ
 if(gDragonLife[i].HP<=0){ //もしドラゴンのHPが0より少なくなった場合に機数をーする
 
gDragon.Num -= 1; //機数を-する
 
if(gDragon.Num<=0){ // もしドラゴンの残り機数が0になった場合ドラゴンを存在しなくする(ゲームオーバー)ということです。
gDragon.flg=OFF; // とはドラゴンの存在を消す
} 
 
}
        }
    }
}


アバター
みけCAT
記事: 6190
登録日時: 8年前
住所: 千葉県
連絡を取る:

Re: プレイヤーの残機を減らす方法について

#11

投稿記事 by みけCAT » 5年前

No: 10のコードだと、機数を-したあとにHPを回復させる処理が必要だと思います。

ところで、
みけCAT さんが書きました:現状のコードで何が問題なのですか?
samusu0905 さんが書きました:因みに衝突判定なので多分こんな感じのコードだと思います。
そう思ったものを、まず自分でコンパイルして実行してみましたか?
「ダメージ(HP)」と「残機」の概念は両方作るのですか?ここでの「HP」=「残機」ではないのですか?
これが無視されているように感じるのですが…私のことお嫌いですか?
それとも勘違いですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
へにっくす
記事: 628
登録日時: 7年前
住所: 東京都

Re: プレイヤーの残機を減らす方法について

#12

投稿記事 by へにっくす » 5年前

>ハルルンさん
インデントがおかしいので直しました。
編集するときは、インデントを直す癖をつけた方がいいですよ。

コード:

//ドラゴンと敵の衝突判定の実施------------------------------------------------
void CollisionDragonEnemyOne(int i)
{
	//敵が存在していれば
	if( gEnemy1[i].flg == ON)
	{
		if( gDragon.x+DRAGON_XSIZE > gEnemy1[i].x &&      //ドラゴンの右>敵の左
		  gDragon.x < gEnemy1[i].x+ENEMY1_XSIZE &&        //ドラゴンの左<敵の右
		  gDragon.y+DRAGON_YSIZE > gEnemy1[i].y &&        //ドラゴンの下>敵の上
		  gDragon.y+30 < gEnemy1[i].y+ENEMY1_YSIZE)       //ドラゴンの上<敵の下
		{
			gEnemy1[i].flg = OFF;                         //敵が存在しない
			gsPlaySound( sBombSE, LOOP_OFF);              //敵の爆発SE
			//gsPlaySound( sDamageSE, LOOP_OFF);          //ドラゴンのダメージSE
			gDragonLife[i].HP -= 1;                       //ドラゴンのダメージ

			if(gDragonLife[i].HP<=0){ //もしドラゴンのHPが0より少なくなった場合に機数をーする
				gDragon.Num -= 1;     //機数を-する

				if(gDragon.Num<=0){   // もしドラゴンの残り機数が0になった場合ドラゴンを存在しなくする(ゲームオーバー)ということです。
					gDragon.flg=OFF;  // とはドラゴンの存在を消す
				}

			}
		}
	}
}
written by へにっくす

アバター
プラム
記事: 164
登録日時: 5年前
住所: 東海地方

Re: プレイヤーの残機を減らす方法について

#13

投稿記事 by プラム » 5年前

みけCATさん>>なぜすぐに妄想が始まるのですか?みなさん嫌いだから無視するとかじゃないと思いますが・・・
ヘにっくすさん>>そうですね。しっかりインデントとかしたほうがですね。そのほうがきれいに見えるし見やすい。

samusu0905
記事: 336
登録日時: 5年前

Re: プレイヤーの残機を減らす方法について

#14

投稿記事 by samusu0905 » 5年前

みけCATさん>>すみませんでした。勘違いしないでください。別にみけCATさんのことが嫌いなわけではありません・・。
無視してる感じを受けているのなら謝りますね。みけCATさんごめんなさい。
でも、今はみけCATさんに色々と教えてもらってとても嬉しいですよ。
ハルルンさんの言うとおり嫌いではありません。誤解なさらないようにお願いします・・。
ハルルンさんのプログラムとおりにして、Numを新たに定義して書きましたが、定義して思ったのがNumを新たに定義
したのは良いんですが、定義したところでNumをどのソースコードにも使われてなかったので、衝突判定で書き込んでも
意味がありませんでした。 ですから、ドラゴンのソースコードにでもNumを使ってみます。
上手くいくといいですが・・。

アバター
みけCAT
記事: 6190
登録日時: 8年前
住所: 千葉県
連絡を取る:

Re: プレイヤーの残機を減らす方法について

#15

投稿記事 by みけCAT » 5年前

samusu0905 さんが書きました:みけCATさん>>すみませんでした。勘違いしないでください。別にみけCATさんのことが嫌いなわけではありません・・。
無視してる感じを受けているのなら謝りますね。みけCATさんごめんなさい。
でも、今はみけCATさんに色々と教えてもらってとても嬉しいですよ。
ハルルンさんの言うとおり嫌いではありません。誤解なさらないようにお願いします・・。
ありがとうございます。
「私のことお嫌いですか?」というのは半分冗談です。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

samusu0905
記事: 336
登録日時: 5年前

Re: プレイヤーの残機を減らす方法について

#16

投稿記事 by samusu0905 » 5年前

問題はNumをどのようにうまく活用するのかですね。

samusu0905
記事: 336
登録日時: 5年前

Re: プレイヤーの残機を減らす方法について

#17

投稿記事 by samusu0905 » 5年前

そうですか・・。冗談で良かったです。
僕からしたらみけCATさんはとても頼りになる存在ですよ。
みけCATさんだけじゃなくとも、他の教えて下さっている人も同じです。

アバター
みけCAT
記事: 6190
登録日時: 8年前
住所: 千葉県
連絡を取る:

Re: プレイヤーの残機を減らす方法について

#18

投稿記事 by みけCAT » 5年前

samusu0905 さんが書きました:問題はNumをどのようにうまく活用するのかですね。
もう一度書きますが、Numを追加するのではなく、
現状(No: 1のコード)で存在する変数gDragonLife.HPをそのまま残機数として利用することはできないのですか?
私にはそのままHP→残機と読み替えればいいように思えるのですが…?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

samusu0905
記事: 336
登録日時: 5年前

Re: プレイヤーの残機を減らす方法について

#19

投稿記事 by samusu0905 » 5年前

確かにその通りですね。あ、でも既に自分もHPを残機にしてますのでそこは問題ありませんよ。
後は、残機(ハート)を衝突するたびに一つずつ削っていく処理だけですから。
もう少し自分でやってみますね。
分からなければ、どこまで書けてどこが問題なのかを教えますので。
よろしくお願いします。

samusu0905
記事: 336
登録日時: 5年前

Re: プレイヤーの残機を減らす方法について

#20

投稿記事 by samusu0905 » 5年前

あの後、色々と試しましたがうまくいきそうにないです。
ドラゴンのHPは残機として扱っていますので、そこは問題ありません。
ただ、衝突判定の部分で衝突したら残機が減る処理に手こずっています。
敵とドラゴンが衝突したらドラゴンのHPは減りますが、問題の残機(ハート)が8個のままで、
いくら衝突しても一つも消えません・・。別に消える時にわざわざ点滅させる必要はないので
もう少ししたら出来るはずですが。 
コードを提示します。

コード:

//ドラゴンと敵の衝突判定の実施------------------------------------------------
void CollisionDragonEnemyOne(int i)
{
	//敵が存在していれば
	if( gEnemy1[i].flg == ON)
	{
		if( gDragon.x+DRAGON_XSIZE > gEnemy1[i].x &&		//ドラゴンの右>敵の左
			gDragon.x < gEnemy1[i].x+ENEMY1_XSIZE &&			//ドラゴンの左<敵の右
			gDragon.y+DRAGON_YSIZE > gEnemy1[i].y &&		//ドラゴンの下>敵の上
			gDragon.y+30 < gEnemy1[i].y+ENEMY1_YSIZE)		//ドラゴンの上<敵の下
		{
			gEnemy1[i].flg = OFF;							//敵が存在しない
			gsPlaySound( sBombSE, LOOP_OFF);				//敵の爆発SE
			//gsPlaySound( sDamageSE, LOOP_OFF);			//ドラゴンのダメージSE
			gDragon.HP -= 1;								//ドラゴンのダメージ

			if(gDragon.HP -= 1)								//ドラゴンの残機
			{
				gDragonLife[i].x = 30+30*(i-2);						//残機を一つずつ減らす
			}
		}
	}
}
だいたいこんな感じになります。
出来ればgDragon.HPとgDragonLifeを使ってプログラムを書いて欲しいです。
お願いします><

アバター
プラム
記事: 164
登録日時: 5年前
住所: 東海地方

Re: プレイヤーの残機を減らす方法について

#21

投稿記事 by プラム » 5年前

あの・・・

コード:

if(gDragon.HP -= 1) //という書き方はいつまでたっても減らないのは当たり前だと思います(それはドラゴンのHPを減らしているです)
そう書くなら
if(gDragonLife.HP<=0) と書かないとできない気がします。
あと機数を描画するには

コード:

for(int i =0 ; i<gDragonLife[i].HP; i++){
/*ここに画像を描画する関数を書いてください*/
}

とかいう感じです。

アバター
プラム
記事: 164
登録日時: 5年前
住所: 東海地方

Re: プレイヤーの残機を減らす方法について

#22

投稿記事 by プラム » 5年前

それか、

コード:

//ドラゴンと敵の衝突判定の実施------------------------------------------------
void CollisionDragonEnemyOne(int i)
{
    //敵が存在していれば
    if( gEnemy1[i].flg == ON)
    {
        if( gDragon.x+DRAGON_XSIZE > gEnemy1[i].x &&        //ドラゴンの右>敵の左
            gDragon.x < gEnemy1[i].x+ENEMY1_XSIZE &&            //ドラゴンの左<敵の右
            gDragon.y+DRAGON_YSIZE > gEnemy1[i].y &&        //ドラゴンの下>敵の上
            gDragon.y+30 < gEnemy1[i].y+ENEMY1_YSIZE)       //ドラゴンの上<敵の下
        {
            gEnemy1[i].flg = OFF;                           //敵が存在しない
            gsPlaySound( sBombSE, LOOP_OFF);                //敵の爆発SE
            //gsPlaySound( sDamageSE, LOOP_OFF);            //ドラゴンのダメージSE
            gDragon.HP -= 1;                                //ドラゴンのダメージ
            
            gDragonLife[i].x = 30+30*(i-2);                     //残機を一つずつ減らす
            
        }
    }
}
と書けばいいです。

アバター
みけCAT
記事: 6190
登録日時: 8年前
住所: 千葉県
連絡を取る:

Re: プレイヤーの残機を減らす方法について

#23

投稿記事 by みけCAT » 5年前

きつい言い方で申し訳ないのですが、
プレイヤーの左下にプレイヤーの残機を8個ほど並べるやり方について • C言語交流フォーラム ~ mixC++ ~
このスレッドで残機の表示に「見事に成功」したのではなかったのですか?
これは嘘だったのですか?
成功していないのに成功したと言うのは、自分のためにならないと思います。

[hr]
現状のコードにおいて、gDragonLife.xの役割は何ですか?(何を表していますか?)
そもそも、gDragonLifeの役割は何ですか?(何を表していますか?)
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

samusu0905
記事: 336
登録日時: 5年前

Re: プレイヤーの残機を減らす方法について

#24

投稿記事 by samusu0905 » 5年前

いえ、残機の表示が出来たのは本当ですよ。
出来なかったのは、残機が減らないということです。
そこが出来なくて困っています。
gDragonLife.xはドラゴンの残機の位置を表す役割と、ドラゴンの残機の数を表す役割もしています。

samusu0905
記事: 336
登録日時: 5年前

Re: プレイヤーの残機を減らす方法について

#25

投稿記事 by samusu0905 » 5年前

ハルルンさんの言った通りに書いてみましたが、

コード:

//ドラゴンと敵の衝突判定の実施------------------------------------------------
void CollisionDragonEnemyOne(int i)
{
	//敵が存在していれば
	if( gEnemy1[i].flg == ON)
	{
		if( gDragon.x+DRAGON_XSIZE > gEnemy1[i].x &&		//ドラゴンの右>敵の左
			gDragon.x < gEnemy1[i].x+ENEMY1_XSIZE &&			//ドラゴンの左<敵の右
			gDragon.y+DRAGON_YSIZE > gEnemy1[i].y &&		//ドラゴンの下>敵の上
			gDragon.y+30 < gEnemy1[i].y+ENEMY1_YSIZE)		//ドラゴンの上<敵の下
		{
			gEnemy1[i].flg = OFF;							//敵が存在しない
			gsPlaySound( sBombSE, LOOP_OFF);				//敵の爆発SE
			//gsPlaySound( sDamageSE, LOOP_OFF);			//ドラゴンのダメージSE
			gDragon.HP -= 1;								//ドラゴンのダメージ

			gDragonLife[i].x = 30+30*(i-2);					//残機を一つずつ減らす
		}
	}
}
出来ませんでした・・。なぜか残機の数は全く反応しませんでした。
僕も大丈夫かと思ったのですが、まだ違うところがある見たいです。
わざわざ書いて下さったのに申し訳ないです・・。
みけCATさん何か残機のが減るようなプログラムありませんか?
あれば教えてほしいです。お願いします><
もし、動かなくても自分で少し変えながらやっていけば上手くいくと思うので。

アバター
みけCAT
記事: 6190
登録日時: 8年前
住所: 千葉県
連絡を取る:

Re: プレイヤーの残機を減らす方法について

#26

投稿記事 by みけCAT » 5年前

samusu0905 さんが書きました:みけCATさん何か残機のが減るようなプログラムありませんか?
あれば教えてほしいです。お願いします><
ごめんなさい。日本語として意味がわからないです。

すぐに直球でプログラムを求めないで、少しは考えようとして欲しいと思います。
gDragonLifeの表示やその他の処理をしている部分のプログラムを見せていただけますか?
samusu0905 さんが書きました:gDragonLife.xはドラゴンの残機の位置を表す役割と、ドラゴンの残機の数を表す役割もしています。

どういう設計なのでしょうか?
わかりにくいので、表示する位置と数は別の変数(同じ構造体の別のメンバでも良い)に格納するべきだと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

samusu0905
記事: 336
登録日時: 5年前

Re: プレイヤーの残機を減らす方法について

#27

投稿記事 by samusu0905 » 5年前

ごめんなさい。ただの入力ミスです・・。
「残機が減るようなプログラム」と伝えたかったのです。
分かりずらくてごめんなさい・・。
ここにコードを提示します。

コード:

//ドラゴンと敵の衝突判定の実施------------------------------------------------
void CollisionDragonEnemyOne(int i)
{
	//敵が存在していれば
	if( gEnemy1[i].flg == ON)
	{
		if( gDragon.x+DRAGON_XSIZE > gEnemy1[i].x &&		//ドラゴンの右>敵の左
			gDragon.x < gEnemy1[i].x+ENEMY1_XSIZE &&			//ドラゴンの左<敵の右
			gDragon.y+DRAGON_YSIZE > gEnemy1[i].y &&		//ドラゴンの下>敵の上
			gDragon.y+30 < gEnemy1[i].y+ENEMY1_YSIZE)		//ドラゴンの上<敵の下
		{
			gEnemy1[i].flg = OFF;							//敵が存在しない
			gsPlaySound( sBombSE, LOOP_OFF);				//敵の爆発SE
			//gsPlaySound( sDamageSE, LOOP_OFF);			//ドラゴンのダメージSE
			gDragon.HP -= 1;								//ドラゴンのダメージ

			gDragonLife[i].x = 30+30*(i-2);					//残機を一つずつ減らす
		}
	}
}
これ↑が衝突判定

コード:

//表示-----------------------------------------------------------------------
void DragonDraw(void)
{
	int i;

	gsDraw2D( sDragon, (int)gDragon.x, (int)gDragon.y);			//ドラゴン

	for(i=0; i<DRAGONLIFE_MAX; i++)
	{
		gDragonLife[i].x = 30+30*(i-1);							//ドラゴン残機の数を複数に分裂
		gDragonLife[i].y = 695;
		gsDraw2D( sDragonLife, gDragonLife[i].x, gDragonLife[i].y);
	}
}
で、これ↑がドラゴンの残機の表示です。

アバター
みけCAT
記事: 6190
登録日時: 8年前
住所: 千葉県
連絡を取る:

Re: プレイヤーの残機を減らす方法について

#28

投稿記事 by みけCAT » 5年前

衝突判定ではgDragonLife.xを操作せず、
DragonDraw関数中のforループでi<gDragon.HPの時だけgDragonLifeを描画すればいいと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

samusu0905
記事: 336
登録日時: 5年前

Re: プレイヤーの残機を減らす方法について

#29

投稿記事 by samusu0905 » 5年前

後、どの部分のコードを提示すればよろしいですか?

アバター
みけCAT
記事: 6190
登録日時: 8年前
住所: 千葉県
連絡を取る:

Re: プレイヤーの残機を減らす方法について

#30

投稿記事 by みけCAT » 5年前

samusu0905 さんが書きました:後、どの部分のコードを提示すればよろしいですか?
今のところ追加する必要はなさそうだと思いますが…No: 28の方法ではうまくいかなかったですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

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