أحدث البرامج التعليمية وتطوير الشبكة
 

HTML لعبة التقييم


دفع أزرار لتحريك مربع أحمر:




واليسار



عد والنتيجة

هناك العديد من الطرق للحفاظ على النتيجة في اللعبة، ونحن سوف تظهر لك كيفية كتابة النتيجة على قماش.

تأكد أولا عنصر النتيجة:

مثال

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();
}

بناء الجملة من أجل كتابة النص على عنصر قماش يختلف عن رسم مستطيل. لذلك يجب علينا أن ندعو منشئ مكون باستخدام حجة إضافية، وقال منشئ أن هذا العنصر هو من نوع "text" .

في منشئ مكون نختبر إذا كان العنصر هو من نوع "text" ، واستخدام fillText طريقة بدلا من fillRect الأسلوب:

مثال

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.fillStyle = color;
      ctx.fillText(this.text, this.x, this.y);
    } else {
      ctx.fillStyle = color;
      ctx.fillRect(this.x, this.y, this.width, this.height);
    }
  }
...
}

أخيرا نضيف بعض التعليمات البرمجية في وظيفة updateGameArea أن يكتب النتيجة على قماش. نحن نستخدم frameNo الملكية لحساب النتيجة:

مثال

function updateGameArea() {
    var x, height, gap, minHeight, maxHeight, minGap, maxGap;
    for (i = 0; i < myObstacles.length; i += 1) {
        if (myGamePiece.crashWith(myObstacles[i])) {
            myGameArea.stop();
            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].speedX = -1;
        myObstacles[i].newPos();
        myObstacles[i].update();
    }
    myScore.text="SCORE: " + myGameArea.frameNo;
    myScore.update();
    myGamePiece.newPos();
    myGamePiece.update();
}
انها محاولة لنفسك »