Recent

Author Topic: presentacion y pregunta sobre allegro 5  (Read 4889 times)

zelda16bit

  • New Member
  • *
  • Posts: 15
Re: presentacion y pregunta sobre allegro 5
« Reply #15 on: November 29, 2020, 08:46:40 pm »
Gracias por las recomendaciones.  :)

Voy a poner el enlace del curso de lazarus en español en otro tema para que tenga mas visibilidad,porque el curso esta teniendo pocas visitas y me estoy temiendo que con el tiempo no saque mas videos,espero que no... porque son muy buenos y se aprende mucho con esos videos.

Ñuño_Martínez

  • Hero Member
  • *****
  • Posts: 1107
    • Burdjia
Re: presentacion y pregunta sobre allegro 5
« Reply #16 on: December 08, 2020, 01:44:46 pm »
Hola zelda16bit.  Disculpa no haber contestado antes, pero estas últimas semanas he estado bastante desconectado. %)

Veo que ya conseguiste que Allegro te funcione.  De todas formas, el paquete incluye toda la información necesaria para instalarla en los documentos que hay en el directorio  ~/docs/build/.  Como verás, está todo en inglés para hacerlo más accesible (si realmente quieres dedicarte a esto, como ha comentado lucamar, vas a tener que aprender inglés sí o sí, y mucho).

Haces bien si antes de meterte con Allegro o cualquier otra biblioteca o motor aprendes "sólo" Pascal.  De lo contrario tardarás mucho en aprender.  La programación de videojuegos no es algo trivial, y hoy en día menos.

En cuanto a si hay algún motor sencillo para hacer juegos con Lazarus, la respuesta rápida es no, como te ha dicho Handoko.  Todo lo que hay es "complicado", y más si no sabes programar todavía.  Yo mismo estoy trabajando en un motor que en principio debería hacer las cosas más fáciles (MinGRo) pero está en desarrollo todavía y tardará en cumplir esta promesa (aparte de que está dirigido al 2D, sin soporte para 3D).  Si quieres algo sencillo tendrás que irte a cosas como Game Maker o RPG Maker (y te aconsejo que huyas de Unity como de la peste :-X).

Espero que sigas aprendiendo y que vuelvas a Allegro (dentro de un par de meses o así publicaré una nueva versión de Allegro.pas con novedades), y ya ves que para cualquier duda nos tienes aquí.
Are you interested in game programming? Join the Pascal Game Development community!
Also visit the Game Development Portal

zelda16bit

  • New Member
  • *
  • Posts: 15
Re: presentacion y pregunta sobre allegro 5
« Reply #17 on: December 10, 2020, 06:14:26 pm »
Hola Nuño.

La verdad es que ya tengo bastante lio con la programacion como para meterme con el ingles,me explotaria la cabeza jejejeje,ademas de que no sabria por donde empezar.

Ahora solo quiero aprender con el curso de videos que estoy siguiendo y tambien estoy mirando un poco por encima un curso escrito que hay en conoce3000,que la verdad es bastante lioso.

Como ya comente soy nuevo en la programacion pero antes de meterme con el codigo ya probe algun motor para ver como era,entre ellos gamemaker,click team fusion,contruct 2,arcade game studio etc...

Estos suelen utilizar un lenguaje visual muy limitado y la mayoria o es de pago o es muy lento,por eso me decidi a meterme de lleno con el codigo.

Unity simplemente lo descargue y como no me funcionaba pues lo borre;actualmente estoy trasteando con gdevelop pero no me va muy fluido la verdad.

Y pues eso,estoy a full con pascal y cuando termine el curso volvere con allegro haber si me va mejor,yo solo quiero crear juegos de naves del estilo toaplan, en 2d por supuesto.Aunque el canal que sigo a comentado que tambien hara un curso de programacion de videojuegos con lazarus haber que tal sera.

Podrias ponerte en contacto con el para ver si le interesaria mas adelante hacer un curso sobre allegro.Por cierto,ese motor que estas haciendo me ha dado curisidad,comentame mas sobre el,pon un codigo para ver como se mostraria un texto y ver la diferencia con allegro.

