| jwでエンターテーメントしていますか
jwで絵を描いて、キャラクターを創って
スマホのタッチイベントで絵を操ろうと
・・・「3角形のヒットテスト」テーマに
プログラム中。ゲームではありませんぞ。
サンプルとして投稿画像ような
三角形を "class" しました。
当たり判定はマウスポイントに対し
辺の角度の合計が360°になるアルゴリズム
と、しました。
//...class Triangle... コードの一部
class Triangle {
float x0, x1, x2;
float y0, y1, y2;
Triangle(Point p0, Point p1, Point p2) {
this.x0=p0.x; this.y0=p0.y;
this.x1=p1.x; this.y1=p1.y;
this.x2=p2.x; this.y2=p2.y;
}
//...省略...........................................
boolean hitTest(float x,float y) { //x,y mouseの座標
float x0=this.x0 - x; float y0=this.y0 - y;
float x1=this.x1 - x; float y1=this.y1 - y;
float x2=this.x2 - x; float y2=this.y2 - y;
float k0=getDeg(x0,y0,x1,y1);
float k1=getDeg(x1,y1,x2,y2);
float k2=getDeg(x2,y2,x0,y0);
float k=k0 + k1 + k2;
if(gosa(k,PI*2)) { //角度の合計が360°か?
return true;
} else {
return false;
}
}
}
"processing" のソースです。 |
|