Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Demo de la libreria Allegro.pas (https://www.clubdelphi.com/foros/showthread.php?t=49474)

Ñuño Martínez 22-10-2007 23:46:46

Demo de la libreria Allegro.pas
 
Aquí voy a pedir ayuda a los miembros más atrevidos del club. A aquellos que no se avergüenzan de sus aficiones y gustos. ;)

Acabo de terminar, como quien dice, con el juego de demostración de la librería Allegro.pas. La idea es que sirva a los novatos y aficionados como punto de partida para saber cómo utilizar la librería en sus propios proyectos.

Lo que quiero saber, más que si el juego es divertido o no, que sé que lo es :D, es si se entienden los comentarios que hay en el código fuente. Ya aviso que están en inglés, así que deberán abstenerse los monolingües.

Zip file (~1.5 Mb). La ruta del archivo es provisional, pero el proyecto se hospeda en sourceforge.

Gracias.

[p.s]¡Un mensaje con dos diéresis! estoy que me salgo :cool:

[edit] Nueva versión con arreglos.

egostar 23-10-2007 00:00:24

Hey amigo Ñuño, se ve bien, pero :rolleyes:, no se puede poner algo como skip, es que me canse de ver los créditos.

Lo voy a ver bien y te doy mis comentarios,

In the middle time here is the [¨] you have been expected. :D:D:D

Salud OS

dec 23-10-2007 00:45:50

Hola,

Muy curiosa la demostración Ñuño. :)

Cita:

Empezado por egostar
Hey amigo Ñuño, se ve bien, pero , no se puede poner algo como skip, es que me canse de ver los créditos.

Puedes pulsar la tecla "Espacio" para comenzar el juego. :)

egostar 23-10-2007 01:04:04

Cita:

Empezado por dec (Mensaje 240425)
Hola,

Muy curiosa la demostración Ñuño. :)



Puedes pulsar la tecla "Espacio" para comenzar el juego. :)

:D:D:D, pues si, lo vi hasta después de postear mi comentario, pues nada, esta curioso el asunto, pero vaya que soy malo para esto de los juegos, me ha costado trabajo conseguir "COINS", esa nariz del lagarto es muy larga, :D:D

Salud OS

Caral 23-10-2007 03:02:50

Hola
Muy bueno ÑuÑo, esta muy bien la idea y se ve animado.
La única observación para los malos en esto de los juegos es dar tres oportunidades y que las explosiones no afecten al cocodrilo si esta a cierta distancia.
Por lo demás lo único que pude hacer son 6, así que bien malo en esto.
Esta estupendo, muy bueno, te felicito, no me sorprende de un maestro como tu.
Saludos

Héctor Randolph 23-10-2007 03:27:59

Hola Ñuño.

Antes que nada quiero felicitarte por tu trabajo, yo sé que le has dedicado mucho tiempo, y sobre todo has sido muy perseverante.

Con respecto al código demo, acabo de revisarlo y me parece muy familiar porque hace algún tiempo utilicé Allegro pero con lenguaje C. Los comentarios me han resultado claros y creo que logran su objetivo.

Espero que próximamente pueda tomarme algo de tiempo para desarrollar algún mini juego o traducir alguno de los que tengo hechos.

Mi primera duda es ¿como inicio un ¡Hola Mundo! desde Delphi7 con Allegro?, ¿tengo que comenzar con una aplicación en consola? También tengo instalado Free Pascal ¿cuál me recomiendas?

Saludos

Ñuño Martínez 23-10-2007 14:49:44

Graaaaciassss
 
Gracias por los comentarios. Estas cosas hacen que me hinche como una gallina clueca. :)
Cita:

Empezado por [egostar
pero vaya que soy malo para esto de los juegos, me ha costado trabajo conseguir "COINS", esa nariz del lagarto es muy larga,

Cita:

Empezado por Caral (Mensaje 240439)
La única observación para los malos en esto de los juegos es dar tres oportunidades y que las explosiones no afecten al cocodrilo si esta a cierta distancia.

De verdad que he estado tentado de hacerlo, pero como a mi me parecía muy fácil pues al final no lo hice. Por lo visto soy demasiado bueno :cool:;):D así que en la versión definitiva daré a Álex tres vidas.

Lo de la distancia, pues es porque la colisión se comprueba mediante cuadrados y no es perfecta (Sí, la nariz del lagarto es muyyyyy larga ;)).
Cita:

