تصاویر بازی

ਬਟਨ ਨੂੰ ਦਬਾਉਣ ਨਾਲ ਸਮੈਲੀ ਚਲਾਉਣਾ ਹੈ:






ਕਿਵੇਂ ਚਿੱਤਰ ਦਾ ਇਸਤੇਮਾਲ ਕਰਨਾ ਹੈ?

ਚਿੱਤਰ ਨੂੰ ਕੈਂਵਾਸ ਉੱਤੇ ਜੋੜਨ ਲਈ.getContext("2d") ਆਬਜੈਕਟ ਦੀ ਬਾਹਰੀ ਚਿੱਤਰ ਅਤੇ ਮੈਥਡ ਦੀ ਵਰਤੋਂ ਕਰੋ。

ਸਾਡੇ ਗੇਮ ਵਿੱਚ ਜੇਕਰ ਤੁਸੀਂ ਗੇਮ ਕੰਪੋਨੈਂਟ ਨੂੰ ਚਿੱਤਰ ਵਜੋਂ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਕੰਪੋਨੈਂਟ ਕੰਸਟਰਕਟਰ ਦੀ ਵਰਤੋਂ ਕਰੋ, ਪਰ ਤੁਸੀਂ ਚਿੱਤਰ ਦੀ url ਨੂੰ ਨਹੀਂ ਸੰਦਰਭਿਤ ਕਰੋ, ਬਲਕਿ ਰੰਗ ਨੂੰ ਸੰਦਰਭਿਤ ਕਰੋ। ਅਤੇ ਤੁਸੀਂ ਕੰਪੋਨੈਂਟ ਦੇ ਟਾਈਪ ਨੂੰ "image" ਦੱਸਣਾ ਚਾਹੀਦਾ ਹੈ:

ਪ੍ਰਤੀਰੂਪ

function startGame() {
  myGamePiece = new component(30, 30, "smiley.gif", 10, 120, "image");
  myGameArea.start();
}

ਕੰਪੋਨੈਂਟ ਬਣਾਉਣ ਵਾਲੇ ਫੰਕਸ਼ਨ ਵਿੱਚ ਅਸੀਂ ਕੰਪੋਨੈਂਟ ਨੂੰ "image" ਟਾਈਪ ਹੈ ਕਿ ਨਹੀਂ ਜਾਂਚ ਕਰਦੇ ਅਤੇ ਬਾਈਟ ਦੀ ਬਣਾਉਣ ਵਾਲੀ ਫੰਕਸ਼ਨ "new Image()" ਦੇ ਸਹਾਇਤਾ ਨਾਲ ਇੱਕ ਚਿੱਤਰ ਆਬਜੈਕਟ ਬਣਾਉਂਦੇ ਹਾਂ। ਜਦੋਂ ਅਸੀਂ ਚਿੱਤਰ ਦਿਖਾਉਣ ਦੀ ਤਿਆਰੀ ਕਰ ਰਹੇ ਹਾਂ ਤਾਂ ਅਸੀਂ drawImage ਮੈਥਡ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ ਨਾ ਕਿ fillRect ਮੈਥਡ:

ਪ੍ਰਤੀਰੂਪ

function component(width, height, color, x, y, type) {
  ਇਹ.type = type;
  if (type == "image") {}}
    ਇਹ.image.src = ਰੰਗ;
    ਇਹ.width = width;
  }
  ਇਹ.height = height;
  ਇਹ.speedX = 0;
  ਇਹ.speedY = 0;
  ਇਹ.x = x;
  ਇਹ.y = y;
  ਇਹ.update = function() {
  ctx = myGameArea.context;
    if (ਟਾਈਪ == "image" || ਟਾਈਪ == "background") {
    if (type == "image") {}}
      ctx.drawImage(this.image,
        this.x,
        this.y,
        this.width, this.height);
    } else {
      ctx.fillStyle = ਰੰਗ;
      ctx.fillRect(ਇਹ.x, ਇਹ.y, ਇਹ.width, ਇਹ.height);
    }
  }
}

به طور شخصی امتحان کنید

更改图像

您可以随时通过更改组件的 image 对象的 src 属性来更改图像。

如果您想在每次移动时更改笑脸,请在用户单击按钮时更改图像源,并在未单击按钮时恢复正常:

ਪ੍ਰਤੀਰੂਪ

function move(dir) {
  myGamePiece.image.src = "angry.gif";
  if (dir == "up") {myGamePiece.speedY = -1; }
  if (dir == "down") {myGamePiece.speedY = 1; }
  if (dir == "left") {myGamePiece.speedX = -1; }
  if (dir == "right") {myGamePiece.speedX = 1; }
}
function clearmove() {
  myGamePiece.image.src = "smiley.gif";
  myGamePiece.speedX = 0;
  myGamePiece.speedY = 0;
}

