忍者ブログ

GAM-22のメモ

矩形の衝突判定

2024.04 ← 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 →

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

矩形の衝突判定

回転しない矩形同士の衝突判定サンプルです。
世界でも最もポピュラーじゃないんでしょうか?
最近はあんまり使ってないですね。
;===========================================================
;												2007/10/25
;	矩形の衝突判定モジュール ver.0.1.0
;												GAM-22
;===========================================================

if 0 {

#defcfunc chk_box int ax, int ay, int axs, int ays, int bx, int by, int bxs, int bys

;-----------------------------------------------------------
;	矩形同士の交差判定
;-----------------------------------------------------------
; 
; p1,p2 : 矩形Aの座標
; p3,p4	: 矩形Aのサイズ
; p5,p6 : 矩形Bの座標
; p7,p8	: 矩形Bのサイズ
;-----------------------------------------------------------

	return (ax+axs>=bx) & (bx+bxs>=ax) & (ay+bys>=by) & (by+bys>=ay)

}

	cxm = 1
	cym = 1

repeat
	redraw 0

	; 背景
	color 255,255,255 : boxf

	; 矩形A
	color ,,255
	boxf mousex,mousey, mousex+32,mousey+32

	; 円B
	color 255
	boxf cx,cy, cx+64,cy+64
	cx += cxm
	cy += cym
	if cx<=0 | cx>=576 : cxm *= -1
	if cy<=0 | cy>=416 : cym *= -1

	; 判定
	if chk_box(mousex,mousey,32,32, cx,cy,64,64) {
		pos 0,0 : mes "当たってる"
	}

	redraw
	await 5
	loop

戦車とかで、回転する矩形を判定したいなら線分判定を組み合わせれば良いと思います。
実装した例 : Battle Armor
どうせなら、多角形に対応するとベスト(?)。
PR
この記事にコメントする
お名前
タイトル
文字色
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事にトラックバックする
トラックバックURL:
カテゴリー
カウンター
最新記事
最新コメント
Twitter
人気記事
Amazon お買い得情報
Amazon お買い得情報
プロフィール
自画像
HN :
GAM-22
性別:
男性
職業:
大学1年生
HSP暦:
6年
好きなもの :
ゲーム, アニメ, マヨネーズ
嫌いなもの :
運動, 注射, ホラー映画, 英語
好きなバンド :
Muse, Radiohead
その他 :
文章能力が欠如している
バナー
Copyright © GAM-22のメモ All Rights Reserved
Powered by ニンジャブログ Designed by ピンキー・ローン・ピッグ 忍者ブログ / [PR]