CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • 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 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Javascript prototype

infiltrator
infiltrator
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
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
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
Niveau 28
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)

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment