Código a:
Básicamente se maneja una nave que debe "comer" (colisionar) a las más pequeñas que ella y evitar a las más grandes o iguales. Constantemente aparecen naves, así que de a poco el juego se va haciendo más lento, debido a la gran cantidad de naves en pantalla. Por supuesto quiero evitar ese enlentecimiento. Acabo de notar que podría convertir todo lo de parte 2 en una función e incluirla en la parte 3, de ese modo sucedería más seguido el proceso. Pero estoy interesado en pulir cierta idea, o ver si se puede pulir.Ver original
Parte 1: Un objeto llamado jugador está presente. Establezco la defensa (Df) del jugador. Establezco el tamaño del jugador, en base a su Df. Naves creadas (N) es 0. Parte 2: N++ Aparece nave enemiga nro N, en las coordenadas 0,0, es decir arriba a la izquierda. Se establece su Df, con cierto azar. Se establece su tamaño en base a su Df. Se establece su posición X (es 0 por defecto, como dije, pero se puede cambiar, y es lo que hago aquí), con azar aunque en los límites del ancho de mi pantalla (800). Se establece una velocidad para el jugador, 1+9/su Df. Se analiza qué flechas están presionadas y en base a ello el jugador se mueve hacia arriba, abajo, etc, diagonal arriba-derecha, etc. N2 = 1 Para cada nave nro N2 mientras N sea mayor o igual que N: Se mueve hacia abajo, a una velocidad de 1+9/su Df. Si termina tocando al jugador Si la Df del jugador > la Df de la nave La Df del jugador aumenta en una cantidad igual a la Df de la nave. Su tamaño aumenta correspondientemente. La nave desaparece. sino Game over. fin del si sino si su ubicación es mayor de 700 (sería "muy abajo", fuera de la pantalla) La nave desaparece. fin del si fin del mientras Parte 3: Ir a parte 2.
Antes de empezar el mientras, N2 se establece como 1. Si pudiera, en vez de poner ese valor, poner el valor del nro de la nave más vieja, el mientras funcionaría desde donde debe. O sea, si la nave nro 1, nro 2, etc, hasta 40, ya no están, entonces es inconveniente que el do se aplique a la nave 1 y demás, que ya no están! En este caso N2 debería iniciar con 40.
¿Pero cómo puedo tener marcado el nro de la mínima nave sobreviviente?
Por ahora lo que tengo es que inicialmente es 1. O sea, la nave nro 1 está en pantalla. Min=1. Lo defino en la parte 1 del código.
Cuando una nave desaparece, si su nro es Min entonces Min aumenta 1.
El problema es que uno puede destruir por ejemplo la 2 antes que la 1 y entonces según lo que he puesto, Min aumentaría a 2 cuando se destruya la 1, pero como la 2 ya está destruída entonces nunca aumentará a 3.
Puedo crear un "array" que marque qué naves fueron destruídas, pero quería saber si hay algo más sencillo que eso. Algo que requiera menos variables.
Gracias.
Si quieren les paso el código original y/o el juego, pero es un cuadrado y triángulos nomás, y es posible que graficamente no vaya a mejorarlo.