Derniers tutoriels de développement web
 

Jeu HTML Composants


Ajouter un carré rouge sur la zone de jeu:


Ajout d'un composant

Faire un constructeur du composant, ce qui vous permet d'ajouter des composants sur le gamearea.

Le constructeur de l' objet est appelé component , et nous faisons notre premier composant, appelé myGamePiece :

Exemple

var myGamePiece;

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

function component(width, height, color, x, y) {
    this.width = width;
    this.height = height;
    this.x = x;
    this.y = y;
    ctx = myGameArea.context;
    ctx.fillStyle = color;
    ctx.fillRect(this.x, this.y, this.width, this.height);
}

Essayez - le vous - même »

Les composants ont des propriétés et des méthodes pour contrôler leurs apparitions et les mouvements.


Cadres

Pour rendre le jeu prêt pour l'action, nous mettrons à jour l'affichage 50 fois par seconde, ce qui est un peu comme cadres dans un film.

Tout d' abord, créer une nouvelle fonction appelée updateGameArea() .

Dans le myGameArea objet, ajoutez un intervalle qui va exécuter le updateGameArea() fonction tous les 20 millisecondes (50 times per second) . Ajoutez également une fonction appelée clear() , qui efface toute la toile.

Dans le component constructeur, ajouter une fonction appelée update() à update() , pour manipuler le dessin du composant.

Le updateGameArea() fonction appelle la clear() et de la update() à update() méthode.

Le résultat est que le composant est prélevé et dégagé 50 fois par seconde:

Exemple

var myGameArea = {
    canvas : document.createElement("canvas"),
    start : function() {
        this.canvas.width = 480;
        this.canvas.height = 270;
        this.context = this.canvas.getContext("2d");
        document.body.insertBefore(this.canvas, document.body.childNodes[0]);
        this.interval = setInterval(updateGameArea, 20);
    },
    clear : function() {
        this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);
    }
}

function component(width, height, color, x, y) {
    this.width = width;
    this.height = height;
    this.x = x;
    this.y = y;
    this.update = function(){
        ctx = myGameArea.context;
        ctx.fillStyle = color;
        ctx.fillRect(this.x, this.y, this.width, this.height);
    }
}

function updateGameArea() {
    myGameArea.clear();
    myGamePiece.update();
}
Essayez - le vous - même »

Faire bouger

Pour prouver que le carré rouge est dessiné 50 fois par seconde, nous allons changer la position x (horizontal) d'un pixel à chaque fois que nous mettons à jour la zone de jeu:

Exemple

function updateGameArea() {
    myGameArea.clear();
    myGamePiece.x += 1;
   
myGamePiece.update();
}
Essayez - le vous - même »

Pourquoi Clear The Area Game?

Il peut sembler inutile de dégager la zone de jeu à chaque mise à jour. Cependant, si nous laissons le clear() méthode, tous les mouvements de la composante laissera une trace de l' endroit où il a été placé dans la dernière image:

Exemple

function updateGameArea() {
    //myGameArea.clear();
    myGamePiece.x += 1;
   
myGamePiece.update();
}
Essayez - le vous - même »

Modifier la taille

Vous pouvez contrôler la largeur et la hauteur de la pièce:

Exemple

Créer un rectangle 10x140 pixels:

function startGame() {
    myGameArea.start();
    myGamePiece = new component( 10 , 140 , "red" , 10, 120);
}
Essayez - le vous - même »

Changer la couleur

Vous pouvez contrôler la couleur du composant:

Exemple

function startGame() {
    myGameArea.start();
    myGamePiece = new component(30, 30, "blue" , 10, 120);
}
Essayez - le vous - même »

Vous pouvez également utiliser d'autres colorvalues ​​comme hex, rgb, ou rgba:

Exemple

function startGame() {
    myGameArea.start();
    myGamePiece = new component(30, 30, "rgba(0, 0, 255, 0.5)" , 10, 120);
}
Essayez - le vous - même »

Changer la position

Nous utilisons les coordonnées x et y pour positionner les composants sur la zone de jeu.

Le coin supérieur gauche de la toile a les coordonnées (0,0)

Passez la souris sur la zone de jeu ci-dessous pour voir ses coordonnées x et y:

X
Y

Vous pouvez positionner les composants partout où vous voulez sur l'aire de jeu:

Exemple

function startGame() {
    myGameArea.start();
    myGamePiece = new component(30, 30, "red" , 2 , 2 );
}
Essayez - le vous - même »

De nombreux composants

Vous pouvez mettre autant de composants que vous le souhaitez sur la zone de jeu:

Exemple

var redGamePiece, blueGamePiece, yellowGamePiece;

function startGame() {
    redGamePiece = new component(75, 75, "red" , 10, 10);
    yellowGamePiece = new component(75, 75, "yellow" , 50, 60);
    blueGamePiece = new component(75, 75, "blue" , 10, 110);
   
myGameArea.start();
}

function updateGameArea() {
    myGameArea.clear();
    redGamePiece.update();
    yellowGamePiece.update();
    blueGamePiece.update();
}
Essayez - le vous - même »

Composants Déplacement

Faire les trois composants se déplacent dans des directions différentes:

Exemple

function updateGameArea() {
    myGameArea.clear();
    redGamePiece.x += 1;
    yellowGamePiece.x += 1;
    yellowGamePiece.y += 1;
    blueGamePiece.x += 1;
    blueGamePiece.y -= 1;
    redGamePiece.update();
    yellowGamePiece.update();
    blueGamePiece.update();
}
Essayez - le vous - même »