Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Version Allegro De Mi Proyecto

Iniciado por StraT, 19 de Agosto de 2004, 11:09:42 AM

« anterior - próximo »

StraT

 Hola a todos.

He de decirlo: me he cansado de sdl... todo el rato has de usar librerias externas, algunas de ellas que no funcionan bien o almenos yo no se usarlas, como ttf, asi que me he decidido por allegro. Lo que llevo hecho es simplon, la nave se mueve como antes pero ahora sale un mapa aleatorio, un mar con islas. Deberian salir 3 tipos de islas pero por alguna razon la funcion rand() no hace el resultado esperado. Ruego que alguien pueda mirar esa funcion a ver que hay mal. Tambien se nota un tintineo de la pantalla, si alguien ve el motivo...

Como siempre estoy abierto a criticas y sugerencias, sobretodo criticas, ;)

Un saludo

El archivo:

http://www.mundosgm.com/Allegro-0.01a.rar
quot;Solo hay dos cosas infinitas, el universo y la estupidez humana, aunque de lo primero no estoy muy seguro\\\" Einstein

manko

 Mi WinRar no consigue descomprimir ese archivo, como si estuviera corrupto.

Es solo a mi?

ethernet

 C:\WUTemp>unrar e Allegro-0.01a.rar

UNRAR 3.00 beta 7 freeware      Copyright © 1993-2002 Eugene Roshal


Extracting from Allegro-0.01a.rar


alleg40.dll already exists. Overwrite it ?
[Y]es, [N]o, [A]ll, n[E]ver, [R]ename, [Q]uit A

Extracting  alleg40.dll                                               OK
Extracting  main.cpp                                                  OK
Extracting  main.o                                                    OK
Extracting  SS2DLFrame.cpp                                            OK
Extracting  SS2DLFrame.h                                              OK
Extracting  SS2DLFrame.o                                              OK
Extracting  SS2DLMakeGameContext.cpp                                  OK
Extracting  SS2DLMakeGameContext.h                                    OK
Extracting  SS2DLMakeGameContext.o                                    OK
Extracting  SS2DLSprite.cpp                                           OK
Extracting  SS2DLSprite.h                                             OK
Extracting  SS2DLSprite.o                                             OK
Extracting  Final project.dev                                         OK
Extracting  Final project.exe                                         OK
Extracting  Final project.ico                                         OK
Extracting  Final project.layout                                      OK
Extracting  Final_project_private.h                                   OK
Extracting  Final_project_private.rc                                  OK
Extracting  Final_project_private.res                                 OK
Extracting  Makefile.win                                              OK
Extracting  avion.bmp                                                 OK
Extracting  chip1.bmp                                                 OK
Extracting  chip2.bmp                                                 OK
Extracting  chip3.bmp                                                 OK
Extracting  chip4.bmp                                                 OK
All OK

C:\WUTemp>


pero no me rula, arranca y se va la pantalla

StraT

 Puede ser que este corrupto el rar, :S, muy raro, os pongo un zip:

http://www.mundosgm.com/Allegro-0.01a.zip
quot;Solo hay dos cosas infinitas, el universo y la estupidez humana, aunque de lo primero no estoy muy seguro\\\" Einstein

Lord Trancos 2

 Definitivamente el fichero RAR no esta muy bien.

Yo he conseguido descomprimirlo con el Total Commander, pero me ha hecho cosas raras.

Funcionar me funciona.

Respecto a pq Rand te falla.... ni idea, pero podria ser pq solo te devuelve valores entre 0 y 1, y por eso solo sale agua y la isla 1. Lo has debugeado?

Y los parpadeos negros tambien me los pega.... aunque solo al principio... no tengo ni idea de que puede ser.... ¿te los pega tambien aunque pongas el juego en modo ventana?




on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

Lord Trancos 2

 Ya se pq te falla lo de las islas

Citar
            if(randn == 1)
           
            {
               
                map
  • [y] = chip1;
                   
                }
               
                if(randn == 2)
               
                {
                   
                    map
  • [y] = chip2;
                   
                }
               
                if(randn == 3)
               
                {
                   
                    map
  • [y] = chip3;
                   
                }
               
                else
               
                {
                   
                    map
  • [y] = chip4;
                   
                }       
Al final le estas diciendo que si no es 3 es agua.
Por eso te saca siempre la isla 3 y el agua.

Podrias solucionarlo asi...

