Actividad 14: Gasteroids II

per Victor Carceler darrera modificació 2020-04-06T13:06:41+02:00
En esta actividad se va a desarrollar un nuevo tipo de nave para el juego Gasteroids
  1. Descargue la última versión disponible en el CVS de Gasteroids
  2. Lea atentamente el código del fichero ColorfulSpaceShip.java y responda a las siguientes preguntas:
  • A qué clase extiende ? Qué implica ?
  • Cómo puede funcionar ColorfulSpaceShip.java si tiene tan pocos métodos implementados ?
  • Qué se utiliza para dibujar la nave ?
  • Qué paquete contiene los ficheros de la nave ?
  • Qué es el fichero ColorfulSpaceShip.svg, para qué se utiliza en el juego ?
  • Piense el nombre de una nueva nave (debe acabar en SpaceShip). Construya el paquete adecuado y coloque en su interior el código de la nueva clase. Evidentemente la nueva clase extenderá a SpaceShip. A partir de ahora modificará el código de la nueva clase, NO HAY QUE CAMBIAR NADA EN OTRAS CLASES.
  • Reescriba el método paint() para dibujar el aspecto de la nueva nave.
    • Desde el método paint() de la nueva clase puede llamar al método paint() de la superclase.
    • Otra posibilidad es escribir código suficiente en el paint() de la nueva clase para dibujar la nave y sus proyectiles.
    • Se pueden combinar las dos aproximaciones anteriores.
    • Es importante que la nave, y los proyectiles, conserven el tamaño original para que la detección de colisiones siga funcionando.
    • La forma de la nave debe indicar su orientación.
    • No utilice gráficos PNG para representar a la nave, debe dibujar líneas, arcos, etc...
    • En la representación de la nave puede utilizar los colores que considere oportunos.
  • Se desea limitar la capacidad de fuego de la nave. Por ello se implementará una restricción basada en bucket brigade.
    • La nave contará con un número finito de buckets, en cada disparo se decrementará.
    • Sólo se puede disparar si existe algún bucket disponible.
    • Cada bucket_renew_time veces que se ejecute el método paint() se incrementará en uno el número de buckets.
    • El número máximo de buckets disponibles está limitado a max_bucket_number.
    • bucket_renew_time y max_bucket_number controlan el ritmo al que se regeneran los buckets y la máxima cantidad disponible que una nave puede acumular. Ajuste los dos parámetros para conseguir una cadencia de fuego razonable (una nave no disparará tanto como le gustaría al jugador).
  • Modifique el método paint() para que se represente gráficamente el fuego de las toberas.
  • Modifique el valor de las propiedades m y thrust de su nave, cómo afectan estos parámetros a la dinámica de la nave ?