国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript編寫貪吃蛇游戲

2024-05-06 16:22:50
字體:
來源:轉載
供稿:網(wǎng)友

這篇文章主要介紹了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> 

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 崇阳县| 巩义市| 安国市| 元朗区| 新邵县| 武山县| 安国市| 重庆市| 古交市| 华坪县| 屏南县| 香河县| 会宁县| 清河县| 龙泉市| 历史| 九江县| 大城县| 鄂温| 北票市| 宁都县| 苏尼特右旗| 通道| 营山县| 连州市| 汨罗市| 上饶县| 白玉县| 呼玛县| 永康市| 西乡县| 祁连县| 韶关市| 仙居县| 平安县| 丹阳市| 正蓝旗| 华阴市| 东阳市| 祁东县| 洪雅县|