jueves, 23 de junio de 2011

Proyecto 1 - Aprendiendo con sonidos

Antes de iniciar a trabajar con un nuevo proyecto, seguir este enlace:

Programando main.cpp:

#include
#include
#include"testApp.h"

int main()
{
ofAppGlutWindow window; //define un objeto ofAppGlutWindow
ofSetupOpenGL(&window, 800, 600, OF_WINDOW); //establece el modo de visualización
ofRunApp(new testApp());//arranca la aplicación
}

OF_WINDOW = es una constante entera que le indica a OpenGL arrancar la aplicación en modo ventana.
OF_FULLSCREEN = es una constante entera que le indica a OpenGL arrancar la aplicación en modo pantalla completa.

Programación de testApp.h y testApp.cpp:

primero hay que agregar una nueva clase, al realizar esta acción configuramos el nombre de la clase con el wizard que nos facilita el IDE y automáticamente nos crea los archivos de cabecera y de código, en este caso como se la clase se llama "testApp" entonces crea los archivos "testApp.h" y "testApp.cpp", teniendo la siguiente estructura:
archivo testApp.h:

#pragma once
class testApp
{
public:
testApp(void);
~testApp(void);
};

lo primero que se debe hacer es codificar la siguiente condición:
#idndef _TEST_APP
#define _TEST_APP
...
#endif

quedaría de la siguiente manera:
#idndef _TEST_APP
#define _TEST_APP

#include

#pragma once
class testApp
{
public:
testApp(void);
~testApp(void);
};
#endif

Notar que se hizo una inclusión del archivo de cabecera "ofMain.h" para poder utilizar el framework

Adicionalmente a esto, esta clase debe ir heredada de la clase interna del framework "ofBaseApp"

quedaría de la siguiente manera:
#idndef _TEST_APP
#define _TEST_APP

#include

#pragma once
class testApp: public ofBaseApp
{
public:
testApp(void);
~testApp(void);
};
#endif

Para poder iniciar a programar OpenFrameworks como tal hay que tener en cuenta estos métodos:
Setup: Método para establecer los valores y las condiciones iniciales de la aplicación.
Update: Método para actualizar constantemente la aplicación durante su ejecución.
Draw: Método para "dibujar" los elementos gráficos que hay en el escenario de la aplicación.

Quedaría de la siguiente manera con la definición de los métodos anteriores:
#idndef _TEST_APP
#define _TEST_APP

#include

#pragma once
class testApp: public ofBaseApp
{
public:
testApp(void);
~testApp(void);
void setup(void);
void update(void);
void draw(void);
};
#endif

Programación testApp.cpp:

Cuando el IDE crea el archivo muestra la siguiente estructura inicial:
#include "testApp.h"

testApp::testApp(void){}
testApp::~testApp(void){}

aquí se programan todos los método que tenga la clase (coloco esto por si alguien es newbie en c++ con poo).
Escribimos lo siguiente:
#include "testApp.h"

testApp::testApp(void){}
testApp::~testApp(void){}
void testApp::setup(void){}
void testApp::update(void){}
void testApp::draw(void){}

definir el siguiente objeto en el archivo testApp.h con cualquier tipo de encapsulamiento, en este caso se colocara como privado:

private:
ofSoundPlayer test_sound;

En testApp.cpp programar lo siguiente:

void testApp::setup(void)
{
test_sound.loadSound([direccion o ruta donde este el sonido]);
test_sound.play();
}
void testApp::update(void)
{
ofSoundUpdate();//Actualiza todos los sonidos
}

compilar y ejecutar...

NOTA:
tener en cuenta configurar las directivas de salida
tener en cuenta configurar el debug para poder acceder a archivos de la carpeta data

Este proyecto se quedará aquí por el momento.
Espero que sea de su agrado y cualquier problema lo discutiremos en este mismo post

Andrés Camilo
24 de Junio de 2011

No hay comentarios:

Publicar un comentario