2017-07-06 70 views
-1

我有一個學校項目,我想編程一個遊戲網站,但我從另一個網站複製的遊戲總是在頂部,你能幫我把它拿下來嗎? 我希望遊戲是在快捷欄:) HTML代碼下的網站的中心:我想讓我的遊戲處於最頂端而不是頂部?

<!DOCTYPE html> 
    <html> 
    <head> 
     <title>Games</title> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"/> 
     <link rel="stylesheet" href="css/nav.css"> 
     <style> 
    canvas { 
     border:1px solid #d3d3d3; 
     background-color: #f1f1f1; 
    } 
    </style> 
    </head> 
    <body onload="startGame()"> 
     <div class="nav"> 
      <ul> 
       <li><a href="">Aventure Games</a></li> 
       <li><a href="">1vs1 Games</a></li> 
       <li id="logo"><img src="src/logogif.gif" style="width:300px;"></li> 
       <li><a href="">Other Categories</a></li> 
       <li><a href="">About us</a></li> 
      </ul> 
     </div> 
     <article> 
      <h1>Games</h1> 
      <p>content bla bla</p> 
     </article> 


     <p class="flappybird"> 
     <script> 

    var myGamePiece; 
    var myObstacles = []; 
    var myScore; 

    function startGame() { 
     myGamePiece = new component(30, 30, "red", 10, 120); 
     myGamePiece.gravity = 0.05; 
     myScore = new component("30px", "Consolas", "black", 280, 40, "text"); 
     myGameArea.start(); 
    } 

    var myGameArea = { 
     canvas : document.createElement("canvas"), 
     start : function() { 
      this.canvas.width = 480; 
      this.canvas.height = 270; 
      this.context = this.canvas.getContext("2d"); 
      document.body.insertBefore(this.canvas, document.body.childNodes[0]); 
      this.frameNo = 0; 
      this.interval = setInterval(updateGameArea, 20); 
      }, 
     clear : function() { 
      this.context.clearRect(0, 0, this.canvas.width, this.canvas.height); 
     } 
    } 

    function component(width, height, color, x, y, type) { 
     this.type = type; 
     this.score = 0; 
     this.width = width; 
     this.height = height; 
     this.speedX = 0; 
     this.speedY = 0;  
     this.x = x; 
     this.y = y; 
     this.gravity = 0; 
     this.gravitySpeed = 0; 
     this.update = function() { 
      ctx = myGameArea.context; 
      if (this.type == "text") { 
       ctx.font = this.width + " " + this.height; 
       ctx.fillStyle = color; 
       ctx.fillText(this.text, this.x, this.y); 
      } else { 
       ctx.fillStyle = color; 
       ctx.fillRect(this.x, this.y, this.width, this.height); 
      } 
     } 
     this.newPos = function() { 
      this.gravitySpeed += this.gravity; 
      this.x += this.speedX; 
      this.y += this.speedY + this.gravitySpeed; 
      this.hitBottom(); 
     } 
     this.hitBottom = function() { 
      var rockbottom = myGameArea.canvas.height - this.height; 
      if (this.y > rockbottom) { 
       this.y = rockbottom; 
       this.gravitySpeed = 0; 
      } 
     } 
     this.crashWith = function(otherobj) { 
      var myleft = this.x; 
      var myright = this.x + (this.width); 
      var mytop = this.y; 
      var mybottom = this.y + (this.height); 
      var otherleft = otherobj.x; 
      var otherright = otherobj.x + (otherobj.width); 
      var othertop = otherobj.y; 
      var otherbottom = otherobj.y + (otherobj.height); 
      var crash = true; 
      if ((mybottom < othertop) || (mytop > otherbottom) || (myright < otherleft) || (myleft > otherright)) { 
       crash = false; 
      } 
      return crash; 
     } 
    } 

    function updateGameArea() { 
     var x, height, gap, minHeight, maxHeight, minGap, maxGap; 
     for (i = 0; i < myObstacles.length; i += 1) { 
      if (myGamePiece.crashWith(myObstacles[i])) { 
       return; 
      } 
     } 
     myGameArea.clear(); 
     myGameArea.frameNo += 1; 
     if (myGameArea.frameNo == 1 || everyinterval(150)) { 
      x = myGameArea.canvas.width; 
      minHeight = 20; 
      maxHeight = 200; 
      height = Math.floor(Math.random()*(maxHeight-minHeight+1)+minHeight); 
      minGap = 50; 
      maxGap = 200; 
      gap = Math.floor(Math.random()*(maxGap-minGap+1)+minGap); 
      myObstacles.push(new component(10, height, "green", x, 0)); 
      myObstacles.push(new component(10, x - height - gap, "green", x, height + gap)); 
     } 
     for (i = 0; i < myObstacles.length; i += 1) { 
      myObstacles[i].x += -1; 
      myObstacles[i].update(); 
     } 
     myScore.text="SCORE: " + myGameArea.frameNo; 
     myScore.update(); 
     myGamePiece.newPos(); 
     myGamePiece.update(); 
    } 

    function everyinterval(n) { 
     if ((myGameArea.frameNo/n) % 1 == 0) {return true;} 
     return false; 
    } 

    function accelerate(n) { 
     myGamePiece.gravity = n; 
    } 
    </script> 
    <br> 
    <button onmousedown="accelerate(-0.2)" onmouseup="accelerate(0.05)">ACCELERATE</button> 
    <p>Use the ACCELERATE button to stay in the air</p> 
    <p>How long can you stay alive?</p> 
    </body> 
    </html> 

CSS代碼:

*{ 

     margin: 0px; 
     background-color:darkred; 
    } 
    .nav{ 
     height: 100px; 
    } 

    ul { 
     list-style-type: none; 
     margin: 0; 
     padding: 0; 
     text-align: center; 
     /*padding-left: 30%; 
     padding-right: 30%;*/ 
     /*overflow: hidden;*/ 
     background-color: gray; 
     height:70px; 
    } 

    li { 
     /*float: left;*/ 
     display: inline-block; 
     vertical-align: top; 
     margin: 0 -2px; 

    } 

    li a { 
     display: block; 
     font-family: Verdana, Helvetica, sans-serif; 
     color: white; 
     text-align: center; 
     padding: 14px 16px; 
     text-decoration: none; 
     background-color: darkred; 
    } 
    #logo { 
     /*display: block;*/ 
     font-family: Verdana, Helvetica, sans-serif; 
     background-color: black; 
     text-align: center; 
     padding: 10px; 
     text-decoration: none; 
    } 
    #logo img{ 
     display: block; 
    } 

    li a:hover { 
     background-color: black; 
     color: white; 
    } 

    } 
    p{font-family:Tahoma;} 

    article { 
     padding-left: 12px; 
    } 

回答

0

你一定要確定你想要的正確的地方插入你的新元素,在你的情況下畫布。 在下面的代碼片段中,您告訴畫布放置在文檔主體的第一個子節點之前。

document.body.insertBefore(this.canvas, document.body.childNodes[0]); 

您需要指定一個元素放在它之前,它下面是尋找類名爲flappybird的第一個元素。

document.body.insertBefore(this.canvas, document.getElementsByClassName("flappybird")[0]); 
+0

非常感謝你這幫了我很多 –

相關問題