找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 1045|回复: 1

[【原创】] 网页游戏贪吃蛇兼容火狐版本(发布)

[复制链接]
发表于 2008-10-7 16:25:59 | 显示全部楼层 |阅读模式
  1. <title>贪吃蛇游戏(兼容火狐版本-BY scorusoncer QQ:278619131)</title>
  2. <!--网页特效代码由[url]http://js.jojoo.net[/url]提供!-->
  3. <!--网页特效代码兼容火狐由我完成!2008-9-26-->
  4. <style>
  5. .Food{background-color:red}    /*  事物颜色  */
  6. .Snake{background-color:green}  /*  蛇颜色    */
  7. body{
  8. padding:0;
  9. margin:0px;
  10. }
  11. </style>
  12. <script>
  13. var Rows=20      //  地图行数
  14. var Cells=30    //  地图列数
  15. var Num=15      //  地图小格边长
  16. var BorderWidth=1  //  边框宽度
  17. var SpeedUp=5000  
  18. //创建地图
  19. function CreateMap(){
  20. BW=eval(Cells*Num+2*BorderWidth)  //  地图宽度
  21. BH=eval(Rows*Num+2*BorderWidth)    //  地图高度
  22. document.body.innerHTML=&#39;蛇蛇王座<br>网页游戏“贪食蛇”<br>功能:蛇吃食物有三种情况:走到的地方有食物;走到的地方没有食物;走到的地方是墙壁。吃到食物后,蛇的身体会变长;碰到墙壁后 Game Over,询问是否重新开始。<br>蛇为绿色,事物为红色,按上下左右键,控制方向进行移动。<br><span id="ssss"></span><br><span onclick="window.location.reload()">点此重新开始</span><div id=MainMap style=position:absolute;left:&#39;+(document.body.clientWidth-BW)/2+&#39;;top:&#39;+(document.body.clientHeight-BH)/2+&#39;;width:&#39;+BW+&#39;;height:&#39;+BH+&#39;;border-width:&#39;+BorderWidth+&#39;;border-style:inset;border-color:#0000cc></div>&#39;
  23. Map=new Array()
  24. for(y=0;y<Rows;y++){
  25.   Map[y]=new Array()
  26.   for(x=0;x<Cells;x++){
  27.     Map[y][x]=&#39;0&#39;
  28.     }
  29.   }
  30. Sx=parseInt(Math.random()*Cells)
  31. Sy=parseInt(Math.random()*Rows)
  32. CreateSnake()
  33. CreatFood()
  34. AllDiv=document.getElementById("MainMap").getElementsByTagName(&#39;DIV&#39;)
  35. AllSpan=document.getElementById("MainMap").getElementsByTagName(&#39;SPAN&#39;)
  36. }
  37. var len=0;
  38. //创建食物的位置
  39. function CreatFood(){
  40. Fx=parseInt(Math.random()*Cells)
  41. Fy=parseInt(Math.random()*Rows)
  42. if(Map[Fy][Fx]==&#39;0&#39;){
  43.   MainMap.innerHTML+=&#39;<span style=position:absolute;left:&#39;+Fx*Num+&#39;;top:&#39;+Fy*Num+&#39;;width:&#39;+Num+&#39;;height:&#39;+Num+&#39;;overflow:hidden class=Food>食</span>&#39;
  44.   Map[Fy][Fx]=&#39;F&#39;
  45.   len=len+1;
  46.   document.getElementById("ssss").innerHTML="蛇蛇现在毛重:<span style=&#39;color:green;font-size:40px;&#39;>"+len+" </span>公斤";
  47.   }
  48. else CreatFood()
  49. }
  50. //创建蛇的位置
  51. function CreateSnake(){
  52. //if(Sy==19){alert("最后一次")}
  53. MainMap.innerHTML+=&#39;<div x=&#39;+Sx+&#39; y=&#39;+Sy+&#39; style=position:absolute;left:&#39;+Sx*Num+&#39;;top:&#39;+Sy*Num+&#39;;width:&#39;+Num+&#39;;height:&#39;+Num+&#39;;overflow:hidden class=Snake>蛇</div>&#39;
  54. Map[Sy][Sx]=&#39;S&#39;
  55. }
  56. //主移动--判断蛇头前面的是什么
  57. function Move(){
  58. Sx+=GoX
  59. Sy+=GoY
  60. if(Sy<0||Sy>=Rows){ Move1()}
  61. else{
  62.   SnakeFront=Map[Sy][Sx]
  63.   if(SnakeFront==&#39;0&#39;)Move2()
  64.   else{
  65.     if(SnakeFront==&#39;F&#39;)Move3()
  66.     else Move1()
  67.     }
  68.   }
  69. }
  70. //重新开始
  71. function Move1(){
  72. alert("您的小蛇出生时1公斤,牺牲时"+len+"公斤")
  73. ReStart=confirm("Game Over,重新开始?")
  74. if(ReStart)window.location.reload()
  75. }
  76. var Times=200
  77. //蛇前是空地时
  78. function Move2(){
  79. Map[parseInt(AllDiv[0].getAttribute("y"))][parseInt(AllDiv[0].getAttribute("x"))]=&#39;0&#39;
  80. document.getElementById("MainMap").removeChild(AllDiv[0]);
  81. CreateSnake()
  82. setTimeout(&#39;Move()&#39;,Times)
  83. }
  84. //蛇前面是食物时
  85. function Move3(){
  86. CreateSnake()
  87. document.getElementById("MainMap").removeChild(AllSpan[0]);
  88. CreatFood()
  89. setTimeout(&#39;Move()&#39;,Times)
  90. }
  91. //蛇越行越快
  92. function oTimes(){
  93. Times-=5
  94. if(Times>5)setTimeout(&#39;oTimes()&#39;,SpeedUp)//setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
  95. }
  96. document.onkeydown=KeyDown
  97. //方向
  98. function KeyDown(evt){
  99.   evt=evt|| window.event;
  100.   Key=evt.keyCode
  101.   switch(Key){
  102.       case 37:Dir(-1,0);break//左
  103.       case 39:Dir(1,0);break//右
  104.       case 38:Dir(0,-1);break//上
  105.       case 40:Dir(0,1);break//下
  106.     }
  107.   return false
  108. }
  109. var Star=0
  110. function Dir(x,y){
  111. GoX=x
  112. GoY=y
  113. if(Star==0){
  114.   oTimes()
  115.   Star=1
  116.   Move()
  117.   }
  118. }
  119. //开始时运行
  120. onload=CreateMap
  121. </script>
复制代码
回复

使用道具 举报

发表于 2008-10-7 16:37:04 | 显示全部楼层
可以用,不错。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-5-21 04:50 , Processed in 0.281326 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表