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
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 |
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 |
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"