矩形の当たり判定

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

矩形の当たり判定

#1

投稿記事 by イマダニ » 13年前

この前ジャンプと走りのアニメーションについて質問した者です。
今回は当たり判定についての二つ質問したいと思います。
まず一つ、当たり判定には矩形や円、三角関数などいろいろな判定方法がありますが、
アクションゲームで使われる当たり判定は矩形でいいのでしょうか?
そして二つ目は、私はブロック崩しを作る際に矩形の当たり判定を用いたのですが、
その時、バーやボールの幅と高さをGetGraphSize関数で取得しました。
ちゃんと跳ね返ったのですが、これでは当たり判定を自在に大きくしたりできないなと思い、
ほかに方法はないかと考えました。
皆さんはどのようにして幅や高さを取得しているのでしょうか?
アクションゲームの作り方がのっている本達で、
それらはDXライブラリではなくDirectXでの開発ですが、RECT構造体というもので測っているのをよく見かけます。
それと同じような感じなのでしょうか?
教えてください。

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

Re: 矩形の当たり判定

#2

投稿記事 by h2so5 » 13年前

イマダニ さんが書きました:この前ジャンプと走りのアニメーションについて質問した者です。
今回は当たり判定についての二つ質問したいと思います。
まず一つ、当たり判定には矩形や円、三角関数などいろいろな判定方法がありますが、
アクションゲームで使われる当たり判定は矩形でいいのでしょうか?
ゲームによります。
キャラクターの形が丸いなら円の方が良い場合もありますし、
形が複雑なら複数の当たり判定の組み合わせも考えられます。
イマダニ さんが書きました: そして二つ目は、私はブロック崩しを作る際に矩形の当たり判定を用いたのですが、
その時、バーやボールの幅と高さをGetGraphSize関数で取得しました。
ちゃんと跳ね返ったのですが、これでは当たり判定を自在に大きくしたりできないなと思い、
ほかに方法はないかと考えました。
皆さんはどのようにして幅や高さを取得しているのでしょうか?
当たり判定を大きくしたいだけなら、
GetGraphSize関数で取得した幅と高さを適当に大きくするだけで可能です。

イマダニ

Re: 矩形の当たり判定

#3

投稿記事 by イマダニ » 13年前

すいません質問の仕方が悪かったです。
大きくするだけならそれでいいんですが、たとえばボールが左端に当たった時とか、右端に当たった時とか
当たり判定を分けるときに”バーのX座標から20のところ”が”左端”って判定している人がいるじゃないですか。
あれってよくわかるなって思うんですよ。どうやって測ってるんですか?

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

Re: 矩形の当たり判定

#4

投稿記事 by h2so5 » 13年前

すみません、よけいに意味が分かりません。
ブロック崩しのバーの左端と右端で当たり判定を分けることがあるのでしょうか?

イマダニ

Re: 矩形の当たり判定

#5

投稿記事 by イマダニ » 13年前

コード:

	if(バーの左端に当たったとき){
			dx = 3;
			dy *= -1;
	}else if(バーの右端に当たったとき){
			dx = -3;
			dy *= -1;
	}else{
			dy *= -1;
	}
}
こういうのです

イマダニ

Re: 矩形の当たり判定

#6

投稿記事 by イマダニ » 13年前

自己解決しました

閉鎖

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