Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Temas - Loopen

#1
General Programadores / J2me
19 de Enero de 2004, 03:20:28 PM
 Hola amigos, vereis, la verdad es q me he comprado un movil nuevo q soporta java, concretamente un Siemens S55 y me gustaria programar cosillas para el. Pero cuando me voy a la pagina de java me mareo entre tantas opciones.

La pregunta es, q necesito para empezar a programar en j2me, se programa en algun entorno o se podria acoplar al q ya uso normalmente, KAWA.

Un saludo
#2
                                Hola, estoy intentando hacer algo con C++ (orientado a objetos) y opengl, el caso es q las texturas se me atragantan.


Uso este codigo

bool Inicializa()
{
  bool PCompleta=true;
  // Pregunta al usuario si quiere ejecutar en modo pantalla completa
  if (MessageBox(NULL,"¿Ejecutar en modo pantalla completa?", "Tutoriales OpenGL",MB_YESNO|MB_ICONQUESTION)==IDNO)
  {    
      PCompleta=false;                     // Modo ventana
  }

  // Creamos nuestra ventana OpenGL
  ObjetoGL=new CGL;
 
  if (!ObjetoGL->CreaVentanaGL("Pruebas del motor 3D",640,480,16,PCompleta))
  {
      return 0;                           // Salir si la ventana no se ha creado
  }

  // Inicializamos la textura
  Textura= new CTextura;

 // !NUEVO!
  if (!Textura->CargarBMP("textura.bmp"))   // !NUEVO!
     
      return 0;                             // !NUEVO!

  // Inicializamos el Cuadrado
  // Triangulo 1
  Cuadrado[0].Vertices[0].Punto.Inicializa(-0.5f,-0.5f,0.0f);   
  Cuadrado[0].Vertices[0].PonCoordText(0.0f,0.0f);    // !NUEVO!
  Cuadrado[0].Vertices[1].Punto.Inicializa(-0.5f,0.5f,0.0f);   
  Cuadrado[0].Vertices[1].PonCoordText(0.0f,1.0f);    // !NUEVO!
  Cuadrado[0].Vertices[2].Punto.Inicializa(0.5f,0.5f,0.0f);   
  Cuadrado[0].Vertices[2].PonCoordText(1.0f,1.0f);    // !NUEVO!
   
  // Triangulo 2
  Cuadrado[1].Vertices[0].Punto.Inicializa(-0.5f,-0.5f,0.0f);   
  Cuadrado[1].Vertices[0].PonCoordText(0.0f,0.0f);    // !NUEVO!
  Cuadrado[1].Vertices[1].Punto.Inicializa(0.5f,0.5f,0.0f);   
  Cuadrado[1].Vertices[1].PonCoordText(1.0f,1.0f);    // !NUEVO!
  Cuadrado[1].Vertices[2].Punto.Inicializa(0.5f,-0.5f,0.0f);   
  Cuadrado[1].Vertices[2].PonCoordText(1.0f,0.0f);    // !NUEVO!
  return 1;
}







int Renderiza(GLvoid)                     
{
   int i,ntri;
   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);   // Borramos la pantalla y el buffer de profundidad
   glLoadIdentity();                           // Inicializamos la matriz de modelado actual
   
   glTranslatef(0.0f,0.0f,fDesz);         // Trasladamos a lo largo del eje Z
   glRotatef(fRotx,1.0f,0.0f,0.0f);      // Rotamos alrededor del eje X
   glRotatef(fRoty,0.0f,1.0f,0.0f);      // Rotamos alrededor del eje Y
   
   Textura->Usa();
   for (ntri=0;ntri<=2;ntri++)
      
   {
      
   
      glBegin(GL_TRIANGLES);
      for (i=0;i<3;i++)
      {
           glTexCoord2f( Cuadrado[ntri].Vertices.U,Cuadrado[ntri].Vertices.V);
           glVertex3f(Cuadrado[ntri].Vertices.Punto.X,
                      Cuadrado[ntri].Vertices.Punto.Y,
                        Cuadrado[ntri].Vertices.Punto.Z);
       }
   
      glEnd(); // Terminamos de dibujar
   }
   return TRUE;                              // Todo ha ido bien
}


Inicializa evidentemente es lo primero que carga mi programa. el metodo CargaBMP de la clase textura es este:



