[英]How to detect collision on a polygon
我正在嘗試使用CraftyJS檢測我的播放器(僅一個正方形)和一個多邊形之間的碰撞 :
// Init Crafty:
Crafty.init();
Crafty.canvas.init();
var AttackPoly = new Crafty.polygon([
[-8, 6],
[0, -8],
[8, -14],
[16, -8],
[24, 6]
]);
attackEnt = Crafty.e("AttackRange, 2D, Canvas, Collision, SolidHitBox, Color").attr({x:50, y:50}).collision(AttackPoly);
Crafty.e("2D, Canvas, Color, Fourway, Collision, Tester").attr({
x: 100,
y: 60,
w: 4,
h: 4
}).color("orange");
Crafty.e("2D, Canvas, Color, Fourway, Collision, Tester").attr({
x: 100,
y: 50,
w: 4,
h: 4
}).color("orange");
Crafty.e("2D, Canvas, Color, Fourway, Collision, Tester").attr({
x: 100,
y: 40,
w: 4,
h: 4
}).color("orange");
Crafty("Tester").bind("EnterFrame", function () {
this.x -= .2
if (this.hit("AttackRange")) this.color("aqua")
});
命中多邊形的正方形不會改變其顏色。 我想念什么?
小提琴: http : //jsfiddle.net/c3597/32/
我知道了:多邊形必須在邊界矩形內:
Crafty
.e('AttackRange, 2D, Canvas, Collision, SolidHitBox, Color')
.attr({x:50, y:50, w: 100, h: 100})
.collision(new Crafty.polygon([
[0, 0],
[100, 50],
[0, 100]
]))
.color('blue');
小提琴: http : //jsfiddle.net/c3597/33/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.