Hola Visitante

Instanciar diferentes enemigos

  • 1 Respuestas
  • 49 Vistas
*

Juanki

  • *
  • 10
  • +0/-0
  • Siempre aprendiendo
    • Ver Perfil
Instanciar diferentes enemigos
« en: 02 de Octubre del 2018, 00:04 »
Hola


Estoy haciendo varios ejemplos a ver si voy conociendo Godot. Uno de ellos es un simple "mata-marcianos" en el que voy instanciando enemigos por código cada cierto tiempo. Todo bien.

La duda me surge que quiero tener diferentes enemigos, con diferentes propiedades (más daño, más duros, etc) y diferente Sprite.

Ahora mismo uso

Código: [Seleccionar]
export (PackedScene) var enemigo
Y en el editor pues le asigno el enemigo que es una escena.

¿Añado otras tantas por cada enemigo que quiera añadir? ¿Es lo más óptimo?

Había pensado crear una sola escena "enemigo" y luego pasarle un "tipo" y así ajustar los valores de daño y esas cosas, pero una de las cosas que cambia son los Sprites y son de diferentes tamaños y formas, por lo que ajustar el CollisionShape sería un lío.

Un saludo
« Última modificación: 02 de Octubre del 2018, 00:13 por Juanki »
Realiza las preguntas de forma clara, en caso de error aporta el mismo y el código que crees da el error.

Procura escribir correctamente y sin faltas de ortografía

*

César León

  • *
  • 32
  • +13/-0
  • Para la soledad esta el recuerdo de su sonrisa.
    • Ver Perfil
    • Indie Libre
Re:Instanciar diferentes enemigos
« Respuesta #1 en: 06 de Octubre del 2018, 18:09 »
Perdona la tardanza. Yo lo que hago es " var enemigo = load("res://enemigo.tscn") " El export me dio unos errores con unas escenas entonces no lo uso para variables PackedScene. Creo que no hay una forma más optima, pero si trabajas con una plantilla de enemigos que no se afecten cuando cambies el CollisionShape, puedes hacer lo de cambiar el tipo sin necesidad de exportar otro enemigo.

Algo que se hace también, es trabajar con escenas heredadas. Usas un modelo del enemigo y creas una escena que sea heredera de ese modelo, dentro de esa escena cambias solamente la imagen y el CollisionShape, pero si haces un cambio en el modelo se lo ajustarás también al heredero. Es un tema un poco largo, me detengo aquí xd.