javascript - 如何检查两个div是否相互接触?
问题描述
我试图制作一个看起来像游戏的网页。我在其中使用了 html、css、javascript、jquery 和 php。我希望我的马里奥触摸我的其他对象,例如商店(来自数据库),并且在触摸商店上应该出现一个弹出框。我正在使用javascript的碰撞功能,但它不起作用。任何人都可以帮助我。这是我的代码:
function collision($store, $mario) {
alert("hello");
var x1 = $("$store").offset().left;
var y1 = $("$store").offset().top;
var x2 = $("$mario").offset().left;
var y2 = $("$mario").offset().top;
var h1 = $("$store").outerHeight(true);
var w1 = $("$store").outerWidth(true);
var h2 = $("$mario").outerHeight(true);
var w2 = $("$mario").outerHeight(true);
var b1 = y1 + h1;
var r1 = x1 + w1;
var b2 = y2 + h2;
var r2 = x2 + w2;
if (b1 < y2 || y1 > b2 || r1 < x2 || x1 > r2) {
return false;}
else{
return true;
}
};
});
var state =document.getElementById('state');
if (collision($('.store'),$('.mario'))){
state.innerText="Touching !!!";
}
else {
state.innerText="No collision";
}
alert(state.innerText);
}
解决方案
推荐阅读
- python - `tf.nn.space_to_depth` 是否有等效的 PyTorch 函数
- android - 无论在android中垂直对齐的字数如何,如何为多个文本视图设置相等的宽度?
- javascript - JS 保留以零结尾的小数
- windows - 如何使从 docker linux 容器内部创建的符号链接可以从 Windows 主机看到(如果需要,可能涉及 samba)
- python - RuntimeError:无法对 TCPTransport 执行操作,处理程序已关闭
- reporting-services - 如何在 SSRS 中编写 IFF 条件?
- azure - DeviceClient.SetConnectionStatusChangesHandler 在设备离线 1 小时以上后不会被调用
- javascript - Vue 为多个模块添加可重用的变异
- maven - 如何使用 maven 编译特定的依赖项
- assembly - 在装配中,分支有时与跳跃相同吗?