maxpower Posted December 11, 2015 Share Posted December 11, 2015 Hey Guys, I'm using typescript in visual studio for web and can't access the sprite methods when using though group call getChildAt() e.g this.objectsGroup.getChildAt(i).destroy(); This is the error I getError 1 Build: Property 'destroy' does not exist on type 'DisplayObject'. Not sure if i'm meant to cast this? Any help would be much appreciatedclass below. module Test { export class Level1 extends Phaser.State { background: Phaser.Sprite; crossHairGroup: Phaser.Group; poleGroup: Phaser.Group; objectsGroup: Phaser.Group; crossHair: CrossHair; pole: Phaser.Sprite; object: Phaser.Sprite; create() { this.crossHairGroup = this.game.add.group(); this.poleGroup = this.game.add.group(); this.objectsGroup = this.game.add.group(); this.background = this.game.add.sprite(this.game.world.centerX, this.game.world.centerY, 'background'); this.background.anchor.setTo(0.5, 0.5); this.crossHair = new CrossHair(this.game, this.game.input.x, this.game.input.y, this.crossHairGroup); this.initializeObjects(); this.game.input.onDown.add(this.fire, this); } fire() { var bullet = this.crossHair.fire(); /* Check if bullet hits object */ for (var i = 0; i < this.objectsGroup.length; i++) { if (this.checkOverlap(this.objectsGroup.getChildAt(i), bullet)) { this.objectsGroup.add(this.object); /* this line not working */ //this.objectsGroup.getChildAt(i).destroy(); } } } checkOverlap(spriteA, spriteB) { var boundsA = spriteA.getBounds(); var boundsB = spriteB.getBounds(); return Phaser.Rectangle.intersects(boundsA, boundsB); } initializeObjects() { /* Initialize poles and objects */ for (var i = 0; i < 7; i++) { /* Top poles */ this.pole = new Pole(this.game,(i * -200), 235, false); this.poleGroup.add(this.pole); /* Bottom poles */ this.pole = new Pole(this.game,((i * 200) + 1024), 45, true); this.poleGroup.add(this.pole); /* Top objects */ this.object = new Object(this.game,(i * -200), 300, false); this.objectsGroup.add(this.object); /* Bottom objects */ this.object = new Object(this.game,((i * 200) + 1024), 100, true); this.objectsGroup.add(this.object); } } }} Link to comment Share on other sites More sharing options...
maxpower Posted December 12, 2015 Author Share Posted December 12, 2015 Okay so casting worked fine, getChildAt() doesn't actually return a sprite. var test = <Object> this.objectsGroup.getChildAt(i); test.destroy(); Link to comment Share on other sites More sharing options...
Recommended Posts