Código de las estrellas en Cycle3.
/** * Created by Oin Zea on 9/29/2016. */ class Star extends BaseActor { private final static float MAX_SIZE = 5; private final static float MIN_SIZE = 2; private final static float BASE_SPEED = 20f; private float speed; Star() { super(RM.get().TR.get(ST.TEXTURE.STAR), 0, 0); setColor(Color.Grey); setSizeAndSpeed(); setPosition( MathUtils.random(WORLD_WIDTH - MAX_SIZE), MathUtils.random(WORLD_HEIGHT)); addAction(Actions.delay(.6f, Actions.fadeIn(3f))); } @Override public void act(float delta) { super.act(delta); setY(getY() - (speed * delta)); if (getY() <= -getHeight()) reset(); } private void reset(){ setSizeAndSpeed(); setPosition( MathUtils.random(0, WORLD_WIDTH - MAX_SIZE), WORLD_HEIGHT); } private void setSizeAndSpeed(){ float newSize = MathUtils.random(MIN_SIZE, MAX_SIZE); setSize(newSize, newSize); speed = BASE_SPEED * newSize; } }
- 6, 7 y 8: Tamaño máximo, mínimo y velocidad base de las estrellas.
- 17: Ver linea 44.
- 19, 20 y 21: Posición inicial aleatoria entre el tamaño de la pantalla.
- 23: Efecto de colorarse poco a poco desde la transparencia.
- 27-33: Método de actuar donde se calcula movimiento.
- 35-42: Método donde se re-inicia la estrella a una nueva posición cuando llega al final de la pantalla.
- 44: Método para calcular nuevo tamaño y velocidad de la estrella.
- 46: Calculo aleatorio de tamaño entre un valor mayor y mínimo (6 y 7).
- 49: Calculo para nueva velocidad basado en su nuevo tamaño. Mientras mas grande, mas rápida la velocidad.