Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Temas - Guillermo575

#1
Hola aqui volviendo a molestar abri este tema por que tengo una duda acerca de los Thread que vienen en la libreria sdl, el problema no es tanto por la sintaxis si no que cuando quiero hacer que un hilo llame el metodo de una clase no me deja compilar. aqui esta un ejemplo de como mas o menos quiero que sea:

#include <stdio.h>
#include <stdlib.h>;
#include <SDL/SDL.h>
using namespace std;

class clase{
public : clase(){
SDL_Thread *hilo;
//hilo=SDL_CreateThread(run,NULL);
}

public :int run(void *data){
while(1>0)metodo();
return 0;
}

public :void metodo(){}
};

int main(int argc, char *argv[]){}


Si se dan cuenta en donde dice run es lo que quiero que sea el hilo para que asi pueda acceder a los metodos de esa misma clase.

¿por que lo quiero asi?
Por que quiero hacer un juego y ese hilo corresponde al del personaje que voy a usar para los procesos de validacion/movimiento y repintado, por eso necesito llamar a metodos de una clase pero no me deja hacer eso,ni siquiera me deja que el metodo run este dentro de una clase, asi que necesito su ayuda por favor
Saludos
#2
Hola, escribo por un problema que tengo con la libreria sdl:
Segun lei en internet el sdl_mixer es capaz de reproducir desde midi a mp3, el problema es que cuando reproduzco midi me funciona, pero cuando intento reproducir un archivo mp3 no me lo reproduce y me tira error.
El codigo es este:
Cita de: Guillermo575
#include <stdio.h>
#include <stdlib.h>;
#include <SDL/SDL.h>
#include <SDL/SDL_mixer.h>

int main(int argc, char *argv[])
{
   SDL_Surface *screen;
   Mix_Music *cancion;
   SDL_Event event;
   int salir = 0;
   
   screen = SDL_SetVideoMode(320, 240, 16, SDL_HWSURFACE);


   if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024) == -1)
   {
      printf("Error en Mix_OpenAudio: %s\n", Mix_GetError());
      return 1;
   }

   cancion = Mix_LoadMUS("music.mid");

   if (!cancion)
      printf("Error en Mix_LoadMUS: %s\n", Mix_GetError());

   if (cancion)
   {
      if (Mix_PlayMusic(cancion, -1) == -1)
         printf("Error en Mix_PlayMusic: %s\n", Mix_GetError());
   }

   while (! salir)
   {
      SDL_PollEvent(&event);

      if (event.type == SDL_QUIT)
         salir = 1;

      SDL_Flip(screen);
      SDL_Delay(10);
   }

   if (cancion)
   {
      Mix_HaltMusic();
      Mix_FreeMusic(cancion);
   }

   Mix_CloseAudio();
   SDL_Quit();
   return 0;
}

Lo unico que hace es abrir una ventana y reproducir la cancion que esta dentro de la carpeta
En donde dice
   cancion = Mix_LoadMUS("music.mid");
remplacen "music.mid" con el nombre de algun midi que tengan y luego con un mp3
¿les paso lo mismo u otra cosa?
Saludos
#3
Programación C/C++ / Colisiones en juego SDL
25 Marzo 2011, 07:13 AM
Hola, estoy programando un juego que tenia en java pero ahora lo estoy intentando con las libreria sdl de c++, intentando recrear algunos de los algoritmos ya hechos entre ellos el efecto de colisiones
Que es la vieja tecnica que consiste en tener una subimagen de fondo y todo lo colisionable estaba pintado de cierto color y con un metodo te devolvia el color de un pixel de ciertas coordenadas

El problema es que he buscado y buscado y no encuentro un metodo en el que:
Ponga como parametro un sdl_surface, las coordenadas del pixel que quiero saber y que me devuelva un valor del tipo sdl_color

y ya intente con el sdl_getRGB pero al parecer te descompone un color que tu le das en sus 3 componentes.
Espero que me respondan
#4
Hola, soy muy nuevo en el foro (de hecho solo me registre para publicar en este foro)pero llevo como 2 años en la carrera de programacion y llevo bastante experiencia en la programacion en java, tanto que he hecho mi propio juego en java y esta bastante bien (aunque le faltan muchos detalles) pero interrumpi el desarrollo por que me di cuenta de algo:

Que java jala demasiados recursos y mi juego gasta mucho del procesador, de hecho en la pantalla solo pinta una imagen en pantalla y ese repintado constante es lo que lenta la maquina

Un amigo lo vio y recomendo que cambiara de lenguaje a c y si, conozco la sintaxis pero desconozco totalmente sobre las librerias que maneja y mas aun de las graficas, en mi juego manejo solamente  contenedores de imagenes(BufferedImage en java) y uno que otro metodo de hacer cuadrados.

Igual voy a buscar algunas fallas de mi codigo para mejorar el rendimiento pero me parece mas interesante trabajar en ese lenguaje ya que  es el mas demandado a la hora de hacer juegos a si que les pediria ayuda no para que me enseñen si no que me recomienden/orienten sobre que debo de hacer si quiero programarlo en ese lenguaje
Saludos

PD:Intentare subir mas tarde un video en youtube sobre como es el juego, claro no esperen algo sofisticado o validado ya que esta en version pre-pre-pre-beta y le falta mucho desarrollo pero eso se debe a por lo mismo que estoy estancado con lo del problema antes mencionado