|
Taller
|
| >> Taller >> Santa Attack by Wakroo >> Cap. 5, Casas y chimeneas. |
El primer proceso de este bloque es crea_casas(). Su función es muy sencilla: crea 3 casas para que vayan pasando por la pantalla y luego entra en un bucle infinito que va modificando la velocidad a la que pasan dependiendo del número de casas que hayan pasado ya. Decidí simplemente hacer que la velocidad fuera el número de casas dividido por un número (definido en la constante cantCasas y +1 para que no pueda ser 0). De esta manera al principio las casas irán despacio, pero pasadas cantCasas casas empezarán a ir más rápido. Cuando hayan vuelto a pasas cantCasas volverá a acelerar, pero esta vez sucederá antes porque pasan más rápido. Por lo tanto, la velocidad no aumenta de una manera lineal. Se podrían haber usado otros métodos para conseguir este efecto o haberlo hecho de otra manera, pero éste me gustó.
Luego está el proceso casa. Primero crea una chimenea propia y exclusiva y luego se asegura de quedar por encima de cualquier casa que se haya creado antes y con la que esté colisionando. Como se crean con coordenadas al azar (dentro de unos límites) esto es algo no sólo posible, sino incluso probable. A continuación entra en un LOOP que muve la casa y comprueba si ha salido por el lado izquierdo. En ese caso crea un nuevo proceso casa(x,y) y sale del bucle para dar por terminado el proceso.
La chimenea recibe dos parámetros que determinan dónde estará colocada con respecto a las coordenadas de la casa. Luego entra en el LOOP donde sigue a la casa que lo ha creado (su padre) y comprueba a ver si ya no existe. En ese caso sale del bucle para terminar también con él mismo.
Como habéis podido ver, este trozo de código no tiene ninguna complicación. Ahora pasamos al último fragmento de código que queda: la luna.