Aprendiendo a usar spriters en gambas, empiezo con algo simple.
' gambas class file
' Como usar una imagen sprite en gambas by postapase (3 Julio 2017)
Private Cantidad_Sprites As New Picture[]
Public Sub Form_Open()
Me.Title = "Sprite"
End
Public Sub SepararImagenes(path As String, filas As Integer, columnas As Integer)
'subrutina extraida y modificada del ejemplo de Julio 1945
Dim i As Image
Dim fila As Integer
Dim columna As Integer
Dim imagenAncho As Integer
Dim imagenLargo As Integer
Dim fichero As Picture
Dim contador As Integer
i = Image.Load(path)
Cantidad_Sprites = New Picture[]
imagenAncho = i.w / columnas
imagenlargo = i.h / filas
For fila = 1 To filas
For columna = 0 To columnas
fichero = New Picture(imagenAncho, imagenLargo, Color.Transparent)
Paint.Begin(fichero)
'esta línea lo que hace es recortar la imagen i,
y ese recorte sera la nueva imagen.
Paint.DrawImage(i, 0, 0, imagenAncho, imagenLargo, 1, Rect((columna - 1) * imagenAncho, (fila - 1) * imagenLargo, imagenancho, imagenlargo))
Paint.Stroke()
Paint.Fill
Paint.End()
fichero.Save("/tmp/dibujo" & Str$(contador) & ".png")
Cantidad_Sprites.Add(fichero)
contador += 1
Next
Next
End
Private Sub Accion()
Dim a As Integer
For a = 0 To Cantidad_Sprites.Max
PictureBox1.Picture = Cantidad_Sprites[a]
Wait 0.09
Next
PictureBox1.Picture = Null
Wait 0.1
End
Public Sub Button1_Click()
SepararImagenes("explosion.png", 1, 12)
Accion()
' Como usar una imagen sprite en gambas by postapase (3 Julio 2017)
Private Cantidad_Sprites As New Picture[]
Public Sub Form_Open()
Me.Title = "Sprite"
End
Public Sub SepararImagenes(path As String, filas As Integer, columnas As Integer)
'subrutina extraida y modificada del ejemplo de Julio 1945
Dim i As Image
Dim fila As Integer
Dim columna As Integer
Dim imagenAncho As Integer
Dim imagenLargo As Integer
Dim fichero As Picture
Dim contador As Integer
i = Image.Load(path)
Cantidad_Sprites = New Picture[]
imagenAncho = i.w / columnas
imagenlargo = i.h / filas
For fila = 1 To filas
For columna = 0 To columnas
fichero = New Picture(imagenAncho, imagenLargo, Color.Transparent)
Paint.Begin(fichero)
'esta línea lo que hace es recortar la imagen i,
y ese recorte sera la nueva imagen.
Paint.DrawImage(i, 0, 0, imagenAncho, imagenLargo, 1, Rect((columna - 1) * imagenAncho, (fila - 1) * imagenLargo, imagenancho, imagenlargo))
Paint.Stroke()
Paint.Fill
Paint.End()
fichero.Save("/tmp/dibujo" & Str$(contador) & ".png")
Cantidad_Sprites.Add(fichero)
contador += 1
Next
Next
End
Private Sub Accion()
Dim a As Integer
For a = 0 To Cantidad_Sprites.Max
PictureBox1.Picture = Cantidad_Sprites[a]
Wait 0.09
Next
PictureBox1.Picture = Null
Wait 0.1
End
Public Sub Button1_Click()
SepararImagenes("explosion.png", 1, 12)
Accion()
El ejemplo esta disponible en la granja de gambas.
Página para descargar spriters y hacer nuestras experiencias en gambas.
https://www.spriters-resource.com/
No hay comentarios.:
Publicar un comentario