Poc*_*ata 5 javascript html5 canvas collision
嘿,我正试图找到画布中两个物体碰撞的一面.这是我用于碰撞检测的内容,但它只检查碰撞,没有特定的一面.
其中o1和o2是对象,具有以下属性:
x- X轴上的
y位置
w- Y轴上的位置- 矩形的宽度 - 矩形
h的高度
var collidesWith = function (o2) {
var o1 = this;
if ((o1.y + o1.h) < o2.y) {
return 0;
}
if (o1.y > (o2.y + o2.h)) {
return 0;
}
if ((o1.x + o1.w) < o2.x) {
return 0;
}
if (o1.x > (o2.x + o2.w)) {
return 0;
}
return 1;
};
Run Code Online (Sandbox Code Playgroud)
编辑:这是我在元素顶部进行碰撞检测的代码:
if (
(o1.y - o1.dy >= o2.y) &&
(o1.y - o1.dy <= o2.y + o2.h) &&
(o1.x + o1.w >= o2.x) &&
(o1.x <= o2.x + o2.w)
) {
// We have collision at the top end
}
Run Code Online (Sandbox Code Playgroud)
你需要像这样的双重条件:
if ((o1.y > o2.y) && (o1.y < o2.y + o2.h)) {
return 'top'; // o1's top border collided with o2's bottom border
}
Run Code Online (Sandbox Code Playgroud)
类似于其他方面.
| 归档时间: |
|
| 查看次数: |
2468 次 |
| 最近记录: |