// Fired by Ship class Bullet : AbstractRole { // The speed in pixels per tick // Note, the direction is determined by actor.direction. var speed = 6.0 override fun tick() { actor.moveForwards( speed ) val overlapping = DrunkInvaders.instance.overlapping for( enemy in actor.stage.findRolesByClass( Alien ) ) { if (overlapping.overlapping( actor, enemy.actor ) ) { enemy.hit() actor.die() break } } if ( actor.x < 0 || actor.y < 0 || actor.x > 640 || actor.y > 480 ) { actor.die() } } }