实现效果:

CSS样式:
<style type="text/css">
/*坦克样式*/
.tank{
background: url(images/tank.png) no-repeat;
background-size: cover;
width: 70px;
height: 70px;
position: absolute;
bottom: 0;
}
/*子弹样式*/
.bullet{
background: url(images/bullet.png) no-repeat;
background-size: cover;
width: 10px;
height: 27px;
position: absolute;
bottom:64px;
}
</style>JavaScript:
<script type="text/javascript">
//坦克移动速度,初始速度为零
var xspeed=0;
function $(id){
return document.getElementById(id);
}
//坦克左移动
function moveLeft(){
xspeed=-5;
}
//坦克右移动
function moveRight(){
xspeed=5;
}
//发射子弹
function shoot(){
//创建一个子弹并附加到body里面
var bullet=document.createElement("div");
bullet.className="bullet";
var tankLeft=$("tank").offsetLeft;
bullet.style.left=tankLeft+31+"px";
document.body.appendChild(bullet);
//设置定时器不停改变子弹的位置,让子弹向上发射
setInterval(function(){
var top=bullet.offsetTop;
bullet.style.top=top-5+"px";
},50);
}
//初始化键盘事件
function initKeyDown(){
document.onkeydown=function(){
switch(event.keyCode){
//按左键,坦克向左移动
case 37:
moveLeft();
break;
//按右键,坦克向右移动
case 39:
moveRight();
break;
//按空格,发射子弹
case 32:
shoot();
break;
}
}
}
//初始化坦克
function initTank(){
//设置定时器,让坦克不停的移动,到两边以后自动改变方向
setInterval(function(){
var left=$("tank").offsetLeft;
//到达右边的边,速度变成负的,向左移动
if(left>document.body.offsetWidth-70){
xspeed=-5;
}
//到达左边的边,速度变成正的,向右移动
else if(left<0){
xspeed=5;
}
var speed=left+xspeed;
$("tank").style.left=speed+"px";
},50);
}
window.onload=function(){
initTank();
initKeyDown();
}
</script>Html:
<body> <div class="tank" id="tank"> </div> </body>

0条评论
点击登录参与评论