tutoriais mais recente desenvolvimento web
 

Imagens do jogo HTML


Apertar os botões para mover o emoticon:








Como usar Imagens?

Para adicionar imagens em uma tela, o getContext("2d") objeto foi construído com propriedades e métodos de imagem.

No nosso jogo, para criar o gamepiece como uma imagem, use o construtor de componente, mas em vez de se referir a uma cor, você deve referir-se a URL da imagem. E você deve dizer ao construtor que este componente é do tipo "image" :

Exemplo

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

No construtor componente testamos se o componente é do tipo "image" , e criar um objeto de imagem usando o built-in "nova Image() " construtor do objeto. Quando estamos prontos para desenhar a imagem, usamos o método drawImage em vez do método fillRect:

Exemplo

function component(width, height, color, x, y, type) {
  this.type = type;
  if (type == "image") {
    this.image = new Image();
    this.image.src = color;
  }
  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 (type == "image") {
      ctx.drawImage(this.image,
        this.x,
        this.y,
        this.width, this.height);
    } else {
      ctx.fillStyle = color;
      ctx.fillRect(this.x, this.y, this.width, this.height);
    }
  }
}
Tente você mesmo "

mudança de Imagens

Você pode mudar a imagem sempre que você gosta, alterando o src propriedade da image objeto do seu componente.

Se você quiser mudar a cada vez que ele se move do smiley, mudar a fonte de imagem quando o usuário clica em um botão, e de volta ao normal quando o botão não for clicado:

Exemplo

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;
}
Tente você mesmo "

Imagens de fundo

Adicionar uma imagem de fundo para sua área de jogo, adicionando-o como um componente, e também atualizar o fundo em cada quadro:

Exemplo

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();
}
Tente você mesmo "

fundo em movimento

Alterar o componente de fundo speedX propriedade para fazer a jogada de fundo:

Exemplo

function updateGameArea() {
    myGameArea.clear();
    myBackground.speedX = -1;
    myBackground.newPos();
    myBackground.update();
    myGamePiece.newPos();
    myGamePiece.update();
}
Tente você mesmo "

Circuito de fundo

Para fazer o mesmo loop de fundo para sempre, devemos usar uma técnica específica.

Comece dizendo o construtor componente que este é um fundo. O construtor componente será, em seguida, adicionar a imagem duas vezes, colocando a segunda imagem imediatamente após a primeira imagem.

Nos newPos() método, verificar se a x da posição do componente tem atingir o fim da imagem, se tiver, definir o x da posição do componente de 0:

Exemplo

function component(width, height, color, x, y, type) {
    this.type = type;
    if (type == "image" || type == "background" ) {
        this.image = new Image();
        this.image.src = color;
    }
    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 (type == "image" || type == "background") {
            ctx.drawImage(this.image,
                this.x, this.y, this.width, this.height);
            if (type == "background") {
                ctx.drawImage(this.image,
                this.x + this.width, this.y, this.width, this.height);
            }
        } else {
            ctx.fillStyle = color;
            ctx.fillRect(this.x, this.y, this.width, this.height);
        }
    }
    this.newPos = function() {
        this.x += this.speedX;
        this.y += this.speedY;
        if (this.type == "background") {
            if (this.x == -(this.width)) {
                this.x = 0;
            }
        }
    }
}
Tente você mesmo "