Pues de un ejemplo parecido, acabe haciendo este.
Lo cierto es que tengo un problema, cuando quiero ponerme con algo (aprender un poco mas de Python),
me empiezan a surgir ideas con gambas y me vuelvo a gambas y dejo lo otro.
No puedo aparcarlo, que luego se me va de la memoria.O eso, o apunto todo lo que quiero hacer.
Pero no puedes, es como si estuvieras en la luna.
Pues bien. En este ejemplo. Movemos el cursor sobre un DrawingArea y hacemos click izquierdo, saldrá
un orificio de bala sobre el drawingArea y además reproduce un sonido. Saldrán tantos orificios como "balazos" demos.
Si es que falta poner una imagen de fondo...jeje.
Le puse colador, por lo de "como un colador".
Aquí esta el código:
Private sonidodisparo As Sound
Private canal1 As Channel
Private orificio As New Picture
Private blanco As New Picture
Private coordenadadibu As New Point[]
Public Sub _new()
End
Public Sub Form_Open()
Randomize
Channels.Count = 1
canal1 = Channels[0]
sonidodisparo = New Sound("Bullet_ricochet.wav")
orificio = Picture.Load("orificio_bala.png")
blanco = Picture.Load("punto2.png")
Me.Center
Me.Cursor = New Cursor(blanco, blanco.Width / 2, blanco.Height / 2)
Me.Mouse = Mouse.Custom
Timer1.Start
End
Public Sub Pizarra_Draw()
DibujarOrificio()
End
Public Sub Timer1_Timer()
Pizarra.Refresh
End
Public Sub Pizarra_MouseDown()
Dim coordenada As Point
coordenada = New Point(Mouse.X, Mouse.Y)
coordenadadibu.Add(coordenada)
canal1.Play(sonidodisparo)
End
Public Sub DibujarOrificio()
Dim coordenada As Point
For Each coordenada In coordenadadibu
'TODO: Centrar mejor
Draw.Picture(orificio, coordenada.X - orificio.Width / 2, coordenada.Y - orificio.Height / 2, orificio.Width, orificio.Height)
Next
End
Public Sub btnSalir_Click()
Me.Close
End
Private canal1 As Channel
Private orificio As New Picture
Private blanco As New Picture
Private coordenadadibu As New Point[]
Public Sub _new()
End
Public Sub Form_Open()
Randomize
Channels.Count = 1
canal1 = Channels[0]
sonidodisparo = New Sound("Bullet_ricochet.wav")
orificio = Picture.Load("orificio_bala.png")
blanco = Picture.Load("punto2.png")
Me.Center
Me.Cursor = New Cursor(blanco, blanco.Width / 2, blanco.Height / 2)
Me.Mouse = Mouse.Custom
Timer1.Start
End
Public Sub Pizarra_Draw()
DibujarOrificio()
End
Public Sub Timer1_Timer()
Pizarra.Refresh
End
Public Sub Pizarra_MouseDown()
Dim coordenada As Point
coordenada = New Point(Mouse.X, Mouse.Y)
coordenadadibu.Add(coordenada)
canal1.Play(sonidodisparo)
End
Public Sub DibujarOrificio()
Dim coordenada As Point
For Each coordenada In coordenadadibu
'TODO: Centrar mejor
Draw.Picture(orificio, coordenada.X - orificio.Width / 2, coordenada.Y - orificio.Height / 2, orificio.Width, orificio.Height)
Next
End
Public Sub btnSalir_Click()
Me.Close
End
Nota1: No me sale del todo centrado el disparo con respecto a la posición del cursor.
La clase cursor tiene una cosa curiosa, que podemos centrar mas o menos el dibujo que sera nuestro cursor.
Nota2: Fijaros que a veces la aplicación no finaliza aunque salgamos, debe ser cosa del componente gb.sdl.sound
Ahora solo faltan los blancos y conocer en la posición que están cuando hacemos MouseDown, fácil!.
Saludos
Colador.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | Colador.tar.gz | |
Tamaño: | 21.57 KB | |
Descargado: | 28 veces |
Colador.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | Colador.tar.gz | |
Tamaño: | 21.57 KB | |
Descargado: | 28 veces |
Colador.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | Colador.tar.gz | |
Tamaño: | 21.57 KB | |
Descargado: | 28 veces |