Los últimos tutoriales de desarrollo web
 

Juego HTML Imágenes


Empuje los botones para mover el sonriente:








Cómo usar las imágenes?

Para añadir imágenes en un lienzo, la getContext("2d") objeto ha incorporado la imagen Características y métodos.

En nuestro juego, para crear el gamepiece como una imagen, utilice el constructor de componentes, pero en vez de referirse a un color, se debe hacer referencia a la URL de la imagen. Y usted debe decirle al constructor que este componente es del tipo "image" :

Ejemplo

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

En el constructor de componente se prueba si el componente es de tipo "image" , y creamos un objeto de imagen utilizando el built-in "nueva Image() " constructor de objeto. Cuando estamos listos para dibujar la imagen, utilizamos el método drawImage en lugar del método fillRect:

Ejemplo

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);
    }
  }
}
Inténtalo tú mismo "

Cambiar Imágenes

Puede cambiar la imagen siempre que lo desee cambiando el src propiedad de la image objeto de su componente.

Si desea cambiar el cada vez de sonriente que se mueve, cambia la fuente de la imagen cuando el usuario hace clic en un botón, y de vuelta a la normalidad cuando no se hace clic en el botón:

Ejemplo

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;
}
Inténtalo tú mismo "

Imágenes de fondo

Añadir una imagen de fondo a su área de juego añadiéndolo como un componente, y también actualizar el fondo en cada cuadro:

Ejemplo

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();
}
Inténtalo tú mismo "

Antecedentes de movimiento

Cambiar el componente de fondo speedX propiedad para hacer el movimiento de fondo:

Ejemplo

function updateGameArea() {
    myGameArea.clear();
    myBackground.speedX = -1;
    myBackground.newPos();
    myBackground.update();
    myGamePiece.newPos();
    myGamePiece.update();
}
Inténtalo tú mismo "

bucle de fondo

Para hacer el mismo bucle de fondo siempre, hay que utilizar una técnica específica.

Comience por decirle al constructor componente que se trata de un fondo. El constructor componente continuación, agregue la imagen dos veces, la colocación de la segunda imagen inmediatamente después de la primera imagen.

En los newPos() método, comprobar si el x posición del componente ha llegar al final de la imagen, si es así, establecer la x posición del componente a 0:

Ejemplo

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;
            }
        }
    }
}
Inténtalo tú mismo "