用键盘控制div

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>file</title>
<script src="../js/jQuery1.10.2.js"></script>
<script src="../js/file.js"></script>

<link rel="stylesheet" href="../css/file.css" />

<script>
	
</script>
</head>
<body>
	
	<div id=a></div>
	<div id=b></div>
</body>
</html>

 

var KEY = {
	UP : 38,
	DOWN : 40,
	LEFT : 37,
	RIGHT : 39,
	W : 87,
	S : 83,
	A : 65,
	D : 68
};

var plane = {};
plane.pressedKeys = [];
plane.deg = 0;

$(function() {
	// 设置interval用于每30毫秒调用一次gameloop
	plane.timer = setInterval(gameloop, 20);

	// 标记下pressedKeys数组里某键的状态是按下还是放开
	$(document).keydown(function(e) {
		plane.pressedKeys[e.which] = true;
	});
	$(document).keyup(function(e) {
		plane.pressedKeys[e.which] = false;
	});
});
function gameloop() {
	move();
}

function move() {
	// 方向

	if (plane.pressedKeys[KEY.LEFT]) {

		plane.deg-=2;
		document.getElementById("a").style.transform = "rotate(" + plane.deg
				+ "deg)";

	}
	if (plane.pressedKeys[KEY.RIGHT]) {
		plane.deg+=2;
		document.getElementById("a").style.transform = "rotate(" + plane.deg
				+ "deg)";
	}

	// movement
	if (plane.pressedKeys[KEY.W]) {
		var top = parseInt($("#a").css("top"));
		$("#a").css("top", top - 3);
	}
	if (plane.pressedKeys[KEY.S]) {
		var top = parseInt($("#a").css("top"));
		$("#a").css("top", top + 3);
	}
	if (plane.pressedKeys[KEY.A]) {
		var left = parseInt($("#a").css("left"));
		$("#a").css("left", left - 3);
	}
	if (plane.pressedKeys[KEY.D]) {
		var left = parseInt($("#a").css("left"));
		$("#a").css("left", left + 3);
	}
}

 

div#a {
	position: absolute;
	left: 100px;
	top: 400px;
	width: 30px;
	height: 100px;
	background-color: #115599;
	/*transform: rotate(90deg);
	-ms-transform:rotate(90deg); /* IE 9 */
	z-index: 100;

}

div#b {
	position: absolute;
	left: 100px;
	top: 300px;
	width: 50px;
	height: 50px;
	background-color: #669911;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值