2015-12-25 11 views
5

अनचाहे टाइपरर की संपत्ति 'लागू' नहीं पढ़ी जा सकती है: अपरिभाषित संपत्ति 'लागू' नहीं पढ़ सकता ?? इसका मतलब क्या है?अनचाहे टाइपरर: अपरिभाषित फ़ेसर

मेरा मतलब है कि मैंने इसे डीबग करने की कोशिश की और सभी समस्या को समझ नहीं पाए। मदद वास्तव में सराहना की जाएगी। इस समस्या को समझने में आपकी मदद करने के लिए आपको कुछ भी चाहिए, कृपया मुझसे पूछने में संकोच न करें। धन्यवाद!

var game = new Phaser.Game(500, 550, Phaser.CANVAS, 'gameDiv'); 

var CountDown = { 

    preload: function() { 
    }, 
    update: function() { 
    }, 
    render: function() { 
    } 
} 
var player; 
var bullets; 
var enemies; 
var greenEnemies 
var bulletTimer = 0; 
var mainState = { 

    preload: function() { 
     game.load.image('background', 'http://s1.postimg.org/nqynk9tkv/starfield.png') 
     game.load.image('player', 'http://s28.postimg.org/9qdf4xrfx/145103252914234.gif') 
     game.load.image('bullet', 'http://s9.postimg.org/z2bptetxn/bullet.png'); 
     game.load.image('green', 'http://s28.postimg.org/kpmq4byt5/enemy_green.png') 
    }, 

    create: function() { 
     this.backgroundImg = this.game.add.tileSprite(0, 0, 500, 550, 'background') 
     player = game.add.sprite(game.world.centerX, 500, 'player') 
     player.anchor.setTo(0.5) 
     player.scale.setTo(0.25) 
     game.physics.arcade.enable(player); 
     game.physics.enable(player, Phaser.Physics.ARCADE); 
     player.body.collideWorldBounds = true; 
     this.game.inputEnabled = true; 
     this.game.input.useHandCursor = true; 
     player.body.maxVelocity.setTo(400, 400) 
     player.body.drag.setTo(400, 400) 

     // The baddies! 
    greenEnemies = game.add.group(); 
    greenEnemies.enableBody = true; 
    greenEnemies.physicsBodyType = Phaser.Physics.ARCADE; 
    greenEnemies.createMultiple(5, 'green'); 
    greenEnemies.setAll('anchor.x', 0.5); 
    greenEnemies.setAll('anchor.y', 0.5); 
    greenEnemies.setAll('scale.x', 0.5); 
    greenEnemies.setAll('scale.y', 0.5); 
    greenEnemies.setAll('angle', 180); 
    greenEnemies.setAll('outOfBoundsKill', true); 
    greenEnemies.setAll('checkWorldBounds', true); 

    this.launchGreenEnemy(); 

     bullets = game.add.group(); 
     bullets.enableBody = true; 
     bullets.physicsBodyType = Phaser.Physics.ARCADE; 
     bullets.createMultiple(30, 'bullet'); 
     bullets.setAll('anchor.x', 0.5); 
     bullets.setAll('anchor.y', 1); 
     bullets.setAll('outOfBoundsKill', true); 
     bullets.setAll('checkWorldBounds', true); 

     this.cursors = game.input.keyboard.createCursorKeys(); 
     this.fireButton = game.input.keyboard.addKey(Phaser.Keyboard.SPACEBAR) 
    }, 

    update: function() { 
     this.backgroundImg.tilePosition.y += 2; 
     player.body.acceleration.x = 0; 
     if (this.cursors.left.isDown) { 
      player.body.acceleration.x -= 600; 


     } else if (this.cursors.right.isDown) { 
      player.body.acceleration.x += 600; 
     } 

     if (this.fireButton.isDown) { 
      //Grab first bullet from the pool 

      if (game.time.now > bulletTimer) { 
       var bullet = bullets.getFirstExists(false); 
       if (bullet) { 
        bullet.reset(player.x, player.y + 8); 
        //Getting it up 
        bullet.body.velocity.y = -400; 
        bulletTimer = game.time.now + 250; 
       } 
      } 
     } 
    }, 

    launchGreenEnemy: function(){ 

    var MIN_ENEMY_SPACING = 300; 
    var MAX_ENEMY_SPACING = 3000; 
    var ENEMY_SPEED = 300; 

    var enemy = greenEnemies.getFirstExists(false); 
    if (enemy) { 
     enemy.reset(game.rnd.integerInRange(0, game.width), -20); 
     enemy.body.velocity.x = game.rnd.integerInRange(-300, 300); 
     enemy.body.velocity.y = ENEMY_SPEED; 
     enemy.body.drag.x = 100; 
    } 

    // Send another enemy soon 
    game.time.events.add(game.rnd.integerInRange(300, 3000), this.launchGreenEnemy); 
    }, 

    // Restart the game 
    platformsCreate: function() { 

    } 
}; 

