arrays - How do I stop rendering off screen sprites in starling? -
i'm having trouble deleting enemies go off screen in starling. performance issues after while because enemies array keeps growing , growing.
this code have makes enemies update function @ end of class.
private function makeenemies():void { enemyspawncounter++; if (enemyspawncounter > enemyspawndelay) { enemyspawncounter = 0; enemyspawndelay -= difficultyrate; difficulty += difficultyrate; makeenemy(); } } private function makeenemy():void { var i:int; (i = 0; < math.floor(difficulty); i++) { var newenemy:enemy = new snowball(); newenemy.x = 925; newenemy.y = math.random() * 375 + 50; //trace(newenemy.x); trace(newenemy.y); newenemy.xvel = (-math.random() * difficulty) - 5; newenemy.sinmeter = math.random() * 10; newenemy.bobvalue = math.random() * difficulty; enemieslayer.addchild(newenemy); enemies.push(newenemy); if (newenemy.x <= 0) { enemies.splice(i, 1); enemieslayer.removechild(newenemy); } } } private function update():void { trace(enemies.length, lasers.length); each (var enemy:enemy in enemies) { enemy.update(); } each (var laser:laser in lasers) { laser.update(); newhittest(laser); } makeenemies(); } and here enemy class...
package objects { import starling.events.event; import starling.display.sprite; import objects.laser; public class enemy extends sprite { public static const purge_event:string = "enemy_purge"; public var sinmeter:number; public var bobvalue:number; public var status:string; public var xvel:number; public var yvel:number; public function enemy() { status = "ok"; bobvalue = 0.1; sinmeter = 0; xvel = 0; yvel = 0; } public function destroy():void { status = "dead"; visible = false; } public function update():void { x += xvel; y += yvel; if (x < 0) { trace("dispatching enemy escaped!"); dispatchevent(new event(laser.purge_event, true, false)); } } } } anybody know how solve issue?
detect if touching screen, have never used starling think there might sort of collision detection, make rect or surface size of screen stays screen, draw enemies colliding surface.
Comments
Post a Comment