【更新】H5 Canvas 碰撞小球 v1.0
本帖最后由 弱弱的小粥粥 于 2016-10-18 20:35 编辑14号写了个碰撞小球,今天翻出代码一看,发觉 自己个 走进了一个死胡同!多走了很多弯路!
果然还是对机理分析得过头了!
今天推出v1.0正式版!就几行代码解决!{:301_987:}
楼主写出的均是根据所学的知识写的原生态的js代码!
为了锻炼自己的码代码能力!页面均由JS动态生成!
ps:有同学可能要套用我的画布坐标,请注意要清除body样式;
再次附上我的HTML代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
body{
margin: 0px;
}
</style>
</head>
<body>
</body>
</html>
JS代码
<script type="text/javascript" language="javascript">
window.onload=function () {
// 创建画布
var canvas=document.createElement('canvas');
var brush=canvas.getContext("2d");
canvas.style.border="2px solid #aaaaaa";
canvas.width=700;
canvas.height=700;
// 包裹画布居中
var box=document.createElement('div');
// box样式
box.style.width=canvas.width+"px";
box.style.height=canvas.height+"px";
box.style.margin="100px auto";
// 移动块
var move=document.createElement('span');
// move样式
move.style.color="#ff0000";
move.style.position="absolute";
move.style.display="none";
move.style.boxShadow="1px 1px 8px red";
// 添加对象
document.body.appendChild(box);
document.body.appendChild(move);
box.appendChild(canvas);
// 避免重复获取画布大小
var Ox=canvas.offsetLeft;
var Oy=canvas.offsetTop;
move.style.display="none";
function mymove (event) {
move.style.display="block";
move.style.left=event.pageX-50+"px";
move.style.top=event.pageY-50+"px";
move.innerHTML="当前画布坐标:"+(event.clientX-Ox-2)+","+(event.clientY-Oy-2);
}
function myout () {
move.style.display="none";
}
canvas.onmousemove=mymove;
canvas.onmouseout=myout;
brush.translate(350,350);
var x=parseInt(Math.random()*330);//初始坐标
var y=parseInt(Math.random()*330);//初始坐标
var target_x=parseInt(Math.random()*40-20);//x坐标改变值
var target_y=parseInt(Math.random()*40-20);//y坐标改变值
function action() {
brush.clearRect(-350,-350,700,700);
brush.beginPath();
brush.fillStyle="red";
brush.arc(x,y,20,0,Math.PI*2);
brush.fill();
if (x>=330 || x<=-330) {
target_x=-target_x;
}
if (y>=330 || y<=-330) {
target_y=-target_y;
}
x+=target_x;
y+=target_y;
}
setInterval(action,100);
}
</script>
无论老鸟,还是菜鸟,都希望大家提出建议!毕竟学无止境!
互相学习哟!{:301_993:}
学习的精神难得 感谢分享,辛苦了 感谢分享学习! 学习的精神难得
跟隨了 可以!!!!! 看到这个感觉像当年学C时写的helloworld 学习学习~~~~~
页:
[1]