首页 > 语言 > JavaScript > 正文

javascript编写贪吃蛇游戏

2024-05-06 16:22:50
字体:
来源:转载
供稿:网友

这篇文章主要介绍了javascript编写贪吃蛇游戏的代码,非常简单,也很好玩,有需要的童鞋们可以参考下。

代码很简单,这里就不多BB了,小伙伴们直接看示例吧

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  2. <html xmlns="http://www.w3.org/1999/xhtml"
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html;charset=gb2312" /> 
  5. <title>无标题文档</title> 
  6. </head> 
  7. <body> 
  8. <style> 
  9. *{ 
  10. margin:0; 
  11. padding:0; 
  12. #wrap{ 
  13. position:relative;width:400px;height:400px; 
  14. border:1px solid #ccc; 
  15. margin:10px auto; 
  16. .snak, .snakBody{ 
  17. position:absolute; 
  18. width:10px;height:10px; 
  19. background:#666; 
  20. .food{ 
  21. position:absolute;width:10px;height:10px; 
  22. background:#09F;display:block; 
  23. </style> 
  24. <div id="wrap"
  25.  
  26. </div> 
  27. <script src="http://ftp152341.host180.web522.com/%E6%89%93%E8%9C%9C%E8%9C%82/zepto.js"></script> 
  28. <script> 
  29. var Snak, Food;; 
  30.  
  31. Food = function(op){ //op为zepto对象 
  32. var food = $('<span class="food"></span>'); 
  33. food.css({ left : Math.floor(((op[0].clientWidth-10)*Math.random())), top : Math.floor(((op[0].clientHeight-10)*Math.random())) }) 
  34. op.append( food ); 
  35. }; 
  36. Snak = function(op){ 
  37. this.obj = document.createElement('div'); 
  38. this.obj.className = 'snak'
  39. this.op = op; 
  40. }; 
  41. Snak.prototype.ev = function(){ 
  42. var _this = this, code; 
  43. $(window).bind('keydown',function(e){ 
  44. clearInterval(_this.downTimer); 
  45. code = e.keyCode; 
  46. _this.downTimer = setInterval(function(){ 
  47. var l = _this.obj.offsetLeft, t = _this.obj.offsetTop; 
  48. switch( code ){ 
  49. case 37 : 
  50. l = l - 5; 
  51. break
  52. case 38 :  
  53. t = t - 5; 
  54. break
  55. case 39 :  
  56. l = l + 5; 
  57. break
  58. case 40: 
  59. t = t + 5; 
  60. break
  61. }; 
  62. if( (l<0) || (t<0) || (l>400) || (t>400)){location.reload()}; 
  63. _this.obj.style.left = l + 'px'
  64. _this.obj.style.top = t + 'px'
  65. var snakB = $('.snakBody'); 
  66. for(var i=snakB.length-1; i>=0; i--){ 
  67. if(i == 0){ 
  68. snakB[0].style.left = l + 'px'
  69. snakB[0].style.top = t + 'px'
  70. }else
  71. snakB[i].style.left = snakB[i-1].offsetLeft + 'px'
  72. snakB[i].style.top = snakB[i-1].offsetTop + 'px'
  73. }; 
  74. }; 
  75. if( pz(_this.obj,$('.food')[0]) ){ 
  76. $('.food').remove(); 
  77. new Food(wrap); 
  78. $('<div class="snakBody"></div>').appendTo(wrap) 
  79. }; 
  80. },30); 
  81. }).bind('keyup',function(e){ 
  82. }); 
  83. }; 
  84. function pz(obj1,obj2){  
  85. var L1 = obj1.offsetLeft; 
  86. var T1 = obj1.offsetTop; 
  87. var R1 = L1 + obj1.offsetWidth; 
  88. var B1 = T1 + obj1.offsetHeight; 
  89.  
  90. var L2 = obj2.offsetLeft; 
  91. var T2 = obj2.offsetTop; 
  92. var R2 = L2 + obj2.offsetWidth; 
  93. var B2 = T2 + obj2.offsetHeight; 
  94. if(L1 >= R2 || T1 >= B2 || R1 <= L2 || B1 <= T2){ 
  95. return false
  96. return true
  97. }; 
  98. var wrap = $('#wrap'),snak = new Snak(food); 
  99. var food = new Food( wrap ); 
  100. snak.ev(); 
  101. wrap.append( $('<div class="snakBody"></div>') )[0].appendChild( snak.obj ); 
  102. </script> 
  103. </body> 
  104. </html> 

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选