Spel poäng
- Föregående sida Spel hinder
- Nästa sida Spel bild
Tryck på knappen för att flytta den röda kuben:
Poäng
Det finns många sätt att registrera poäng i spelet, vi kommer att visa hur du skriver ut poängen på canvas.
Först skapa en poängkomponent:
var myGamePiece; var myObstacles = []; var myScore; function startGame() { myGamePiece = new component(30, 30, "red", 10, 160); myScore = new component("30px", "Consolas", "black", 280, 40, "text"); myGameArea.start(); }
Sättet att skriva ut text på canvas-elementet är annorlunda än att ritas en rektangel. Därför måste vi använda en extra parameter för att anropa komponentens konstruktör och tala om för konstruktören att komponentens typ är "text".
I komponentens konstruktör testar vi om komponenten är "text"
Typ, och använd fillText
Metod istället för fillRect
Metod:
function component(width, height, color, x, y, type) { this.type = type; this.width = width; this.height = height; this.speedX = 0; this.speedY = 0; this.x = x; this.y = y; this.update = function() { ctx = myGameArea.context; if (this.type == "text") { ctx.font = this.width + " " + this.height; ctx.fyllfärg = färg; ctx.fillText(this.text, this.x, this.y); } annars {}}} ctx.fyllfärg = färg; ctx.fillRect(this.x, this.y, this.bredd, this.höjd); } } ... }
Till slut lägger vi till något kod i updateGameArea-funktionen för att skriva poängen på canvas. Vi använder frameNo
egenskaper för att beräkna poäng:
function uppdateraSpelområde() { var x, höjd, avstånd, minHöjd, maxHöjd, minAvstånd, maxAvstånd; för (i = 0; i < myObstacles.length; i += 1) { om (myGamePiece.kolliderarMed(myObstacles[i])) { myGameArea.stoppa(); return; } } myGameArea.töm(); myGameArea.frameNo += 1; om (myGameArea.frameNo == 1 || varjeIntervall(150)) { x = myGameArea.canvas.bredd; minHöjd = 20; maxHöjd = 200; höjd = Math.floor(Math.random()*(maxHöjd-minHöjd+1)+minHöjd); minAvstånd = 50; maxAvstånd = 200; avstånd = Math.floor(Math.random()*(maxAvstånd-minAvstånd+1)+minAvstånd); myObstacles.push(new component(10, höjd, "grön", x, 0)); myObstacles.push(new component(10, x - höjd - avstånd, "grön", x, höjd + avstånd)); } för (i = 0; i < myObstacles.length; i += 1) { myObstacles[i].hastighetX = -1; myObstacles[i].nyPosition(); myObstacles[i].uppdatera(); } myScore.text = "POÄNG: " + myGameArea.frameNo; myScore.update(); myGamePiece.newPos(); myGamePiece.update(); }
- Föregående sida Spel hinder
- Nästa sida Spel bild