Derniers tutoriels de développement web
 

HTML Mouvement Jeu

Avec la nouvelle façon de composants de dessin, expliqué dans le chapitre du jeu de rotation, les mouvements sont plus souples.


Comment faire pour déplacer des objets?

Ajouter une speed de logement à component constructeur, qui représente la vitesse actuelle du composant.

Assurez - vous également quelques changements dans la newPos() méthode, pour calculer la position du composant, en fonction de la speed et de l' angle .

Par défaut, les composants sont orientés vers le haut, et en définissant la propriété de vitesse à 1, le composant va commencer à avancer.

Exemple

function component(width, height, color, x, y) {
    this.gamearea = gamearea;
    this.width = width;
    this.height = height;
    this.angle = 0;
    this.speed = 1;
    this.x = x;
    this.y = y;
    this.update = function() {
        ctx = myGameArea.context;
        ctx.save();
        ctx.translate(this.x, this.y);
        ctx.rotate(this.angle);
        ctx.fillStyle = color;
        ctx.fillRect(this.width / -2, this.height / -2, this.width, this.height);
        ctx.restore();
    }
    this.newPos = function() {
        this.x += this.speed * Math.sin(this.angle);
        this.y -= this.speed * Math.cos(this.angle);
    }
}
Essayez - le vous - même »

Faire Turns

Nous voulons aussi être en mesure de faire des virages à gauche et à droite. Faire une nouvelle propriété appelée moveAngle , qui indique la valeur de déplacement en cours, ou de l' angle de rotation. Dans les newPos() méthode de calculer l' angle sur la base du moveAngle propriété:

Exemple

Définissez la propriété moveangle à 1, et de voir ce qui se passe:

function component(width, height, color, x, y) {
    this.width = width;
    this.height = height;
    this.angle = 0;
    this.moveAngle = 1;
    this.speed = 1;
    this.x = x;
    this.y = y;
    this.update = function() {
        ctx = myGameArea.context;
        ctx.save();
        ctx.translate(this.x, this.y);
        ctx.rotate(this.angle);
        ctx.fillStyle = color;
        ctx.fillRect(this.width / -2, this.height / -2, this.width, this.height);
        ctx.restore();
    }
    this.newPos = function() {
        this.angle += this.moveAngle * Math.PI / 180;
        this.x += this.speed * Math.sin(this.angle);
        this.y -= this.speed * Math.cos(this.angle);
    }
}
Essayez - le vous - même »

Utilisez le clavier

Comment le carré rouge se déplacer lorsque vous utilisez le clavier? Au lieu de déplacer vers le haut et vers le bas, et de gauche à droite, le carré rouge se déplace vers l' avant lorsque vous utilisez le "up" flèche, et tourne à gauche et à droite lorsque vous appuyez sur les flèches gauche et droite.

Exemple

Essayez - le vous - même »