欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

javascript小程序,为啥两物体碰撞后不是按照90度改变方向前进

更新时间: 2014-01-05 01:51:46 责任编辑: Author_N1

 

javascript小程序,为什么两物体碰撞后不是按照90度改变方向前进
现在是按照180度碰撞折返了,但我明明是等于40的情况下,只改变了一个x或y,应该是90度才对啊,现在却变成想x和y同时改变,为什么啊,代码哪里出问题了,即使是180度折返,那也应该只有|x1-x2|=40,|y1-y2|=40这情况啊,现在却是碰了就180度返回

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-type" content="text/html;charest=UTF-8">
<title>総合演習1</title>
<style type="text/css">
#box{
position: absolute;background-color:black;
left:50px;top:50px;
width:400px;height:300px;
}
#star{
position:absolute;
left:50px;top:180px;
}
#moon{
position:absolute;
left:50px;top:180px;
}
</style>
<script type="text/javascript">
var x1 = 50;
var y1 = 180;
var x2 = 380;
var y2 = 250;
var dx1 = 5;
var dy1 = 5;
var dx2 = 5;
var dy2 = 5;
var timer;

function moveImg() {
x1 = x1 + dx1;
y1 = y1 + dy1;
x2 = x2 + dx2;
y2 = y2 + dy2;
imgStar = document.getElementById("star");
imgMoon = document.getElementById("moon");
imgStar.style.left = x1 + "px";
imgStar.style.top = y1 + "px";
imgMoon.style.left = x2 + "px";
imgMoon.style.top = y2 + "px";


if(x1 <= 50 || x1 >= 410 || ((Math.abs(x1 - x2) == 40) && (Math.abs(y1 - y2) <= 40))){
dx1 = -dx1;
}
if(x2 <= 50 || x2 >= 410 || ((Math.abs(x1 - x2) == 40) && (Math.abs(y1 - y2) <= 40))) {
dx2 = -dx2;
}
if(y1 <=50 || y1 >= 310 || ((Math.abs(y1 - y2) == 40) && (Math.abs(x1 - x2) <= 40))){
dy1 = -dy1;
}
if(y2 <=50 || y2 >= 310 || ((Math.abs(y1 - y2) == 40) && (Math.abs(x1 - x2) <= 40))) {
dy2 = -dy2;
}
timer = setTimeout("moveImg()", 25);
}

</script>
</head>

<body bgcolor="#FFFFFF" onload="moveImg();" >
<div id="box"></div>
<img src="images/star.png" id="star" />
<img src="images/moon.png" id="moon" />
</body>
</html>


--参考方法--
困为每次碰撞都是
--参考方法--
x1-x2
--参考方法--
=40与
--参考方法--
y1-y2
--参考方法--
=40这种情况,所以每次都是180度折返。
改下图片初始坐标就可以了

--参考方法--
#3 是对的
你把起始位置是步长的正数倍,无论怎么加减都不会不被步长整除
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:51:46
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/2168/
本文WWW.DOC100.NET DOC100.NET版权所有。