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

Mensajes - hylian

#1
Programación gráfica / Dudas Sdl
30 de Septiembre de 2005, 10:59:29 AM
 
Aqui la nave sin rotar




Aqui rotada apenas 2º, luego se deforma mucho mas.

El sprite es un BMP de 24bits de unos 10x30, con el fondo negro y en blanco la silueta de la "nave".

El codigo que uso para rotarlo es:


SDL_Surface *temp = rotozoomSurface(this->sprite, angulo, 1, 0);
SDL_FreeSurface(this->sprite);
this->sprite = temp;

dest.x = x; dest.y = y;
dest.w = sprite->w; dest.h = sprite->h;
SDL_BlitSurface(sprite, NULL, screen, &dest);
SDL_UpdateRects(screen, 1, &dest);


Siendo angulo una variable q cambia con el teclado.

Una cosa que puede provocar error es que dibujo el sprite en la misma posicion ( misma x y misma y ) que la del sprite sin rotar.
#2
Programación gráfica / Dudas Sdl
29 de Septiembre de 2005, 05:13:44 PM
 Bueno planteo aqui mas dudas :D

Estoy usando SDL_gfx para rotar sprites con SDL, pero la verdad es q en vez de rotar me deforma totalmente el sprite, estoy usando rotozoomSurface(...).

La superficie la cargo con SDL_LoadBMP(), sospecho que el problema viene por ahi.

Algunas sugerencia? :D
#3
Programación gráfica / Dudas Sdl
28 de Septiembre de 2005, 10:33:31 AM
 Bueno siguiendo con este tema de los temporizadores... que aun no lo tengo muy claro ( que torpe q soy :D )

Por lo que veo hay dos maneras:

- Usar una variable float que se calcule en funcion del ordenador y se use como factor de los movimientos, en este sistema ¿no hace falta usar temporizadores ni ticks una vez establecida la variable de velocidad?

- Calcular cada cuanto se llama al metodo de dibujar y en funcion de este tiempo limitar la ejecucion de dicho metodo, lo cual me crea una duda:

Supongamos que tenemos el siguiente codigo (sacado del enlace que me dio sés )

while ( ! gameover ) {
 ticks = SDL_GetTicks();
 delta_ticks = ticks - lastticks;
 lastticks = ticks;

 if ( delta_ticks < 25 ) {
   SDL_Delay(25-delta_ticks)
   ticks = SDL_GetTicks();
   delta_ticks = delta_ticks + ticks - lastticks;
   lastticks = ticks;
 }
}


Lo que estamos haciendo es limitar las veces en que se llama la funcion, entonces, ¿como medimos los fps? mas que nada por q si limitamos a 40fps, siempre tendremos 40fps, y ordenadores mas rapidos estarian mas tiempo en el Delay pero seguirian dando 40fps.

Ademas otra duda que me asalta es, 300fps no significa que la animacion vaya mas rapida, significa que todo vaya mas "suave", segun la idea que tengo ahora 300 fps seria que se ejecuta 300 el mainloop del juego, con lo que iria bastante rapido como para poder manejar el juego.

Toy un poco liado con este tema  (nooo)  (nooo)

A ver si me podeis hechar una manita :D

Saludos!
#4
Industria y mercado / Pago/compra Por Internet
28 de Septiembre de 2005, 09:24:48 AM
 Yo siempre uso la tarjeta y nunca ningun problema, eso si hay que asegurarse que donde se compra es un sitio de fiar, aun asi pagando con tarjeta puedes devolver el pago en el banco en un plazo que depende del banco.

Fijate como han dicho por ahi arriba de siempre pagar en sitios cifrados, esto se sabe por que suele salir un candadito en la parte inferior. Ademas si pinchas en el candadito puedes ver el certificado de la empresa en cuestion.

Sobre el tema de las tarjetas yo suelo pagar con una tarjeta de esas que puedes recargar, asi metes el dinero que necesitas y pagas con ella, aunque muchas veces he usado la tarjeta normal :)

Ambas son visa electron y nunca he tenido ningun problema :)
#5
Off-topic / ¿a Qué Estais Jugando?
27 de Septiembre de 2005, 11:44:31 PM
 Pues ahora que he visto este post...

Yo toy jugando a :

GT4 -> Los clasicos nunca mueren
Baten kaitos ( NGC ) -> un buen RPG con un sistema de lucha curioso
Forza Motorsports -> Me encantan los coches :)


Para una rapida

OutRun2, Soul Calibur 2 o Wario Ware DS

La racion de deportes con:

ESPN NFL 2k5 y PES 4

En portatiles:

MGS AC!D o Castlevania Dawn of Sorrow

y como no siempre se saca algun tiempecillo para jugar al MAME y a la SNES o la Mega Drive ( En el curro claro :D )

Son bastantes juegos pero realmente los 3 primeros son los que mas uso, los otros son para juegos rapidos o cuando hay ganas de jugar algun partidillo
#6
General Programadores / C# Flight Simulator
27 de Septiembre de 2005, 11:30:36 PM
 Quizas viendo esto, algunos volveran a crear en la viabilidad de JOGL y Java3D :D

