J'essaie de créer un jeu multijoueur en utilisant JS.Set Les contrôles ne fonctionnent pas pour une instance d'objet mais fonctionnent pour d'autres
function EvilBall(player,color)
{
EvilCircle.call(this,this.size,this.velY,this.velX);
this.color=color;
this.score =0;
this.player=player;
}
EvilBall.prototype=Object.create(EvilCircle.prototype);
EvilBall.prototype.constructor =EvilBall;
EvilBall.prototype.setControls=function(left,right,down,up){
var _this = this;
window.onkeydown = function(e) {
console.log(e.keyCode);
if (e.keyCode === left) {
_this.x -= _this.velX;
} else if (e.keyCode === right) {
_this.x += _this.velX;
} else if (e.keyCode === down) {
_this.y -= _this.velY;
} else if (e.keyCode === up) {
_this.y += _this.velY;
}
}
}
après que je crée deux instances de EvilBall et réglage, il contrôle en utilisant la fonction de setControls qui a la fonction de gestionnaire d'événements à l'intérieur.
var evilBall = new EvilBall('p1','white');
var evilBall2 = new EvilBall('p2','yellow');
evilBall2.setControls(65,68,87,83);
evilBall.setControls(37,39,38,40);
Seulement evilBall exemple avec la clé 37,39,38 et 40 fonctionne lorsque les touches sont enfoncées. J'ai pensé que depuis evilBall est mentionné ci-dessous evilBall2, cela fonctionne bien. Si un gestionnaire d'événements fonctionne correctement sur une instance, pourquoi ne travaille-t-il pas sur l'autre? Comment pouvons-nous développer des jeux multi-joueurs dans JS lorsque le gestionnaire d'événements sur une seule instance fonctionne? Quelqu'un peut-il m'expliquer s'il vous plaît. Est-ce que j'ai râté quelque chose?
EvilCircle.call (ce, this.size, this.velY, this.velX); this.size etc n'est pas défini? –
use window.addEventListener ("keydown" –
J'ai défini toutes les fonctions dépendantes.Voyez le fichier main.js pour le code entier https://github.com/karanjariwala/Bouncing-Ball-Game.git –