あたり判定
書くネタがないので、昔習ったアルゴリズムを記憶を掘り返しながら書こうと思います。
今回は矩形同士のあたり判定について。
2つの矩形、AとBがあったとして、この2つのどこか1部分でも重なり合っていることを示すためには、
・矩形Aの左端が、矩形Bの右端より左
・矩形Aの右端が、矩形Bの左端より右
・矩形Aの上端が、矩形Bの下端より上
・矩形Aの下端が、矩形Bの上端より下
この4つ全てに当てはまった場合、矩形AとBのどこか1部分は重なり合っていると言えます。
C言語で書いてみると、
//wは幅、hは高さを表す。
//矩形は左上の頂点を軸に考えるので、xとyには矩形の左上の座標が入っているものとする。
int ax,ay,aw,ah;
int bx,by,bw,bh;
if( ax < bx + bw &&
ax + aw > bx &&
ay < by + bh &&
ay + ah > by ){
//あたり判定の処理
}
となります。