<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body, html{ padding:0; margin:0; font-size:12px; }
</style>
<script type="text/javascript" src="add-on.js"></script>
<script type="text/javascript" src="util.js"></script>
<script type="text/javascript" src="defines.js"></script>
<script type="text/javascript" src="ShapeManipulation.js"></script>
<script type="text/javascript" src="Timer.js"></script>
<script type="text/javascript" src="Vector2D.js"></script>
<script type="text/javascript" src="C2DMatrix.js"></script>
<script type="text/javascript" src="Lander.js"></script>
<script type="text/javascript" src="Controller.js"></script>
<script type="text/javascript" src="raphael.js"></script>
<!-- <script type="text/javascript" src="jsDraw2D.js"></script> --><!-- 画图 -->
<script type="text/javascript">
var font_attr = {
"font-size":"12px",
//"font-weight":"bold",
fill:"white"
};
var running = true;
var controller;
var timer;
var graphics;
window.onload = function(){
//var graphics = new jsGraphics(document.getElementById("canvas"));
graphics = Raphael("canvas", WINDOW_WIDTH, WINDOW_HEIGHT);
//创建控制器
controller = Controller.instance(WINDOW_WIDTH, WINDOW_HEIGHT);
//时间
timer = Timer.instance(FRAMES_PER_SECOND);
timer.start();
/* ---------------- 监听键盘事件,更新键盘按键状态 --------------------------- */
util.addKeyEventListener("keydown", function(e){
var keycode;
if(window.event){
keycode = window.event.keyCode;
}else if(e){
keycode = e.which;
}
switch(keycode){
case VK_SPACE:
VK_SPACE_DOWN = true;
break;
case VK_LEFT:
VK_LEFT_DOWN = true;
break;
case VK_RIGHT:
VK_RIGHT_DOWN = true;
break;
case VK_R:
VK_R_DOWN = true;
break;
}
});
util.addKeyEventListener("keyup", function(e){
var keycode;
if(window.event){
keycode = window.event.keyCode;
}else if(e){
keycode = e.which;
}
switch(keycode){
case VK_SPACE:
VK_SPACE_DOWN = false;
break;
case VK_LEFT:
VK_LEFT_DOWN = false;
break;
case VK_RIGHT:
VK_RIGHT_DOWN = false;
break;
case VK_R:
VK_R_DOWN = false;
controller.newRun(); //重新运行游戏
break;
case VK_PAUSE: //暂停游戏
if(running){
clearTimeout(mainLoop);
running = false;
}else{
mainLoop = setTimeout(mainLoop_fun, 0);
running = true;
}
break;
}
});
/* --------------------------------更新键盘状态------------------------------------------- */
//主循环
var mainLoop_fun = function(){
if(timer.readyForNextFrame()){
graphics.clear();
graphics.rect(0, 0, 400, 400).attr({fill:"black", stroke:"red"});
controller.update(timer.timeElapsed);
//检查飞船速度(毕达哥拉斯定理/勾股定理)
var speed = Math.sqrt(controller.userLander.velocity.x*controller.userLander.velocity.x)
+(controller.userLander.velocity.y*controller.userLander.velocity.y);
graphics.text(40, 20, "速度:" + Math.round(speed*100)/100).attr(font_attr);
graphics.text(40, 40, "角度" + Math.round(controller.userLander.rotation*100)/100).attr(font_attr);
graphics.text(40, 60, timer.timeElapsed).attr(font_attr);
controller.render(graphics);
}
mainLoop = setTimeout(mainLoop_fun, 0);
}
mainLoop = setTimeout(mainLoop_fun, 0);
}
</script>
<title>登月</title>
</head>
<body>
<div id="canvas"></div>
</body>
</html>