Saludos!
#7
Programación gráfica / Dudas Sdl
27 de Septiembre de 2005, 01:58:43 PM
 TheAzael, he visto en el codigo la llamada a Update() del ITimeSystem

¿Como haces tu en el engine el control de tiempos?

A todo esto, ¿es GPL tu libreria?, se puede obtener el código fuente?

Saludos!
#8
Programación gráfica / Dudas Sdl
27 de Septiembre de 2005, 11:13:16 AM
 
Cita de: "sés"
Cita de: "hylian"- ¿Cómo hago para que la pulsacion continuada de una tecla produzca movimiento?
SDL_GetKeyState() debería darte lo que quieres, pero me huelo que no la usas como deberías.
Esta función te devuelve el estado del teclado O sea, te dice que teclas están pulsadas en el momento de la llamada. Y me da que tú las estás usando dentro del evento de "tecla pulsada".


A ver si te he aclarado algo.
De momento solo he mirado esto, y llevabas razon, tenia el GetKeyState dentro del "if" del PollEvent, entonces claro solo se llamaba cuando habia un evento.

Ahora ya funciona, voy a ver si miro las otras dos cosas, aunque el tema de los ticks y esas cosas parece complejo  :wacko:  
#9
Programación gráfica / Dudas Sdl
27 de Septiembre de 2005, 10:36:51 AM
 Hola!

Bueno ya he empezado con el primer proyecto, y como recomendais, estoy usando algo light ( SDL ) y estoy haciendo un clon de un juego clasico ( Asteroids :D )

Pense en usar un motor como CRM32Pro, pero como quiero que esto sea solo el inicio me meti de lleno con SDL para intentar aprender mejor las cosas :)

Sin embargo que surgen unas cuantas dudas que, aunq estoy buscando por inet me gustaria que me dierais vuestros consejos. Empezamos :D

- ¿Cómo roto un Sprite?, hasta ahora con SDL_image o con SDL normal cargo un sprite en un surface, pero me gustaria saber como roto esa surface para orientar la nave principal.

- ¿Cómo implemento un limitador de tiempo?, bueno realmente no se si se llama asi, la idea es tener algo que llame al metodo de dibujar 30 o 60 veces por segundo, y ademas si fuera capaz de calcular los FPS que estoy teniendo seria genial. Hasta ahora consulto si hay eventos y si no hay llamo al render, lo cual no es q sea muy bueno.

- ¿Cómo hago para que la pulsacion continuada de una tecla produzca movimiento?, uso SDL_GetKeyState y con "ifs" compruebo si la posicion del array correspondiente a la tecla esta activada, sin embargo solo con eso si dejas pulsada la tecla no se detecta. Viendo la API he visto SDL_EnableKeyRepetat () que activa la repeticion de teclas, en principio funciona, pero no se si es el camino a seguir :)

Supongo que son dudas tipicas, prometo que he intentado buscar por el foro, pero como SDL tiene menos de 4 letras no me deja hacer la busqueda y cuando pongo "añadidos" no encuentro nada que me solucione esto.  :D

Saludos!
#10
General / Presentacion
23 de Septiembre de 2005, 10:40:33 PM
 Muchas gracias Ray :D

Esto es precisamente lo que necesito para empezar con exito en este mundillo. Los conceptos tecnologicos ( lenguaje, OO, ... ) no me faltan, pero siempre he considerado que hacer un juego ( como tu dices ) no se parece en nada a un programa tipico informatico ( ya sea un programa de control de ventas o un driver de una impresora en linux... )

Lo dicho muchas gracias :D
#11
General / Presentacion
23 de Septiembre de 2005, 04:20:10 PM
 
Cita de: "Ray"Lo único que se me ocurre para que un programa de videojuego no acabe por ser intratable es separarlo todo bien y aislar todo de todo, y comunicarlo entre sí por medio de funciones o métodos que se limiten a recibir o a obtener datos de una manera coherente y lógica. y este punto es donde creo que se debería prestar atención y preparar todo bien antes de empezar a programar. Saber que va a hacer cada cosa y que información deberá recibir o devolver.

De esta forma al menos una serie de errores en diversos puntos no echará abajo todo el proyecto. y por supuesto hay que pensar y preveer al hacerlo que cualquier modificación que hagamos en cualquier parte en el futuro, no debería afectar lo más mínimo al resto del programa.

Aunque como ha dicho Colson2 al final lo que cuenta es la experiencia para no cometer los mismos errores. Por eso tampoco creo que importe mucho embarcarnos en cualquier proyecto personal si se hace simplemente para aprender, se espabila bastante metiendo la pata una y otra vez, y siempre piensas... la próxima vez no me volvera a pasar esto.  (grrr) .......  :D
Siempre lo mejor es aprender de tus propios errores, pero la verdad que en estos momentos me siento incapaz incluso de hechar a andar. Si por algun lado empezaria seria siguiendo un plan de "repetir (capturar_entrada, procesar, dibujar)", sin embargo esto me hace sospechar que la captura de la entrada no sera muy buena si se ralentiza el proceso con el proceso y el dibujo. Ya la sola captura de entrada me hace pensar si es eficiente el estar comprobando si una tecla ha sido pulsada en cada momento.