var Menu = { 
    preload: function() { 
    }, 
    create: function() { 
    }, 
    update: function() { 
    }, 
    render: function() { 
    }, 
    start: function() { 
    } 
}; 

var Game_Over = { 
    preload: function() { 
    }, 
    create: function() { 
    }, 
    update: function() { 
    }, 
    render: function() { 
    }, 
    onDown: function() { 
    } 
}; 
// Add and start the 'main' state to start the game 
game.state.add('CountDown', CountDown) 
game.state.add('main', mainState); 
game.state.add('Menu', Menu); 
game.state.add('Game_Over', Game_Over); 
game.state.start('main'); 
+0

इसका मतलब है कि आपके कोड में कहीं भी 'जो कुछ भी है,' और 'जो कुछ भी' अपरिभाषित है 'है। यही है, किसी वस्तु के संदर्भ में जो भी हो, इसके बजाय, यह नहीं है। – Pointy

+1

मैंने कभी भी लागू विधि का उपयोग नहीं किया। Thats क्यों मैं उलझन में हूँ ... मुझे लगता है कि game.events.add विधि में जहां यह सुनिश्चित नहीं है। –

+0

मुझे आपके कोड में कहीं भी 'लागू' नहीं दिखाई देता है; यह उस लाइब्रेरी में हो सकता है जिसका आप उपयोग कर रहे हैं, जिसका अर्थ है कि आप कुछ लाइब्रेरी एपीआई का आह्वान कर रहे हैं जिस तरह से पुस्तकालय की उम्मीद नहीं है। आप अपने कोड में कहां हो रहा है यह पता लगाने के लिए ब्राउज़र के डीबग टूल के साथ लाइब्रेरी के एक गैर-संशोधित संस्करण का उपयोग करने में सक्षम होना चाहिए। – Pointy

उत्तर

5

मैं इस anwser पोस्ट अन्य लोगों से समस्या आ रही है मदद करने के लिए:

JSBIN

यहाँ मेरी कोड है।

असल में मैंने वाक्यविन्यास देखा और इसमें तीन तर्क थे।

इससे पहले कि मेरे कोड था:

game.time.events.add(game.rnd.integerInRange(300, 3000), this.launchGreenEnemy); 

यह इस पैरामीटर अंत में उस वस्तु पर बात करने के लिए की जरूरत है तो मैं इस तरह अंत में इस डाल करने के लिए किया था:

game.time.events.add(game.rnd.integerInRange(300, 3000), this.launchGreenEnemy,this); 

आशा इस दूसरों को एक ही समस्या के साथ मदद की और एक खुश क्राइस्टमास है!

+0

मेरे मामले में यह संदर्भ पैरामीटर नहीं था, लेकिन ईवेंट हैंडलर जिसमें मेरे पास एक टाइपो था इसका कारण बन गया। धन्यवाद। – icepicker

संबंधित मुद्दे