CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet résolu : Javascript prototype

DébutPage précedente
1
Page suivantePage suivante
infiltrator infiltrator
MP
Niveau 5
27 août 2016 à 11:58:18

Salut à tous !
Je suis en train de faire un jeux en Javascript à l'aide de Phaser, j'ai fait une classe Player avec deux méthodes move et update :

var Player = function(game, x, y, textureName){
    Phaser.Sprite.call(this, game, x, y, textureName);
    game.add.existing(this);
};
//l'Objet 
Player.prototype = Object.create(Phaser.Sprite.prototype);
//on affecte à l'objet son constructeur 
Player.prototype.constructor = Player;

Player.prototype.update = function(cursors){
    this.move(cursors);
};
    
Player.prototype.move = function(cursors){
    if(cursors.right.isDown){
        this.body.velocity.x += 150;
    }
    else if(cursors.left.isDown){
        this.body.velocity.x -= 150;
    }
};
ludum.Game = function(game){
    var text;
    var style;
    var hero;
    var cursors;
    var levelParams;
};

ludum.Game.prototype = {
	create: function(){
	    this.style = { font: 'bold 25pt Arial', fill: 'white', align: 'left', wordWrap: true, wordWrapWidth: 450 };
	    this.text = this.add.text(0, 0, "Game state", this.style);
	    this.physics.startSystem(Phaser.Physics.ARCADE);
	    //le hero
		this.hero = new Player(this,50,50,'hero');
		
	    this.physics.arcade.gravity.y = 250;
		this.physics.enable(this.hero, Phaser.Physics.ARCADE);
		this.cursors = this.input.keyboard.createCursorKeys();
		//this.camera.follow(this.hero);
	},
	
	update: function(){
	    this.hero.update(this.cursors);
	}
};

Le problème est le suivant lorsque que je lance le jeux il me dit que cursors n'est pas definie alors qu'il est ...
Je pense que c'est un problème avec le paramètre cursors dans update et move, mais en vrai je suis perdu, logiquement ( dans la tête ) ça devrait marcher, Javascript j'ai vraiment du mal ... Merci du votre en tout cas !

Message édité le 27 août 2016 à 11:59:13 par infiltrator
Elmohe Elmohe
MP
Niveau 9
29 août 2016 à 13:10:35

J'y connais absolument rien au JS, mais si c'est un minimum comme les autres langages, "var cursors;" ligne 5 du 2ème code, la variable est déclarée localement et provisoirement pour la fonction seulement au lieu de publiquement :ok:

infiltrator infiltrator
MP
Niveau 5
29 août 2016 à 17:38:12

oui le problème était là, mais étant habitué au public/protected/private de java, je ne connaissais pas réellement le sens de var, mais j'ai finis par le comprendre ^^Merci en tout cas !

LGV LGV
MP
Niveau 21
29 août 2016 à 18:25:12

Si tu viens d'un background Java, regarde du cote de TypeScript ; c'est du javascript avec la structure de langages modernes (classes, methodes, encapsulation, etc.) et il y a des bindings dispos pour Phaser (et je confirme que ca marche tres, m'en servant moi-meme depuis plusieurs mois)

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment