Vig*_*Vig 8 javascript css jquery detection collision
我正在使用CSS动画和jQuery在十字路口(顶视图)中移动汽车来模拟驾驶执照测验.用户必须通过点击汽车来选择交叉订单.
示例图片: 
每辆车都有属性和这样的动画,例如:蓝色车转右(与图像不同):
#auto-b {
left: 320px;
top: 150px;
-webkit-transform: rotate(180deg);
}
.animated #auto-b {
-webkit-animation-name: move-b;
-webkit-animation-fill-mode: forwards;
}
@-webkit-keyframes move-b {
30% {
left: 260px;
top: 150px;
-webkit-transform: rotate(180deg);
}
60% {
left: 214px;
top: 120px;
-webkit-transform: rotate(270deg);
}
100% {
top: 30px;
left: 214px;
-webkit-transform: rotate(270deg);
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道的是我如何检测两辆车是否因为它们旋转(转动)而发生碰撞.
播放按钮功能:
$('#play').on('click', play);
function play(){
$('.auto').removeClass('selected');
$('#incrocio').addClass('animated');
interval = setInterval(crash,1);
}
Run Code Online (Sandbox Code Playgroud)
碰撞功能(仅适用于红色和绿色汽车碰撞,因为它们不会旋转):
function crash(){
var autoA = $('#auto-a').position();
var autoB = $('#auto-b').position();
var autoC = $('#auto-c').position();
var top1 = autoA.top+10;
var top2 = autoA.top-10;
var left1 = autoA.left+10;
var left2 = autoA.left-10;
if (top1 > autoC.top && top2 < autoC.top && left1 > autoC.left && left2 < autoC.left) {
console.log("boom");
$('#incrocio').removeClass('animated');
alert("BOOM!");
i = 1;
carsArray = [];
clearInterval(interval);
}
}
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来检测每个具有".auto"类的图像之间的任何类型的碰撞?
我还想过计算矩形的每个点并检查它们中是否有任何一个在另一个矩形(汽车)内.但是我只能得到左上角而不是其他.
有解决方案吗
提前致谢!
使用Jquery/javascript绘制汽车动画。使用 css3 动画对于检测事件或检测碰撞来说是一个非常糟糕的选择。
[解决了]
使用 jquery 时使用以下插件可以轻松检测。
http://plugins.jquery.com/overlaps/
http://yckart.github.io/jquery.overlaps.js/
[解决了]
希望你能理解我的观点。
| 归档时间: |
|
| 查看次数: |
2005 次 |
| 最近记录: |