JS+HTML5 游戏模板
  TEZNKK3IfmPf 2024年03月29日 13 0
js

game.html :

<html >
<head>
<title></title>
<script src="game.js"></script>
</head>

<canvas id="cvsPnl" width = 800 height = 500 ></canvas>

<div id="debug" ></div>
<body>
<script type="text/javascript">


var canvas = document.getElementById("cvsPnl");
var context = canvas.getContext("2d");

全局游戏控制器
var gameMaster;
var debuger;
     window.οnlοad=function(){
     gameMaster = new GameMaster(context);
     gameMaster.GameStart();
     }

键盘事件handler
     document.onkeydown = function (){
      var key = document.all ? event.keyCode : arguments[0].keyCode;
      
      left
      if(key == 37){
     
      }
      up
      else if(key == 38){
    
      }
      right
      else if(key == 39){
     
      }
      
      //down
      else if(key == 40){
     
      }
     }
连续按键时使用
     document.onkeyup = function(){
     var key = document.all ? event.keyCode : arguments[0].keyCode;
     
      if(key == 37 || key == 38 || key == 39 ||key == 40){
     isKeyBoardMoving = false;
      }
     }
鼠标事件
     document.οnclick=function(e){
     如果是左键
     if (e.button == 0){

    // clickX = Math.round(e.clientX/10) * 10;
    // clickY = Math.round(e.clientY/10) * 10;

     }
     
     }

</script>
</body>
</html>

game.js:

document.write("<script language='javascript' src='config.js'></script>");
document.write("<script language='javascript' src='utility.js'></script>");
document.write("<script language='javascript' src='global.js'></script>");
document.write("<script language='javascript' src='debug.js'></script>");

游戏入口

var debuger;
function GameMaster(context){
this.context = context;
debuger = new Debuger("debug");
}

GameMaster.prototype = {

GameStart : function(){
this.InitGame();
this.RunGame(this);
},

InitGame : function(){

},

RunGame : function(gameMaster){
if(timer){
clearInterval(timer);
}

timer = setInterval(function(){
if(gameMaster.IsGameOver()){
    alert("game over!");
clearInterval(timer);
return;
}

debuger.DebugTxt(GetCurrentDateTime());
gameMaster.Repaint();

},sleepTime);
},
    
IsGameOver : function(){
return false;
},

重绘
Repaint : function(){

}

}
config.js:

/*
全局系统配置
*/

var timer;
var sleepTime = 1000;

utility.js:

/*
全局函数工具类
*/

返回客户端对象
function $(clientId){
return document.getElementById(clientId);
}

获得SELECT选中项
function GetSelectObj(clientId){
var obj = $(clientId);

var index = obj.selectedIndex; // 选中索引
return obj.options[index];
}

生产随机数
function GetRandom(n){return Math.floor(Math.random()*n+1)}

存储键值对
function addKV(k,v){
localStorage.setItem(k,v);

}

取得键值对的值
function getV(k){
return localStorage.getItem(k);
}

获得本地存储的所有值并转化为字符串
function getAllValueToStr(){
var content = "";
 for(var i=0;i<localStorage.length;i++){
  //key(i)获得相应的键,再用getItem()方法获得对应的值
   content += localStorage.key(i)+ " : " + localStorage.getItem(localStorage.key(i)) + "<br />";
}
return content;
}

显示当前时间
function GetCurrentDateTime(){
    var time ;
    with(new Date()){
        time =toLocaleString() + '星期' + '日一二三四五六'.charAt(getDay());
    }
    return time;
    }

 

global.js

debug.js:

function Debuger(clientId){
this.clientId = clientId;
}

Debuger.prototype = {

DebugTxt : function(value){

$(this.clientId).innerHTML = value;
}

}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年03月29日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年03月29日   48   0   0 标签js
  TEZNKK3IfmPf   2024年03月29日   14   0   0 js
  TEZNKK3IfmPf   2023年11月15日   20   0   0 ajaxjs
  TEZNKK3IfmPf   2023年11月15日   127   0   0 cssjshtml5
  TEZNKK3IfmPf   2023年11月15日   21   0   0 javajavascriptjs
  TEZNKK3IfmPf   2023年11月15日   38   0   0 htmljavajs
  TEZNKK3IfmPf   2023年11月15日   17   0   0 csshtmljs
  TEZNKK3IfmPf   2023年11月15日   46   0   0 jQueryjs
  TEZNKK3IfmPf   2023年11月15日   18   0   0 csshtmljs
  TEZNKK3IfmPf   2023年11月15日   13   0   0 htmlvuejs
TEZNKK3IfmPf