Una vez en el diseño del juego, siempre me entra la duda si cada "objeto" del juego deberia tener su clase, y si el codigo de pintar dicho "objeto" del juego deberia ser un metodo de dicha clase.

Bueno etc etc... supongo que todo esto se despejara cuando me ponga a picar como dios manda, la cosa es tener un poco pensado el tema para no sentarme delante del DevC++ o del VSC++ y no saber que hacer :)

Ademas aunque se me ocurra algo, siempre tengo la virtud o el defecto de pensar que como yo lo hago no es la forma mas optima y me fastidia por que si realmente existe una forma aceptada globalmente de hacer ese algo me gustaria conocerla y usarla. Por poner un ejemplo: crear una estructura de clases que se adapte a una base de datos, y que permita abstraer la etapa de la consulta del usuario final. A mi se me podria ocurrir de una forma, pero sabiendo que existe el patrón DAO ( por ejemplo ), pues se usa que al fin y al cabo esta diseñado por mucha gente que lo ha probado y se ha demostrado que es valido. En mi sector, se buscar lo que quiero, el problema es que en este mundo, no se ni que buscar  :blink:

Saludos y gracias a todos por los mensajes :)
#12
General / Presentacion
23 de Septiembre de 2005, 12:59:56 PM
 
Cita de: "CoLSoN2"Si tu problema es sobre cómo estructurar el código de un juego en CódigoVerde tienes una serie de tutoriales paso a paso sobre cómo crear un juego sencillo.
Parece que esta caida la web :mellow:

He podido ver el capitulo 3 por el cache de google pero tiene muy buena pinta :D

Espero que se arregle pronto
#13
General / Presentacion
23 de Septiembre de 2005, 12:49:44 PM
Cita de: "Snakers"Salu2 hylian y Bienvenido..
Nunca e programado con OpenGl pero no creo que sea la
mejor opcion para empezar..
Yo uso la biblioteca Allegro,que es muy facil para
programar videojuegos,pero tambien existe SDL que tambien
dicen que esta muy bien,yo me decanto mas por Allegro.
Suerte y haber si vemos un juego tuyo pronto!! (ole)
Ahora que mencionas allegro me acuerdo de haberlo usado cuando aun no era GLP, lo usaba en win98 con el rhide y el djgpp ( o algo asi se llamaba ), tambien he trasteado algo con SDL :)

Realmente otra duda de las que me asalta, es q narices hacen las plataformas de desarrollo de juegos ( game engines ), estilo Irrlitch y tal. Que son como el extinto Div games studio?.

Saludos! :)
#14
General / Presentacion
23 de Septiembre de 2005, 12:38:14 PM
 Hola llevo tiempo entrando en el foro y por fin me he decidido a registrarme, para daros un poco la vara :D

Desde siempre he querido hacer un videojuego, de hecho soy bastante aficionado a ellos desde pequeñito, siempre he estado "al otro lado" jugando y jugando sin parar, desde el spectrum hasta la xbox pasando por toda la generacion de consolas y pc que ha salido entre medias :)

Ahora estoy decidido a hacer un jueguecillo, espero que al final lleve a buen puerto la idea, desde luego la cosa es empezar por algo sencillo, como bien he leido embarcarse en algo mayor es tarea imposible sobre todo con mis conocimientos de programacion y diseño de juegos.

Realmente un mar de dudas me asaltan, no tanto del aspecto de programacion ( aunq c++ siempre me parecio demoniaco en parte por las famosas practicas de la carrera :D ) si no mas bien por el aspecto de COMO se hace un juego. Evidentemente las cosas se pueden hacer por el camino de "enmedio" pero creo que desde el principio conviene hacer las cosas bien y de una forma ordenada :)

Yo curro en el dia a dia desarrollando en Java webs y aplicaciones para la empresa, y si algo me ha dicho la experiencia es que las cosas que se hacen sin pensarlas el suficiente tiempo antes y dejando bien claro el principio y el fin ( aunque luego este fin se sobrepase una y otra vez... ) no llegan a buen puerto, o si llegan al final son una cosa intratable que acaba por desecharse.

De momento estoy mirando cosas en opengl, no creo que sea una buena opcion para empezar el desarrollo de un juego pero bueno el libro estaba libre en la biblioteca, mas que nada lo estoy leyendo para coger conceptos y llevarlos a la practica en forma de pelotitas rebotando y cosas asi :)

Bueno seguiremos mirando cosas y ya os dare la brasa con preguntitas :D

De momento estoy intentando desempolvar mis conocimientos de C++ que de tanto programar en Java uno se olvida de lo que era el arduo dia a dia con C++ :)

Saludos!





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.