bool CTextura::CargarBMP(char *NombreFichero)
{
  FILE *Fichero;
  AUX_RGBImageRec *Imagen;
  bool Resultado=false;


  if (NombreFichero)                               // Comprobamos que el nombre de fichero sea correcto
  {
      Fichero=fopen(NombreFichero,"r");           // Comprobamos si el fichero existe (Si podemos abrirlo)

      if (Fichero!=NULL)                                  // ¿Existe el fichero?
      {
          fclose(Fichero);                          // Cerramos el handle
                 
          Imagen=auxDIBImageLoad(NombreFichero);   // Cargamos el BMP
          glGenTextures(1, &ID);
         glBindTexture(GL_TEXTURE_2D, ID);
          glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
          glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR );
         Ancho=Imagen->sizeX;
          Alto=Imagen->sizeY;
      
          glTexImage2D(GL_TEXTURE_2D, 0, 3, Ancho, Alto, 0, GL_RGB, GL_UNSIGNED_BYTE, Imagen->data);
      
          Resultado=true;
      }
  }  
  delete Imagen->data;
  delete Imagen;        
 
  return Resultado;
}


El codigo del metodo usa es este:


void CTextura::Usa()
{
   glBindTexture(GL_TEXTURE_2D, ID);
}



Y yo creo que deberia funcionar, pero el cuadrado que me genera al ejecutar es perfectamente blanco, sin texturas, ya se que he metido mucho codigo para ser un post pero es q estoy muy desesperao y estoy bastante pez. A ver si me podeis ayudar.                                
#3
Programación gráfica / Menus de GLUT
26 de Diciembre de 2002, 05:06:52 PM
                                Hola, soy un compañero del mismo chaval que os escribio preguntando lo del halo, el caso que nuestra aplicacion debe implementar unos menus.

Como debe ser multiplataforma, necesitamos usar los menus de GLUT, asi que nos pusimos manos a la obra y sacamos un menu que se desplegaba cuando pulsamos el boton derecho del raton, hasta ahi todo bien, pero ahora nos hemos dado cuenta que en algunos ordenadores muchas veces le damos al boton derecho, y el menu no aparece, sabemos que si lo llama porque la aplicacion se para y todo esperando que se elija una opcion del menu pero no se visualiza.

Os escribo para saber si alguna vez os ha pasado esto y sabeis la solucion, es muy raro, en algunos ordenadores funciona y en otros no. Al principio pensabamos que era tema de las librerias, pero no, ya lo hemos comprobado.

Si sabeis alguna otra manera de sacar un menu en glut que nos pudiera sacar del paso tambien se agradece.

Un saludo!!!                                
#4
General Programadores / Ejecutar aplicacion externa desde VB 6
15 de Diciembre de 2002, 11:28:29 PM
                                Hola, queria saber si hay alguna forma sencilla de ejecutar una aplicacion externa (de linea de comandos) desde VB 6

Espero vuestras respuestas!!                                
#5
Programación de audio / Poner musica a una aplicacion.
15 de Diciembre de 2002, 01:47:36 PM
                                Hola, resulta que estoy haciendo junto con otros compañeros una aplicacion con OPENGL que nos muestra el Sistema Solar, la aplicacion es para una asignatura de la carrera y tenemos que presentar el dia 8 de Enero, la parte grafica la tenemos ya totalmente acabada y ahora nos planteamos la opcion de ponerle una musica de fondo. El tema es que necesitamos unas librerias para hacer eso (programando en VC++), hemos visto el OpenAL pero como que vemos que simplemente para poner una musica desaprovechamos mucho el potencial de las librerias y ademas ya hay otros compañeros que basan su trabajo en OpenAL y no quisieramos meternos mucho en su campo.

En conclusion, necesitamos unas librerias sencillitas que nos permitan reproducir un wav (o quiza OGG/MP3) que sean gratuitas y multiplataforma.

Alguien me puede dar la solucion? Por cierto programamos en VC pero no utilizamos objetos, de hecho generamos .C, lo digo por las librerias tambien.                                
#6
General Programadores / Letras en OPENGL
07 de Diciembre de 2002, 01:24:13 PM
                                Hola, resulta que estoy programando una aplicacion en opengl sobre un sistema solar en 3D, he conseguido sacar unas letras en pantalla con los FPS y demas, pero claro, cuando muevo la camara y muevo los planetas las letras se me van. Sabeis de alguna manera de sacar unas letras permanentemente delante sin que importe los movimientos de escena y de camara?.                                
#7
General Audio / Hola, necesito alguna melodia
27 de Noviembre de 2002, 11:10:12 PM
                                Hola, estoy programando junto con unos compañeros una aplicacion para una asignatura de Sistemas Multimedia en la carrera de Informatica de Sistemas.

La aplicacion es sobre un paseo por el sistema solar, es en 3D con opengl y tal.

