Alice 3.1 – Distribución aleatoria de objetos previa al programa

Este es un ejemplo para las ocasiones en las cuales nos interesa que algunos objetos se distribuyan al azar por la escena  los pasos son los siguientes:

1. Creación de los objetos que se van a distribuir de manera aleatoria

Creamos cinco objetos alien uno detrás de otro y dejando los nobres que llevan por defecto (alien, alien2, alien3, alien5 y alien5). Van quedando situados uno encima de otro de manera que se van a superponer en el mismo punto.

DistribucionAleatoria1

2. Creación del procedimiento

Vamos al panel de edición de código (Code Editor Panel) y creamos un procedimiento para la clase Scene. Pare ello en la pestaña Scene pulsamos “Add Scene Procedure” y le damos el nombre ColocacionAleatoria. Al darle OK aparece una uneva pestaña con el nombre de nuestro procedimiento. En “Add Parameter” añadimos un parámetro de tipo Double y le ponemos de nombre radio (será el radio de la circunferencia dentro de la cual vamos a distribuir nuestros objetos). A continuación se arrastra una instrucción “for each in” para recorrer todos los objetos que hay en un array. Este array lo creamos sobre la marcha cubriendo la ventana que aparece.

DistribucionAleatoria2

El nombre del array será “marcianos”

El tipo (item type) lo elegimos en la opción Gallery Class del desplegable. En la nueva ventana que aparece elegimos el tipo Alien.

El array lo creamos pulsando en la opción “Custom Array” del desplegable. En la nueva ventana pulsamos “Add” y vamos metiendo cada uno de los objetos alien creados anteriormente.

DistribucionAleatoria3 DistribucionAleatoria4

 

 

 

 

 

 

 

 

 

El procedimiento creado queda así:

DistribucionAleatoria5

3. Introducción del código del procedimiento

Ahora toca introducir las sentencias del código, que se ejecutará en cada uno de los cinco aliens que hemos metido en el array “marcianos”. En el “Methods Panel” ahora se pueden seleccionar los procedimientos asociados este array.

DistribucionAleatoria6

Para cada alien tenemos que elegir al azar un ángulo de giro y una distancia hacia adelante. Lo hacemos con turn y move.  A cada una de estas sentencias se les proporciona un valor aleatorio. A turn entre 0 y 1 vueltas y a move entre 0 y el parámetro radio que serán los metros que se mueva hacia delante en la dirección marcada por turn. Para ello se elige la opción Random.

DistribucionAleatoria7

4. Llamada a nuestro procedimiento desde el performCustomSetup

El performCustomSetup es un procedimiento que es llamado después de pulsar el botón Run pero antes de ejecutar MyFirstMethod y es el lugar idóneo para introducir el código relacionado con la puesta en escena antes de que nuestro programa entre en ejecución. Accedemos a él seleccionando this en el Methods Panel

ProcedimientosClaseScene

Hacemos clic derecho en el performCustomSetup y elegimos dicha opción en el desplegable que se abre. Aparecerá una nueva pestaña con este procedimiento.

DistribucionAleatoria8

Así es como queda una vez invocado el nuestro procedimiento

DistribucionAleatoria9

Y este es el resultado:

DistribucionAleatoria10DistribucionAleatoria11DistribucionAleatoria12DistribucionAleatoria13

 

 

 

 

 

 

El proyecto con el ejemplo en el sigiente enlace:

ColocacionAleatoria.a3p

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: