(Este tutorial es una traduccion del tutorial de Luke:
http://papervision2.com/4-basic-template-usage/)
Ahora que ya tienes creada tu clase Base, seguramente tendras mucho interés en probarla.
Vamos a empezar simplemente creando un cono rotando, algo como esto:
Usando la clase Base que has creado, puedes rapidamente hacer este simple ejemplo. Primero, crea un proyecto en FlashDevelop. Llamalo “ConeExample” o algo parecido. Ve a “Project > Properties…” y escribe cone.swf en el campo Output File. En la pestaña Classpaths, necesitas añadir 2 rutas de clases esta vez. Primero, en esa pestaña, pincha en AddClasspath…, busca el directorio de GreatWhite y pincha OK.
Ahora necesitas añadir la clase Base al proyecto. Pulsa en “Add Classpath…” de nuevo, y esta vez entra en el directorio donde guardaste la clase Base. Encuentra la carpeta que contiene PaperBase.as y pulsa OK.
Ahora necesitamos crear el codigo.
Click con el boton derecho en “ConeExample” en el arbol de proyecto, ve a Add y elige New Class.
Nombra la clase Main.as.
Click derecho en Main.as, en el arbol de proyecto y selecciona Always Compile.
Ahora estas listo para el codigo.
Primero, añadimos las siguientes lineas al Main.as, despues de la linea “package{”
import PaperBase; import org.papervision3d.objects.primitives.Cone;
Esas lineas importarán todos los paquetes que necesitamos.
Ahora, cambia la linea:
public class Main{
por
public class Main extends PaperBase{
Esto hara que nuestro proyecto importe todas las funciones y el codigo que hemos escrito en PaperBase.as. Ahora podemos añadir unas pocas lineas de codigo para que nuestro proyecto funcione.
Necesitaremos añadir un objeto Cono al escenario. Directamente debajo de esa linea:
public class Main extends PaperBase{
insertaremos esta:
public var cone:Cone = new Cone();
Esta linea creará un objeto cono y lo alojará en la variable “cone”.
Ahora, cuando el proyecto este corriendo, el codigo en “public function Main()” sera ejecutado. Queremos inicializar nuestro esqueleto Papervision cuando ejecutemos el proyecto. Para esto, cambia la funcion para que quede asi:
public function Main(){ init(); }
Esto ejecutará la funcion init() de nuestra clase PaperBase cuando corramos el proyecto.
Ahora necesitamos anular dos funciones de PaperBase. Son init3d() y processFrame().
Necesitaremos añadir nuestro cono a la escena en init3d, entonces lo rotaremos un poco cada vez que processFrame() sea llamado. Para hacerlo añade este codigo justo debajo de la funcion Main().
override protected function init3d():void{ cone.scale = <span style="color: #0000ff;">3</span>; <span style="color: #008000;">// Make the cone bigger</span> cone.pitch(<span style="color: #0000ff;">-40</span>); <span style="color: #008000;">// Tilt it towards the camera</span> default_scene.addChild(cone); <span style="color: #008000;">// Add it to the scene</span> } <span style="color: #0000ff;">override protected function</span> processFrame():<span style="color: #008080;">void</span> { cone.yaw(<span style="color: #0000ff;">5</span>); <span style="color: #008000;">// Rotate it a bit</span> }
Estas dos funciones sobreescritas correran en lugar de las originales en PaperBase. Cuando ejecutes el proyecto, deberías ver el cono rotando! Prueba jugando con los valores, añadiendo y cambiando un poco las dos funciones que hemos comentado.
El codigo final deberia quedar como esto:
package { import PaperBase; import org.papervision3d.objects.primitives.Cone; public class Main extends PaperBase { public var cone:Cone = new Cone(); public function Main() { init(); } override protected function init3d():void { cone.scale = 3; cone.pitch(-40) default_scene.addChild(cone); } override protected function processFrame():void { cone.yaw(7); } } }




