¿eso no tendría mucho mas código, al tener que dividir la pantalla de manera diagonal?
Sí, cortar la pantalla en diagonal requeriría mucho más código o mucho más conocimiento de trigonometría del que tengo de momento.
¿podrían hacerse animaciones para que, al girarse a un lado o a otro, quedara mas natural?
Sí, WME maneja animaciones intermedias para que los actores giren más naturalmente.
Molly, el actor por defecto de WME, tiene para cada dirección un
sprite llamado
turn.sprite, y en la definición del actor —
molly.actor— tiene dos campos llamados
"turnleft" y
"turnright" (girar a la izquierda y girar a la derecha). El problema es que por defecto está vacío, y yo nunca investigué mucho de eso. En la documentación dice que sirve para dar más naturalidad a los actores, como por ejemplo el hecho de que las personas en realidad giramos los pies primero para cambiar de dirección.
¿no podría activar un script para todas estas situaciones aparte, y enlazarlo desde los objetos para, así, tener menos código?
Sí. Tendrías que definir el método en un
script aparte, usando la palabra
method en lugar de
function. Luego, en algún
script del actor —preferentemente el que viene en la misma carpeta que su definición y sus animaciones— añadir
this.AttachScript(/* Acá, el script en que definiste tu método */);
y listo, ya podrás usar el
TurnToObject() con la misma soltura que el
Talk() o el
GoToObject(), sin tener que definirlo cada vez. El
script podrías añadirlo a cualquier objeto, pero me parece más conveniente al actor, sólo por una cuestión de organización.
el codigo para activar otra animación en el prota (y ya que estamos, en el otro personaje), ¿cómo se haría?
Es muy fácil. Tendrías que crear un
sprite con tu animación y luego
actor.PlayAnim("actors\molly\golpear.sprite");
donde quieras que ejecute la animación.
Y sí, que se fue un poco por las ramas el hilo.