Empezado por Héctor Randolph (Mensaje 240443)
Con respecto al código demo, acabo de revisarlo y me parece muy familiar porque hace algún tiempo utilicé Allegro pero con lenguaje C. Los comentarios me han resultado claros y creo que logran su objetivo.

Me quitas un gran peso de encima. :)
Cita:

Empezado por Héctor Randolph (Mensaje 240443)
Mi primera duda es ¿como inicio un ¡Hola Mundo! desde Delphi7 con Allegro?, ¿tengo que comenzar con una aplicación en consola? También tengo instalado Free Pascal ¿cuál me recomiendas?

Primero, evidentemente, descargarse e instalarse el paquete entero, porque el Zip que incluyo sólo contiene el juego. Te recomiendo el paquete binario para Windows (en mi primer mensaje está el enlace).

Luego sí, el proyecto debe ser de consola. En cuanto a utilizar Delphi o Free Pascal depende de gustos, ya que si el maestro Seoane no se equivoca, es posible utilizarlo en Delphi sin muchos problemas.

marcoszorrilla 23-10-2007 15:05:04

Excelente Ñuño. En cuanto a los posibles cambios o mejoras. Si tienes sobrinos, hijos o algún familiar de corta edad, lo mejor déjate aconsejar por él.

Recuerdo un refrán griego que traducido al español decía más o menos:

Los niños y el vino la verdad.


Un Saludo y ánimo.

Delphius 23-10-2007 17:11:19

Nuño... eres culpable de hacer un juego terriblemente adictivo:D:). No se porqué dicen que es dificil, a mi me ha estado resultando fácil ¿Será de tanto jugar Mario Bros de chico?:rolleyes:

Esta muy bueno. Siempre tuve curiosidad por la libreria... Si dices que puede utilizarse en Delphi sin problemas... debe ser así.. yo la pruebo en Delphi 6.

Saludos,

egostar 23-10-2007 19:52:23

Cita:

Empezado por Delphius (Mensaje 240560)
Nuño... eres culpable de hacer un juego terriblemente adictivo:D:). No se porqué dicen que es dificil, a mi me ha estado resultando fácil ¿Será de tanto jugar Mario Bros de chico?:rolleyes:

Esta muy bueno. Siempre tuve curiosidad por la libreria... Si dices que puede utilizarse en Delphi sin problemas... debe ser así.. yo la pruebo en Delphi 6.

Saludos,

Amigo Delphius, es la edad, preguntale a Carlos y verás, seguramente él ni siquera ha podido capturar una sola "COIN" :D:D:D

Salud OS

Caral 23-10-2007 20:01:12

Hola
Como es que el viejito del club me llama viejo, no puede ser, hay algun arbitro.:D
Hice 6 coin en tres oportunidades, todo un record.
Espera a que mi hija lo juegue, después que salga de exámenes, a ver quien hace mas coins, va el reto.:D:D, ella me representa.
Ñuño, pon orden.:D;)
Saludos

egostar 23-10-2007 20:03:50

Cita:

Empezado por Caral (Mensaje 240591)
Hola
Como es que el viejito del club me llama viejo, no puede ser, hay algun arbitro.:D
Hice 6 coin en tres oportunidades, todo un record.
Espera a que mi hija lo juegue, después que salga de exámenes, a ver quien hace mas coins, va el reto.:D:D, ella me representa.
Ñuño, pon orden.:D;)
Saludos

Eso comprueba mi teoría, el problema es la edad, verdad viejito :D:D:D

Salud OS

Caral 23-10-2007 20:10:49

Hola
Vas a seguir, esto ya es personal:D, Ñuño, este juego no lo tienes para jugarlo por internet, este reto ya esta prendido, el Viejito me esta retando:eek::D
A ver, pruebas, hay alguna manera de ver el marcador, estoy seguro que hago mas coins, eso si me dan unos dias de practica, no por la edad, por lo de novato:D:D:D.
Saludos

egostar 23-10-2007 20:14:23

Cita:

Empezado por Caral (Mensaje 240596)
Hola
Vas a seguir, esto ya es personal:D, Ñuño, este juego no lo tienes para jugarlo por internet, este reto ya esta prendido, el Viejito me esta retando:eek::D
A ver, pruebas, hay alguna manera de ver el marcador, estoy seguro que hago mas coins, eso si me dan unos dias de practica, no por la edad, por lo de novato:D:D:D.
Saludos

Esta hecho, pero que haya reglas, con webcam, para que no haya "mano negra" y te ayude tu hijita :D:D:D

Salud OS

Caral 23-10-2007 20:17:01