Ya cuando termine el curso podria probar tu motor para ver que tal.Un saludo :)

Ñuño_Martínez

  • Hero Member
  • *****
  • Posts: 1107
    • Burdjia
Re: presentacion y pregunta sobre allegro 5
« Reply #18 on: December 13, 2020, 01:25:00 pm »
Pues aquí tienes el ejemplo Hello World! de Mingro.  Como ves usa Allegro para escribir, porque lo usa por debajo.

También prometí al grupo de Telegram que haría una serie de vídeos sobre Allegro, a ver si el año que entra puedo ponerme a ello.
Are you interested in game programming? Join the Pascal Game Development community!
Also visit the Game Development Portal

zelda16bit

  • New Member
  • *
  • Posts: 15
Re: presentacion y pregunta sobre allegro 5
« Reply #19 on: December 15, 2020, 10:00:53 pm »
Gracias por el ejemplo. ;)

Sigo viendo demasiadas lineas de codigo como en allegro ,para solo mostrar un texto.
Sobre los videos supongo que seran en ingles y no podre seguirlos. :'(

Ñuño_Martínez

  • Hero Member
  • *****
  • Posts: 1107
    • Burdjia
Re: presentacion y pregunta sobre allegro 5
« Reply #20 on: December 18, 2020, 05:13:24 pm »
Sigo viendo demasiadas lineas de codigo como en allegro ,para solo mostrar un texto.
Esto es porque MinGRo es un motor para hacer juegos y Allegro es una biblioteca multimedia, no son para mostrar únicamente texto.  Para mostrar texto, y sólo texto, tienes la consola y WriteLn. ;)
Sobre los videos supongo que seran en ingles y no podre seguirlos. :'(
Nope:  van a ser en castellano, porque el grupo que me lo pidió es sólo para hispanoparlantes. :)
Are you interested in game programming? Join the Pascal Game Development community!
Also visit the Game Development Portal

lainz

  • Hero Member
  • *****
  • Posts: 4022
  • Leandro Diaz
Re: presentacion y pregunta sobre allegro 5
« Reply #21 on: December 18, 2020, 05:24:56 pm »
Creo que a lo que zelda16bit se refiere es a que el quisiera una librería que haga esto por ejemplo, con pocas lineas:

Code: Pascal  [Select][+][-]
  1. uses
  2.    ugame;
  3.  
  4. procedure OnDraw(Game: TGame);
  5. begin
  6.   Game.DrawBackground('black');
  7.   Game.DrawText(0,0,'Hello World', 'white');
  8. end;
  9.  
  10. begin
  11.   Game.SetScreen(800,600);
  12.   Game.OnDraw:=@OnDraw;
  13.   ...
  14.   Game.Run();
  15. end;

El tema por supuesto es que este modelo no sirve para hacer un juego.
« Last Edit: December 18, 2020, 05:26:28 pm by lainz »
https://lainz.github.io/ - My Website :)
https://lazpaint.github.io/ -  Download LazPaint

Ñuño_Martínez

  • Hero Member
  • *****
  • Posts: 1107
    • Burdjia
Re: presentacion y pregunta sobre allegro 5
« Reply #22 on: December 18, 2020, 05:49:29 pm »
Pues si es por eso, entonces MinGRo casi funciona así (el objetivo que tengo es que llegue a ese punto, pero casi acabo de empezar).

De todas formas, para esa simplicidad mejor tirar (por ahora) de GameMaker o Godot.
Are you interested in game programming? Join the Pascal Game Development community!
Also visit the Game Development Portal

zelda16bit

  • New Member
  • *
  • Posts: 15
Re: presentacion y pregunta sobre allegro 5
« Reply #23 on: December 18, 2020, 08:55:45 pm »
Nope:  van a ser en castellano, porque el grupo que me lo pidió es sólo para hispanoparlantes. :)

Eso es genial,pues yo me apunto;cuando vayas a empezar comentalo por el foro. :D
« Last Edit: December 18, 2020, 08:57:35 pm by zelda16bit »

zelda16bit

  • New Member
  • *
  • Posts: 15
Re: presentacion y pregunta sobre allegro 5
« Reply #24 on: December 18, 2020, 09:10:03 pm »
Creo que a lo que zelda16bit se refiere es a que el quisiera una librería que haga esto por ejemplo, con pocas lineas:

Code: Pascal  [Select][+][-]
  1. uses
  2.    ugame;
  3.  
  4. procedure OnDraw(Game: TGame);
  5. begin
  6.   Game.DrawBackground('black');
  7.   Game.DrawText(0,0,'Hello World', 'white');
  8. end;
  9.  
  10. begin
  11.   Game.SetScreen(800,600);
  12.   Game.OnDraw:=@OnDraw;
  13.   ...
  14.   Game.Run();
  15. end;

El tema por supuesto es que este modelo no sirve para hacer un juego.

¿Porque dices que ese modelo no sirve para hacer un juego?,yo ademas del curso de lazarus he empezado un curso de love2d.

Estaba buscando algo sencillo de usar y me encontre con love2d,el problema es que pide opengl y despues de buscar encontre "MesaForWindows",con esto puedo usarlo aunque no me va muy fluido,pero lo que queria comentar es que la estructura de este engine es sencilla y hay muchos juegos de calidad que se han hecho y se estan haciendo con este engine,ejemplo:

Mostrar un texto:-----------------------

function love.load()   
end

function love.update()
end

function love.draw()
    love.graphics.print("saludos",320,240)
end

Mostrar un grafico:-----------------------

function love.load()
    imagen = love.graphics.newImage("grafico.png")   
end

function love.update()
end

function love.draw()
    love.graphics.draw(imagen,320,240)
end

lainz

  • Hero Member
  • *****
  • Posts: 4022
  • Leandro Diaz
Re: presentacion y pregunta sobre allegro 5
« Reply #25 on: December 18, 2020, 11:08:14 pm »
Si, el tema es que seria mas orientado a objetos y funcional, seria como mezcla de paradigmas. No esta bien claro como armarías el juego asi, si con variables globales o creando otra clase contenedora.

Parece lo mismo pero en Pascal no lo es, no es lo mismo un @MiFuncion que sea método de un objeto, o una función independiente.

Por ejemplo el de MingRO esta orientado a objetos, y definis una clase que hereda de otra para crear tu juego. Esta muy bien armado por lo que veo. Parece mucho codigo a simple vista pero Pascal es así, separa la interfaz de la implementación. En realidad es casi lo mismo que mi ejemplo, lo único que todavía usa las funciones de allegro directamente, como la de dibujar texto en vez de tener un metodo propio.
« Last Edit: December 18, 2020, 11:16:16 pm by lainz »
https://lainz.github.io/ - My Website :)
https://lazpaint.github.io/ -  Download LazPaint

lainz

  • Hero Member
  • *****
  • Posts: 4022
  • Leandro Diaz
Re: presentacion y pregunta sobre allegro 5
« Reply #26 on: December 19, 2020, 05:04:24 am »
Para que te des una idea de como se ve el codigo sin los comentarios de MingRo:

