小球碰壁与互撞

1.用一个数组存储小球

2.生成小球并文档流插入和存入数组。生成的小球信息包括小球坐标、移动速度、移动方向、背景颜色、编号。

3.小球移动。根据小球小球移动方向,小球坐标加或减速度。同时,判断是否碰壁,如果碰壁,改变小球移动方向。

4.碰撞检测。判断小球是否与另一个小球相撞。如果相撞,判断2个小球的位置改变小球的移动方向。

5.绑定事件。每点击一次按钮,增加一个小球,并让小球移动。

部分代码:

创造小球:

var ball=document.createElement("p");
//小球坐标
ball.x=DOMhelp.randomNum(0,660);
ball.y=DOMhelp.randomNum(0,460);
//小球移动速度
ball.speed=DOMhelp.randomNum(2,5);
//小球移动方向
if(Math.random()-0.5>0){
ball.xflag=true;
}
else{
ball.xflag=false;
}
if(Math.random()-0.5>0){
ball.yflag=true;
}
else{
ball.yflag=false;
}
//小球的背景颜色
ball.style.backgroundColor=DOMhelp.randomColor();
//小球编号
ball.innerHTML=(++i);
//将小球插入到wrap中
wrap.appendChild(ball);
//将小球存储到数组中
balls.push(ball);

判断是否相撞:

Math.pow(x1-x2,2)+Math.pow(y1-y2,2)<=Math.pow((ballObj.offsetWidth+balls[i].offsetWidth)/2,2)

转载于:https://www.cnblogs.com/cdx0/p/balls.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值