Hola
Desconfiado, eso es miedo.:D:D
Estoy de acuerdo, con aparatejos y todo:D:D
Viejito, tiembla:p
Saludos

eduarcol 23-10-2007 23:20:30

A ver viejitos desvirtualizadores de hilos, cual es el alboroto que tienen. Con la agilidad de ustedes lo que pueden es caerle a bastonazos al pobre cocodrilo y asi cualquiera agarra moneditas.

Y almacenar el score por internet??, pero digame eso, apenas si deben saber como se paga el internet mucho menos utilizarlo.

dejenle este asunto a nosotros los carajitos :D:D

jejejeje, a ver si calman los animos

Ñuño Martínez 23-10-2007 23:55:33

¡Haya paz! A ver si voy a ser responsable de una o dos desgracias, y no quisiera yo eso.

Lo cierto es que el objetivo del juego era servir de ejemplo a la gente que empieza a utilizar la librería, como referente al cual consultar, lo de ser adictivo y divertido es secundario (aunque la culpa de esto último lo tiene más un tal Ken Silverman, al cual tomé prestada la idea y sale en los créditos). Aun así, tomo nota de la sugerencia de que lo jueguen niños. Por desgracia, todavía no he pillado a ninguno :(.

Cita:

Empezado por Delphius
No se porqué dicen que es dificil, a mi me ha estado resultando fácil ¿Será de tanto jugar Mario Bros de chico?

Seguramente, porque es muy similar. De todas formas, si es tan fácil (o difícil) siempre se puede utilizar el editor de mapas (incluído en el archivo) y crear mapas nuevos.

Por cierto: se puede hacer un poco de trampa. Mirad el código del archivo "config.pas", en concreto la línea 59.

Y, por favor, ¡no se me sulfuren! ;):D

egostar 24-10-2007 00:02:57

Cita:

Empezado por Ñuño Martínez (Mensaje 240645)
¡Haya paz! A ver si voy a ser responsable de una o dos desgracias, y no quisiera yo eso.

Lo cierto es que el objetivo del juego era servir de ejemplo a la gente que empieza a utilizar la librería, como referente al cual consultar, lo de ser adictivo y divertido es secundario (aunque la culpa de esto último lo tiene más un tal Ken Silverman, al cual tomé prestada la idea y sale en los créditos). Aun así, tomo nota de la sugerencia de que lo jueguen niños. Por desgracia, todavía no he pillado a ninguno :(.


Seguramente, porque es muy similar. De todas formas, si es tan fácil (o difícil) siempre se puede utilizar el editor de mapas (incluído en el archivo) y crear mapas nuevos.

Por cierto: se puede hacer un poco de trampa. Mirad el código del archivo "config.pas", en concreto la línea 59.

Y, por favor, ¡no se me sulfuren! ;):D

No hay problema, entiendo a mi buen amigo Carlos, la edad le hace ser agresivo. :D:D:D

Respecto a Eduardo, pues si que nos dió con la cubeta, ya ajustaremos cuentas con él :D:D:D

Salud OS

eduarcol 24-10-2007 00:06:57

Cita:

Empezado por egostar (Mensaje 240648)
No hay problema, entiendo a mi buen amigo Carlos, la edad le hace ser agresivo. :D:D:D

Respecto a Eduardo, pues si que nos dió con la cubeta, ya ajustaremos cuentas con él :D:D:D

Salud OS

con que?? con el baston o con la silla de ruedas?? :D:D:D

Ñuño Martínez 24-10-2007 13:46:12

También terminé la página web
 
Entre ayer y hoy he reescrito la web del proyecto. Ya que el juego les ha gustado, ¿podrían echarle un vistazo y contarme qué les parece, si está claro o no de qué trata el proyecto y cómo conseguir más información al respecto?

Está aquí.

Delphius 25-10-2007 16:56:40

Hola Nuño! Quise probar lo que ofrece Alegro y me he dado con unos errorsitos pequeños.
No se lo que hice estará bien, intenté correr el proyecto del demo.
Para ello hice esto:
1. Copiar las dll al \system32
2. Añadir al Search Path el directorio lib

Bueno, quise probarlo y me topé con esto:
Código:

[Warning] alfixed.pas(99): Combining signed and unsigned types - widened both operands
[Error] aljstick.pas(153): Undeclared identifier: 'STRPAS'
[Fatal Error] demo.dpr(25): Could not compile used unit 'aljstick.pas'

Tal vez hice mal... o es a lo mejor la versión de Delphi que uso (6).
Porque si dicen que funciona en Delphi... el error soy yo.