به طور شخصی امتحان کنید

背景图片

通过将背景图像添加为组件,可将其添加到游戏区域,并在每个帧中更新背景:

ਪ੍ਰਤੀਰੂਪ

var myGamePiece;
var myBackground;
function startGame() {
  myGamePiece = new component(30, 30, "smiley.gif", 10, 120, "image");
  myBackground = new component(656, 270, "citymarket.jpg", 0, 0, "image");
  myGameArea.start();
}
function updateGameArea() {
  myGameArea.clear();
  myBackground.newPos();
  myBackground.update();
  myGamePiece.newPos();
  myGamePiece.update();
}

به طور شخصی امتحان کنید

移动背景

更改背景组件的 speedX 属性可使背景移动:

ਪ੍ਰਤੀਰੂਪ

function updateGameArea() {
  myGameArea.clear();
  myBackground.speedX = -1;
  myBackground.newPos();
  myBackground.update();
  myGamePiece.newPos();
  myGamePiece.update();
}

به طور شخصی امتحان کنید

ਪ੃਷ਠ ਚੱਕਰਵਾਤੀ

ਇਸ ਇੱਕ ਜਿਹੇ ਪ੃਷ਠ ਨੂੰ ਹਮੇਸ਼ਾ ਚੱਕਰਵਾਤੀ ਕਰਨ ਲਈ, ਅਸੀਂ ਵਿਸ਼ੇਸ਼ ਤਕਨੀਕ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਪੈਂਦੀ ਹੈ。

ਪਹਿਲਾਂ ਕੰਪੋਨੈਂਟ ਦੇ ਨਿਰਮਾਣ ਮੱਥਾ ਨੂੰ ਇਹ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਕਿ ਇਹ ਪ੃਷ਠ ਹੈ। ਤਦ, ਕੰਪੋਨੈਂਟ ਦੇ ਨਿਰਮਾਣ ਮੱਥਾ ਦੋ ਵਾਰ ਇਮੇਜ ਨੂੰ ਜੋੜੇਗਾ, ਦੂਜੀ ਇਮੇਜ ਨੂੰ ਤੁਰੰਤ ਪਹਿਲੀ ਇਮੇਜ ਦੇ ਬਾਅਦ ਰਖਣਗੇ。

ਵਿੱਚ newPos() ਮੱਥਾ ਵਿੱਚ, ਕੰਪੋਨੈਂਟ ਦੇ x ਸਥਾਨ ਨੂੰ ਚੈਕ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਕਿ ਕੀ ਉਹ ਇਮੇਜ ਦੇ ਅੰਤ ਤੱਕ ਪਹੁੰਚ ਗਿਆ ਹੈ, ਜੇਕਰ ਹੋਇਆ ਤਾਂ ਕੰਪੋਨੈਂਟ ਦੇ x ਸਥਾਨ ਸੈਟ ਕੀਤਾ ਗਿਆ 0:

ਪ੍ਰਤੀਰੂਪ

function component(width, height, color, x, y, type) {
  ਇਹ.type = type;
  if (ਟਾਈਪ == "image" || ਟਾਈਪ == "background"}) {
    ਇਹ.image.src = ਰੰਗ;
    ਇਹ.width = width;
  }
  ਇਹ.height = height;
  ਇਹ.speedX = 0;
  ਇਹ.speedY = 0;
  ਇਹ.x = x;
  ਇਹ.y = y;
  ਇਹ.update = function() {
  ctx = myGameArea.context;
    if (ਟਾਈਪ == "image" || ਟਾਈਪ == "background") {
    ctx.drawImage(ਇਹ.image, ਇਹ.x, ਇਹ.y, ਇਹ.width, ਇਹ.height);
      if (ਟਾਈਪ == "background") {
      ctx.drawImage(ਇਹ.image, ਇਹ.x + ਇਹ.width, ਇਹ.y, ਇਹ.width, ਇਹ.height);
        else {
      }
    }
      ctx.fillStyle = ਰੰਗ;
      ctx.fillRect(ਇਹ.x, ਇਹ.y, ਇਹ.width, ਇਹ.height);
    }
  }
  ਇਹ.newPos = function() {
    ਇਹ.x += ਇਹ.speedX;
    ਇਹ.y += ਇਹ.speedY;
    if (ਇਹ ਇੱਕ ਪ੃਷ਠ ਹੈ) {
      if (this.x == -(this.width)) {
        this.x = 0;
      }
    }
  }
}

به طور شخصی امتحان کنید