Citar
            if(randn == 1)
           
            {
               
                map
  • [y] = chip1;
                   
                }
               
                else if(randn == 2)
               
                {
                   
                    map
  • [y] = chip2;
                   
                }

                else if(randn == 3)
               
                {
                   
                    map
  • [y] = chip3;
                   
                }
               
                else
               
                {
                   
                    map
  • [y] = chip4;
                   
                }       
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

StraT

 He hecho esto:


           if(randn == 1)
         
           {
             
               map
  • [y] = chip1;
                 
               }
             
               else if(randn == 2)
             
               {
                 
                   map
  • [y] = chip2;
                 
               }

               else if(randn == 3)
             
               {
                 
                   map
  • [y] = chip3;
                 
               }
             
               else if(randn != 1 && randn != 2 && randn != 3)
             
               {
                 
                   map
  • [y] = chip4;
                 
               }


    Y ya funciona bien, mil gracias LordTrancos. Ahora he puesto la version corregida y ademas de 24bits en ventana, parpadea menos pero igualmente parpadea... sigo escuchando criticas. Gracias y un saludo a todos

    http://www.mundosgm.com/Allegro-0.01a.zip
quot;Solo hay dos cosas infinitas, el universo y la estupidez humana, aunque de lo primero no estoy muy seguro\\\" Einstein

sés

 Mejor utiliza un switch:
switch( randn ) {
   case 1: map[x][y] = chip1; break;
   case 2: map[x][y] = chip2; break;
   case 3: map[x][y] = chip3; break;

   default: map[x][y] = chip4;
}



== Edit ==
Te sobra el último if. Está claro que si ha llegado ahí es porque no es ninguno de los valores anteriores.
Soy indeciso... ¿o no?

StraT

 Ya lo he puesto con el codigo de ses, funciona bien igualmente. Me he fijado que los parpadeos se deben ni mas ni menos que al messenger, :S, o en su defecto, a la actualizacion del escritorio producida por el parpadeo de la barra de tareas cuando una aplicacion hace algo y no tiene el foco... no lo entiendo pero parece asi. Probar a ejecutarlo con el messenger apagado y vereis...

Un saludo
quot;Solo hay dos cosas infinitas, el universo y la estupidez humana, aunque de lo primero no estoy muy seguro\\\" Einstein

Lord Trancos 2

 
Cita de: "StraT"Ya lo he puesto con el codigo de ses, funciona bien igualmente. Me he fijado que los parpadeos se deben ni mas ni menos que al messenger, :S, o en su defecto, a la actualizacion del escritorio producida por el parpadeo de la barra de tareas cuando una aplicacion hace algo y no tiene el foco... no lo entiendo pero parece asi. Probar a ejecutarlo con el messenger apagado y vereis...

Un saludo
Me imaginaba algo asi.... por eso te preguntaba si te pasaba al tener el programa en una ventana.

Yo no tengo el messenger; pero tengo el zonealarm y el taskmanager que tienen iconos que se actualizan en el tray.

EDIT: la ultima version que has puesto no me va.
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

StraT

 Yo tambien tengo el zonealarm y sin embargo ese no me da problemas... es un error un poco extraño, por cierto, la ultima version si que me va, he probado de descargala y todo, que problema tienes?

Un saludo
quot;Solo hay dos cosas infinitas, el universo y la estupidez humana, aunque de lo primero no estoy muy seguro\\\" Einstein

Lord Trancos 2

 Pos algo raro pasa, pq la vieja (la del rar) tampoco me va ahora  <_<

Basicamente lo que sucede es que el programa arranca y cuando a duras penas se ha puesto a pantalla completa se cierra. Vamos dura un parpadeo.
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

StraT

 :S, borra las que tengas y vuelvela a descargar de 0 a ver... no sea que se este sobreescribiendo mal o algo

Un saludo
quot;Solo hay dos cosas infinitas, el universo y la estupidez humana, aunque de lo primero no estoy muy seguro\\\" Einstein

Lord Trancos 2

 No, no era problemas de sobreescribir mal algo.

De hecho, he reiniciado, me lo he vuelto a bajar, lo he descomprimido en una carpeta nueva y sigue sin ir  :huh:  
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

Mars Attacks

Cita de: "sés"Te sobra el último if. Está claro que si ha llegado ahí es porque no es ninguno de los valores anteriores.
Ciertamente, Strat, parece que necesitas un poco más de base algorítima antes de ponerte a programar.






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.