Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Programando Juegos. Moviendo Un Sprite.
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Programando Juegos. Moviendo Un Sprite. 
 
Buenas!.

Uno de los ejemplos que estoy haciendo ahora en PyGame, es el clásico rebote de una figura por las equinas de un área de dibujo.

¿ Es tan complicado hacer que una figura al moverla no parezca que va a pequeños saltos ?.

Hasta ahora no hago nada nuevo que no pueda hacer en un DrawingArea con Gambas.
Mi idea es aprender algo de SDL, poder entender y aplicarlo a Gambas.

Ya que según esto:

https://es.wikipedia.org/wiki/Pygame

PyGame está basado en la librería SDL 1.2

Aunque tambien habla que hay otros medios como SDL 2 para Python. Recordar que aunque diga Python, mi idea tambien es aplicarlo todo a Gambas.
PyGame actúa como interfaz de la librería SDL.

¿ Donde puedo conseguir ejemplos de SDL para gambas aplicado al tema de la creación de videojuegos ?.
O por lo menos ejemplos básicos y así puedo comparar con PyGame.

Me resulta a veces tan agradable como se hacen las cosas con DrawingArea de gambas,
que me cuesta entender por que complicarlo más bajo Gambas.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programando Juegos. Moviendo Un Sprite. 
 
Os subo el ejemplo del rectángulo rebotando, es muy sencillo.

Veréis que se produce un efecto raro en su movimiento. Son dos cuadrados. Sin usar clases.
( Es que según el autor del tutorial, para el, un cuadrado debido al tema de las dimensiones de los píxeles, es un rectángulo ).

Este formulario tiene su propiedad arrangement a Horizontal y se ajusta el tamaño al area de dibujo.
Fijaros que pasa si maximizáis el formulario....turbo!.  

Saludos

ReboteRectangulo.tar.gz
Descripción:  
Descargar
Nombre del archivo: ReboteRectangulo.tar.gz
Tamaño: 12.51 KB
Descargado: 25 veces
ReboteRectangulo.tar.gz
Descripción:  
Descargar
Nombre del archivo: ReboteRectangulo.tar.gz
Tamaño: 12.51 KB
Descargado: 25 veces
ReboteRectangulo.tar.gz
Descripción:  
Descargar
Nombre del archivo: ReboteRectangulo.tar.gz
Tamaño: 12.51 KB
Descargado: 25 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programando Juegos. Moviendo Un Sprite. 
 
Shell escribió: [Ver mensaje]
¿ Donde puedo conseguir ejemplos de SDL para gambas aplicado al tema de la creación de videojuegos ?.

En que lenguaje ?
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programando Juegos. Moviendo Un Sprite. 
 
Vuott:

Citar:

En que lenguaje ?


En gambas naturalmente. Aunque la verdad es que he creado sin mucha dificultad un ejemplo con SDL2 para Gambas.
Gracias a los ejemplos de Python puedo entender algo mejor ahora la creación de ejemplos con la librería de SDL.  

Ahora lo subo.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Sabado, 19 Marzo 2016, 18:48; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programando Juegos. Moviendo Un Sprite. 
 
Hola!

Pues aquí tenéis el mismo ejemplo que hice del cuadrado con DrawingArea y la clase Paint.
Esta vez con SDL2.

Primero os voy a mostrar el código para comentar. Estoy un poco verde en el tema pero no es tan difícil.

No tenemos un DrawingArea, no tenemos un Timer.
La ventana es en la que vamos a dibujar.
Usamos Draw, como hacíamos en la antigua clase Draw. Son nombres similares, aunque no es la misma clase.

La ventana tiene una dimensiones que en este caso he fijado a 1280 x1024, La podéis cambiar.
Para que se puede poner a pantalla completa, parece que hay que activar Resize.

Lo que veis del FrameRate sustituye al Timer.
"Tenéis que recordar que las dimensiones en este ejemplo están fijadas."
Jugar a cambiarla a mas pequeña y pusar F1 para que pase a pantalla completa.
Si!, tendréis una pantalla completa, pero a las dimensiones que habéis establecido.
Y lo más probable es que veáis que el tamaño del cuadrado aumente!.

Para salir usar Escape.