NOTA: Empleando la última versión disponible de Alegro (allegro.pas-4.2.1b4-src-pas)

No sabía si reportar esto por aquí, en el sitio de Alegro...
Si puedes darte una vuelta (o algún otro iluminado) corrige a este curioso idiota (lo digo por mi)

Muchas gracias.
Saludos,

Ñuño Martínez 25-10-2007 19:16:36

Código:

[Warning] alfixed.pas(99): Combining signed and unsigned types - widened both operands
[Error] aljstick.pas(153): Undeclared identifier: 'STRPAS'
[Fatal Error] demo.dpr(25): Could not compile used unit 'aljstick.pas'

¡Repámpanos! No debería dar error, porque STRPAS es del lenguaje Pascal de toda la vida, o eso pensaba yo. :confused:

Da lo mismo. El aviso de alfixed.pas puede obviarse (creo :rolleyes:). Simplemente avisa de que va a utilizar un tipo de dato diferente al puesto para evitar errores de desbordamiento.

El de aljstick.pas tiene fácil solución: elimina STRPAS en esa línea y que asigne diréctamente la variable TMP. Error no da y parece funcionar correctamente. Si aparece más veces pues lo mismo, pero avísame.

Delphius 25-10-2007 20:33:21

OK.
Te mantendré al tanto si surgen otras "novedades"
Probaré lo que comentas en algún tiempo libre que pueda darme.

Saludos,

egostar 25-10-2007 20:40:39

Cita:

Empezado por Delphius (Mensaje 241203)
OK.
Te mantendré al tanto si surgen otras "novedades"
Probaré lo que comentas en algún tiempo libre que pueda darme.

Saludos,

Esto que comentas es después de algún nivel :confused:, yo solo he podido capturar a lo mas 5 monedas y no he tenido ningún problema, no se si hay mas niveles, uso WindowsXP Profesional, tengo instalado Delphi4.

Yo descompacte el zip en un solo directorio y nadamás.

Salud OS

Delphius 25-10-2007 20:45:54

Hola Egostar.
Lo que había comentado se debía a un error cuando he probando compilar la demo.

No me refería a un error del juego, mientras lo esuve jugando un rato no he visto error.

Saludos,

egostar 25-10-2007 20:47:41

Cita:

Empezado por Delphius (Mensaje 241211)
Hola Egostar.
Lo que había comentado se debía a un error cuando he probando compilar la demo.

No me refería a un error del juego, mientras lo esuve jugando un rato no he visto error.

Saludos,

A vaya, eso si es distinto, bueno, creo que debo ponerme a compilar y dejar de jugar :D:D:D

Salud OS

Héctor Randolph 26-10-2007 04:54:52

Hola nuevamente!

También estoy tratando de compilar el demo en Delphi 7. Lo primero es comentar que el problema con STRPAS, STRALLOC y STRDISPOSE se soluciona colocando en los uses la unidad SYSUTILS. Sin embargo, después de solucionar esto surge otros problema en la unidad tile.pas, en específico en la línea 72

Código Delphi [-]
  Palette := Data[TITLE_PAL].dat;

y más adelante en la línea 115

Código Delphi [-]
IF al_joy[0].button[0].b <> 0 THEN

Cita:

[Error] title.pas(72): Array type required
[Error] title.pas(115): Array type required
bueno, por aquí sigo investigando, a ver si pueden echarme una mano.

Saludos

dec 26-10-2007 05:23:19

Hola,

Echa un vistazo a este hilo Héctor.

Actualización: Ahí se ve que Seoane propuso algunas soluciones, que parecen estar implementadas ya en Allegro, empero, probando a compilar en Delphi 2007 aún aparecen los problemas que tú has mencionado Héctor, y no sé muy bien cómo podrían solucionarse, la verdad. Me temo que me he adelantado al enlazar el hilo como la solución a dichos problemas, digo. :o

Ñuño Martínez 26-10-2007 19:38:52

Menos mal que no se me a ocurrido decir que estaba terminado :rolleyes:. Ahora estoy liado con la documentación (acabo de subir nuevas secciones y correcciones ;)) pero cuando la termine, si no me lían con otra cosa, reviso todo lo que pongáis en este hilo a ver si puedo solucionarlo.

Por el momento, si hay problemas con los punteros a listas (Arrays), prueba poniendo el acento circunflejo a ver:
Código Delphi [-]
IF al_joy^[0].button[0].b <> 0 THEN

Puede que Free Pascal haga la conversión de forma automática pero Delphi no.

Gracias.

egostar 26-10-2007 20:59:42