Code: Pascal  [Select][+][-]
  1. PROGRAM helloworld;
  2. {$IFDEF WINDOWS}{$R 'manifest.rc'}{$ENDIF}
  3.  
  4.   USES
  5.     mngDisplay, mngDisplayPC, mngMain,
  6.     Allegro5, al5font, sysutils;
  7.  
  8.   CONST
  9.     VEL = 4;
  10.  
  11.   TYPE
  12.     THelloWorld = CLASS (TmngSimpleApplication)
  13.     PRIVATE
  14.       fRed: BYTE; fDif: INTEGER;
  15.       fBgColor: ALLEGRO_COLOR;
  16.     PROTECTED
  17.       PROCEDURE Update; OVERRIDE;
  18.       PROCEDURE Render; OVERRIDE;
  19.     PUBLIC
  20.       PROCEDURE Initialize; OVERRIDE;
  21.     END;
  22.  
  23.   PROCEDURE THelloWorld.Update;
  24.   BEGIN
  25.     IF SELF.Timer.Count MOD 5 = 4 THEN
  26.     BEGIN
  27.       INC (fRed, fDif);
  28.       IF (fRed = 0) OR (fRed = (256 - VEL)) THEN fDif := -fDif;
  29.       fBgColor := al_map_rgb (fRed, 0, 0)
  30.     END;
  31.     IF SELF.Keyboard.Keypressed THEN SELF.Terminate
  32.   END;
  33.  
  34.   PROCEDURE THelloWorld.Render;
  35.   BEGIN
  36.     al_clear_to_color (fBgColor);
  37.     al_draw_text (
  38.       SELF.SysFont, al_map_rgb (255, 255, 255),
  39.       80, 96,
  40.       0, 'Hello, World!'
  41.     )
  42.   END;
  43.  
  44.   PROCEDURE THelloWorld.Initialize;
  45.   BEGIN
  46.     SELF.Display := TmngDisplayVGA.Create;
  47.     INHERITED Initialize;
  48.     fRed := 0; fDif := VEL;
  49.     fBgColor := al_map_rgb (fRed, 0, 0);
  50.   END;
  51.  
  52. BEGIN
  53.   mngApplication := THelloWorld.Create;
  54.   mngApplication.Initialize;
  55.   mngApplication.Run;
  56.   FreeAndNil (mngApplication)
  57. END.

Son 3 funciones nomas, diría que las mismas que en love2d con distinto nombre: Initialize (en love2d es load), Update (en love2d update) y Render (en love2d draw).

Quizas si se ve complicado porque no son funciones sueltas y son parte de una clase. Pero asi es mas facil tener las variables adentro de la clase y no en variables globales...
« Last Edit: December 19, 2020, 05:23:25 am by lainz »
https://lainz.github.io/ - My Website :)
https://lazpaint.github.io/ -  Download LazPaint

lainz

  • Hero Member
  • *****
  • Posts: 4022
  • Leandro Diaz
Re: presentacion y pregunta sobre allegro 5
« Reply #27 on: December 19, 2020, 05:10:03 am »
function love.load()
    imagen = love.graphics.newImage("grafico.png")   
end

function love.update()
end

function love.draw()
    love.graphics.draw(imagen,320,240)
end

Parece que la variable imagen es global, en pascal podes hacer lo mismo (no recomendado).

Por qué no usar variables globales:
https://www.tutorialspoint.com/Why-should-we-avoid-using-global-variables-in-C-Cplusplus#:~:text=Global%20variables%20can%20be%20altered,very%20tight%20coupling%20of%20code.

Es decir en love2d el ejemplo que me pasaste parece ser global, no se si podes poner mas de un archivo de codigo fuente, por ejemplo solo te deja nombrar una variable como imagen y en otros lados no porque ya la estas usando para todo el programa.

(Es un ejemplo digo sin haber usado love2d, pero esa es la idea de no usar globales).

Lo vas a ver en muchos lenguajes, se llama 'scope' o ámbito del identificador / variable.
« Last Edit: December 19, 2020, 05:22:03 am by lainz »
https://lainz.github.io/ - My Website :)
https://lazpaint.github.io/ -  Download LazPaint

zelda16bit

  • New Member
  • *
  • Posts: 15
Re: presentacion y pregunta sobre allegro 5
« Reply #28 on: December 20, 2020, 08:57:48 pm »
Gracias por la explicacion lainz,ya se vera como va quedando el engine con el tiempo.:)

zelda16bit

  • New Member
  • *
  • Posts: 15
Re: presentacion y pregunta sobre allegro 5
« Reply #29 on: March 07, 2021, 11:45:31 am »
Hola Ñuño_Martínez.

Tienes pensado hacer el curso de allegro proximamente o todavia queda mucho para ello.

 

TinyPortal © 2005-2018