Private $hWindow As Window
Private $pos_rect As Integer[]
Private $acel_rect As Integer[]
Private $dim_rect As Integer[]

Public Sub Main()
  
  $hWindow = New Window As "Window"
  
  With $hWindow
    .Resize(1280, 1024)    
    .Resizable = True
    .Show
    .FrameRate = 60    
    .FullScreen = False
  End With
  
  $pos_rect = [50, 50]
  $acel_rect = [5, 5]
  $dim_rect = [50, 50]
  
End

Public Sub Dibujar()
  
  Draw.Clear
  
  Draw.FillRect($pos_rect[0], $pos_rect[1], $dim_rect[0], $dim_rect[1], Color.White)
  Draw.FillRect($pos_rect[0] + 10, $pos_rect[1] + 10, $dim_rect[0] - 20, $dim_rect[1] - 20, Color.Red)    
  
  If $pos_rect[1] > $hWindow.H - $dim_rect[1] Or $pos_rect[1] < 0 Then $acel_rect[1] = $acel_rect[1] * -1
  If $pos_rect[0] > $hWindow.W - $dim_rect[0] Or $pos_rect[0] < 0 Then $acel_rect[0] = $acel_rect[0] * -1
  
  $pos_rect[0] += $acel_rect[0]
  $pos_rect[1] += $acel_rect[1]
  
End

Public Sub Window_Draw()
  
  Dibujar()
  
End

Public Sub Window_KeyPress()
  
  Select Case Key.Code
    Case Key.F1
      $hWindow.FullScreen = Not $hWindow.FullScreen
    Case Key.Esc
      $hWindow.Close
  End Select
  
End

 


Ejemplo2SDL.tar.gz
Descripción: Cuadrado que rebota por la ventana usando componente SDL2 
Descargar
Nombre del archivo: Ejemplo2SDL.tar.gz
Tamaño: 12.42 KB
Descargado: 23 veces
Ejemplo2SDL.tar.gz
Descripción: Cuadrado que rebota por la ventana usando componente SDL2 
Descargar
Nombre del archivo: Ejemplo2SDL.tar.gz
Tamaño: 12.42 KB
Descargado: 23 veces
Ejemplo2SDL.tar.gz
Descripción: Cuadrado que rebota por la ventana usando componente SDL2 
Descargar
Nombre del archivo: Ejemplo2SDL.tar.gz
Tamaño: 12.42 KB
Descargado: 23 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programando Juegos. Moviendo Un Sprite. 
 
Shell escribió: [Ver mensaje]
En gambas naturalmente.

Bueno. Encontré estos programas ejemplificadores en el foro francés.
Los programas, pero, utilizan el Componente gb.sdl con la vieja libreria SDL1.

http://www.gambasforge.org/code-109-vector-ball.html
http://www.gambasforge.org/code-108-illusion.html
http://www.gambasforge.org/code-85-starfield2.html
http://www.gambasforge.org/code-118-raster.html
http://www.gambasforge.org/code-134-noel.html
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programando Juegos. Moviendo Un Sprite. 
 
Citar:

Los programas, pero, utilizan el Componente gb.sdl con la vieja libreria SDL1.

Gracias!. No creo que sea eso muy problemático.
Me temo que el componente que usa gambas para SDL2 no está completo.  

Citar:

Not all the SDL2 features are supported yet.


Si la librería SDL1 incorporaba funciones que la SDL2 aun no tiene. ¿ Cómo es que está obsoleta la 1 ?.  
Precisamente las funciones que necesitaaaabaaaa...   

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Juegos, Programación 2010 spheris Aplicaciones/Fragmentos de Código 2 Sabado, 03 Abril 2010, 22:29 Ver último mensaje
spheris
No hay nuevos mensajes Juegos Con Gambas ivanovichenco General 7 Domingo, 20 Febrero 2011, 09:40 Ver último mensaje
Shell
No hay nuevos mensajes ¿Como Continuar Programando En La Siguien... skaterleopoldo12 General 12 Jueves, 21 Julio 2011, 19:55 Ver último mensaje
skaterleopoldo12
No hay nuevos mensajes Motor Para Juegos RPG jsbsan Aplicaciones/Fragmentos de Código 2 Martes, 03 May 2016, 09:30 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron