이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 17480|회답: 8

[JavaScript] 자바스크립트가 만든 작은 게임

[링크 복사]
게시됨 2014. 11. 7. 오후 10:58:39 | | | |
진술: 기술은 좀 쓰레기야, 신이 나를 해킹하지 않고, 버튼 처리도 하지 않았고, 걸어둘 때만 페이지를 새로고침할 수 있어
       코드는 다음과 같습니다: 첨부파일을 직접 다운로드할 수도 있습니다
  1. <html>
  2. <head>
  3.     <title></title>
  4.     <script type ="text/javascript">

  5.         //***********封装一个Tank类***
  6.         //当创建一个实例时在页面生成一个Tank
  7.         function Tank(x, y) {
  8.             this.x = x;
  9.             this.y = y;
  10.             this.shape = "~^~";
  11.             //****创建div到页面****
  12.             this.div = document.createElement("div");
  13.             this.div.style.position = "absolute";
  14.             this.div.style.width = "40px";
  15.             this.div.style.height = "40px";
  16.             this.div.style.lineHeight = "20px";
  17.             this.div.style.textAlign = "center";
  18.             this.div.style.backgroundColor = "red";
  19.             this.div.style.left = this.x + "px";
  20.             this.div.style.top = this.y + "px";
  21.             this.div.innerHTML = this.shape;
  22.             document.body.appendChild(this.div);
  23.             //*************************
  24.             this.move = function (left, top) {
  25.                 var h = window.innerHeight || document.documentElement.clientHeight;  // 浏览器内容窗口的高
  26.                 var w = document.documentElement.clientWidth;  // 宽
  27.                 this.x += left;
  28.                 this.y += top;
  29.                 if (this.x + 40 > w) {
  30.                     this.x = w - 40;
  31.                 }
  32.                 if (this.x < 0) {
  33.                     this.x = 0;
  34.                 }
  35.                 if (this.y + 40 > h) {
  36.                     this.y = h - 40;
  37.                 }
  38.                 if (this.y < 0) {
  39.                     this.y = 0;
  40.                 }
  41.                 this.div.style.left = this.x + "px";
  42.                 this.div.style.top = this.y + "px";
  43.             };
  44.             //消失的方法
  45.             this.die = function () {
  46.                 document.body.removeChild(this.div);
  47.             };
  48.         }

  49.         //****************创建*****
  50.         var arr = new Array();
  51.         var i = 0;
  52.         function createTank() {
  53.             var x = document.getElementById("xp").value;
  54.             var y = document.getElementById("yp").value;
  55.             arr[i] = new Tank(parseInt(x), parseInt(y));
  56.             startMove(i);   
  57.             i++;
  58.         }

  59.         var siArr = new Array();//记录下所有回调
  60.         function startMove(num) {
  61.                 //速度与方向**************************
  62.                 var xLen = Math.random() * 20;
  63.                 xLen = parseInt(xLen);  //5
  64.                 var yLen = Math.random() * 20;
  65.                 yLen = parseInt(yLen);  //5
  66.                 //************************
  67.                 siArr[num] = setInterval(function () {
  68.                     arr[num].move(xLen, yLen);
  69.                     if (mouseX >= arr[num].x && mouseX <= arr[num].x + 40 &&
  70.                         mouseY >= arr[num].y && mouseY <= arr[num].y + 40
  71.                     ) {

  72.                         for (var j = 0; j < siArr.length; j++) {
  73.                             clearInterval(siArr[j]);
  74.                         }
  75.                         clearInterval(si);
  76.                         alert("game over!");

  77.                     }

  78.                     var h = window.innerHeight || document.documentElement.clientHeight;  // 浏览器内容窗口的高
  79.                     var w = document.documentElement.clientWidth;  // 宽
  80.                     if (arr[num].x >= w - 40) {
  81.                         xLen = Math.abs(xLen) * (-1);
  82.                     }
  83.                     if (arr[num].x <= 0) {
  84.                         xLen = Math.abs(xLen);
  85.                     }
  86.                     if (arr[num].y >= h - 40) {
  87.                         yLen = Math.abs(yLen) * (-1);
  88.                     }
  89.                     if (arr[num].y <= 0) {
  90.                         yLen = Math.abs(yLen);
  91.                     }
  92.                 }, 10);
  93.         }


  94.         var mouseX = 0;
  95.         var mouseY = 0;
  96.         document.onmousemove = function (e) {
  97.             var ev = e || event;
  98.             mouseX =parseInt( ev.clientX);
  99.             mouseY =parseInt( ev.clientY);
  100.             document.title = "x:" + mouseX + " y:" + mouseY;
  101.         }

  102.         //*********************开始游戏
  103.         var si = null;
  104.         function startGame(v) {
  105.             i = 0;
  106.             v.disabled = true;
  107.             var time = 0;
  108.             si = setInterval(function () {
  109.                 time++;
  110.                 v.value = "时间:" + time + "秒";
  111.             }, 1000);
  112.             var n=document.getElementById("lev").value;
  113.             n=parseInt(n);
  114.             for ( ; i < n; i++) {
  115.                 arr[i] = new Tank(200, 200);
  116.                 startMove(i);
  117.             }
  118.         }
  119.     </script>
  120. </head>
  121. <body >
  122. <center>
  123. <br />看你能玩多久!!
  124. 难度:<input  type ="text" value ="10" id="lev" />
  125. <input type ="button" value="开始" onclick="startGame(this)" />
코드 복사




Tank.zip

1.48 KB, 다운로드 시간: 13, 다운로드 크레딧: -1 명성, -1 기여





이전의:C# 호출 RunDll32.exe 브라우저 캐시와 잡동사니를 정리합니다
다음:썬더 멤버 몇 명 보내!
게시됨 2014. 11. 7. 오후 11:17:26 |
저는 여전히 첨부파일을 다운로드하고 잊어버리는데, 게임이 꽤 어렵습니다. 난이도를 1로 조정하는 걸 추천합니다  
 집주인| 게시됨 2014. 11. 7. 오후 11:20:14 |
관리자가 2014-11-7 23:17에 게시됨
저는 여전히 첨부파일을 다운로드하고 잊어버리는데, 게임이 꽤 어렵습니다. 난이도를 1로 조정하는 걸 추천합니다

소스 코드를 변경하고 시간을 조정하세요
게시됨 2014. 11. 13. 오후 8:09:28 |


내가 거기에 마우스를 넣은 것 같아?
게시됨 2014. 11. 13. 오후 9:15:56 |
무슨 게임? Gameover를 처음부터 플레이하는 방법
 집주인| 게시됨 2014. 11. 14. 오후 10:21:24 |
베이청 직조 온도 22도, 2014-11-13 21:15에 게시됨
무슨 게임? Gameover를 처음부터 플레이하는 방법

마우스는 움직이는 탱크에 맞지 않아 맞으면 바로 매달려 있습니다
 집주인| 게시됨 2014. 11. 14. 오후 10:22:10 |
관리자가 2014-11-13 20:09에 게시됨
내가 거기에 마우스를 넣은 것 같아?

정말 강렬한 표정이네요
게시됨 2014. 11. 14. 오후 10:22:51 |

사실 검열 요소를 사용했습니다
 집주인| 게시됨 2014. 11. 14. 오후 10:23:50 |
관리자가 2014-11-14 22:22에 게시됨
사실 검열 요소를 사용했습니다

다목적 F12  
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com