El caso es que ninguno de nosotros ha nacido para esto de la musica y nos gustaria ponerle algun fondo musical y eso que estuviera bien, alguno de vosotros tiene algo que le pudiera bien a esta aplicacion y que me lo pudiera ceder.   :oops:                                
#8
General Programadores / Una duda con un puntero.
10 de Noviembre de 2002, 12:23:16 AM
                                Imaginemos esta cabecera de una funcion en C

void funcion(estructura **a){

estructura es una estructura y la llamada la hago asi


funcion(&a); Donde a es un puntero a una estructura y por tanto le paso un puntero a ese puntero.

Bien, mi problema es cuando desde dentro de la funcion intento acceder a un campo de esa estructura para modificarlo, de esta manera.

*a->campo=b;

Me da un error diciendo que la parte izquierda de -> debe ser un puntero a una estructura, pero ahora digo yo, no es eso justamente lo que estoy haciendo?..

He probado tambien esto *(a)->campo=b y nada, incluso esto
a->campo=b, pero nada da resultado, yo para mi la primera forma es la correcta pero no se porque no funciona.                                
#9
Programación gráfica / Velocidad ejecucion
09 de Noviembre de 2002, 01:54:47 PM
                                Hola, queria saber como puedo hacer para que un programa OPENGL se ejecute igual de rapido en un ordenador que en otro (con un minimo en cuanto a ordenador claro), mi problema es que si programo algo con un ordenador y luego lo llevo a otro mas rapido el programa me va muy lijao.

Alguna sugerencia?                                
#10
Programación gráfica / DX8 y las 2D
01 de Enero de 1970, 01:00:00 AM
                                Hola, hace poco que me he metido en las directx version 8, como habreis comprobado en algun post mio.

Yo vengo de la programacion msdos en C++ y me gusta mucho el tema de los videojuegos pero mi duda es la siguiente, DX8 ofrece casi todas las facilidades para 3D, pero, para hacer un juego 2D, no hay alguna manera mas facil, o hay q tratar las 2D como si fueran 3d, quiero decir, texturas, poligonos y demas.
Lo digo porque ya q estoy empezando todo esto de las 3d se me escapan un poco.
Ayuda por favor!!!!

                               
#11
General Programadores / Debugger de Visual C
01 de Enero de 1970, 01:00:00 AM
                                Alguien sabe que se puede hacer para que cada vez que una aplicacion falle no salte el Debugger del Visual C.

La verdad es que es un coñazo, bueno, realmente no se activa directamente, pero sale una ventanita para que le des a Aceptar o Cancelar segun quieras q se active o q, y me molesta bastante.

Por cierto, ultimamente me paso mucho eso con las paginas web, teneis idea de lo q debe ser, porque dudo mucho que todo sean errores de la pagina.

[ Este Mensaje fue editado por: Loopen el 2002-06-19 18:08 ]                                
#12
General Programadores / Ayuda por favor, tengo un problema.
01 de Enero de 1970, 01:00:00 AM
                                Tengo un problema, estoy intentando implementar una funcion para poder asignarle los vertices de un triangulo a un buffer,uso DX8, el problema q tengo es q soy muy novato en esto y la funcion me falla en algo, lo que he observado es que el puntero al buffer no conserva su valor cuando salgo de la funcion, alguien me puede ayudar, os pongo el codigo de la funcion
   

void CreaBufferVertice(IDirect3DDevice8 *obj_dispositivo_D3D,unsigned char a,IDirect3DVertexBuffer8 *Triangulo,Vertice Triangulo_vertices[]){


HRESULT hr;
unsigned char *vb_vertices;




hr=obj_dispositivo_D3D->CreateVertexBuffer(a,D3DUSAGE_WRITEONLY,D3D8T_CUSTOMVERTEX,
                                      D3DPOOL_MANAGED,&Triangulo);      
                                                     
 
 
if(FAILED(hr)){
     Error_Fatal(
"Error al crear el buffer del triangulo");
  }

 

  hr=Triangulo->Lock(0,
// Offset(Desplazamiento), 0 por que queremos empezar desde el inicio
                      0,
// Tamaño de bloqueado, 0 significa bloquear todo el buffer
                      &vb_vertices,
// Si es exitoso eso apuntará a la memoria que deseamos
                      0);  
//Banderas, nada en especial

 
 
if(FAILED(hr)){
     Error_Fatal(
"Error bloqueando el buffer del triangulo");
  }
 
 
// vb_vertices ahora apunta hacia el buffer que deseamos, ahora copiamos los datos
  memcpy(vb_vertices, Triangulo_vertices, a );

 
// Desbloqueamos el buffer
  Triangulo->Unlock();


}



                               





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.