Bueno, les dejo mis primeras observaciones.

Estoy usando Delphi4, al abrir Allegro.dpr me mandó un error de que la línea era muy larga, verificando el archivo encontré algo curioso, tuve que invertir los caracteres de LF y CR no recuerdo ahora como estaban pero los invertí de posición y ya pude compilarlo.

Al compilarlo me mando error de que no tenia una dcu.

Por desgracia no estoy en la maquina donde hice las pruebas para darte los detalles, pero en cuanto tenga acceso a esa computadora te los dejo saber.

Salud OS

Héctor Randolph 29-10-2007 07:01:39

Conseguí hacerlo funcionar en Delphi 7, aquí está la prueba

Para corregir el problema con los arreglos, la explicación que da la ayuda es la siguiente:

Cita:

[Error] title.pas(72): Array type required
[Error] title.pas(115): Array type required
Cita:

We try to apply an index to a pointer to integer - that would be legal in C, but is not in Delphi.

In The Delphi language, we must tell the compiler that we intend P to point to an array of integers.
A continuación pongo el código que tuve que modificar:

Código Delphi [-]
//  AL_DATAFILEptr = ^AL_DATAFILE;
  AL_DATAFILE = RECORD
    dat : AL_PTR;    { pointer to the data  }
    ftype : AL_INT;    { object type  }
    size : AL_INT;    { size of the object  }
    prop : AL_DATAFILE_PROPERTYptr; { object properties  }
  END;
  type
  TDataFile_Array = array [0..80] of AL_DATAFILE; // Se declara como un arreglo
  AL_DATAFILEptr =^TDataFile_Array; // Apuntador al arreglo



Código Delphi [-]
(* information about an entire joystick *)
//  AL_JOYSTICK_INFOptr = ^AL_JOYSTICK_INFO;
  AL_JOYSTICK_INFO = RECORD
    flags : AL_INT;
    num_sticks : AL_INT;
    num_buttons : AL_INT;
    stick : ARRAY [0..(AL_MAX_JOYSTICK_STICKS)-1] OF AL_JOYSTICK_STICK_INFO;
    button : ARRAY [0..(AL_MAX_JOYSTICK_BUTTONS)-1] OF AL_JOYSTICK_BUTTON_INFO;
  END;
type
  TJoyInfo_Array = array [0..100] of AL_JOYSTICK_INFO; // Se declara como un arreglo
  AL_JOYSTICK_INFOptr = ^TJoyInfo_Array; // Apuntador al arreglo

Por último envía un error en tiempo de ejecución en la línea que pone el título en la ventana, simplemente la comenté.

Código Delphi [-]
//al_set_window_title ('Allegro.pas Demo Game');

Ahora sí puedo intentar hacer algo con la librería.

Saludos.

Ñuño Martínez 29-10-2007 17:42:38

Gracias por la información, Hector. De momento la solución puede funcionar, aunque creo que no debería ser definitivamente así. He visto proyectos de Allegro con datafiles de más de 100 elementos.

Ya avisaré para que lo probéis y me digáis si funciona.

Héctor Randolph 29-10-2007 18:02:08

Estoy de acuerdo, la solución fue provisional. En este caso pusé el número de elementos de manera arbitraria, pero antes eché un ojo sobre el archivo demo.inc para ver cuántos elementos había en el archivo demo.dat

Supongo que se tendrá que crear el arreglo dinámicamente o algo así, para ello necesitariamos saber de antemano cuántos elementos hay en el archivo DAT.

Lo importante es que ya estoy compilando y en cuanto tenga un espacio estaré jugando con la librería a ver que se me ocurre.

Nuevamente te digo Ñuño que has hecho un excelente trabajo.

Saludos

Ñuño Martínez 18-11-2007 21:34:37

Me puse el viernes y el sábado y he hecho algunos cambios, tanto al juego como a la librería. He subido un nuevo archivo. Este tiene, además, algunos archivos del directorio "lib" que he modificado para solucionar algunos errores. Tal vez haya que moverlos al directorio lib antes de probarlos.

Decidme qué os parece que Alex tenga tres vidas, si realmente es algo más fácil y si da menos problemas al compilar con Delphi.

Aunque he modificado el enlace del primer mensaje, lo pongo aquí para que no os quejéis.

Estoy currando en la documentación, a ver si puede estar terminada esta semana (en inglés, eso sí :(). Todavía estáis a tiempo de hacer sugerencias.

Gracias de nuevo.


La franja horaria es GMT +2. Ahora son las 14:40:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi