Buenas,
Estoy haciendo un juego como el geometry dash y me gustaría saber el código para hacer que el cuadrado (un picturebox) realice un salto hacia arriba hasta cierta altura al presionar una tecla del teclado (preferentemente las flechas o la barra espaciadora). Haciendo este un salto desde una posición 80;405 hasta la posición 80;329.
Muchas gracias de antemano.
PD: Os adjunto el programa
https://mega.co.nz/#F!990DGTLQ!VD23Iru4mNk46-EJ0-d2vA
Mod: Titulo modificado, no usar mayusculas, procura que sea descriptivo al problema "ayuda" no aporta ninguna característica
Bueno puedes modificar el TOP del control es muy sencillo:
Este codigo es para VB.Net ya que vi tu Source y no es de VB6.
Hay una sección para VB.Net te recomiendo que la busques para la proxima para no tener futuros problemas en el foro! ;)
Private Sub Timer1()
Picture1Box.Top = Picture1Box.Top - 50
If Picture1Box.Top = 329 then
Timer1.Enabled = False
End If
End Sub
Esto seria una animacion basica con un Timer y Un PictureBox, puedes modificar el Intervalo del Timer para cambiar la rapidez con la que la animacion se efectua.
Espero que sea lo que necesites.
PD: Un consejo, tus proyectos no los publiques haci por haci ya que hay muchos urtadores que pueden tomar tu idea, mejor comparte el codigo que necesites que te asistan.
Saludos~
Gaaacias !!
HOLA!!!
Hay un pequeño problema con el codigo que propone Brian1511, si el Picturebox nunca llega a 329 nunca se frenara el timer, esto se soluciona colocando un > en vez de un = en el codigo.
GRACIAS POR LEER!!!
cierto muy cierto ;). Gracias por corregir!
David977 El codigo quedaria así:
Private Sub Timer1()
Picture1Box.Top = Picture1Box.Top - 50
If Picture1Box.Top > 329 then
Timer1.Enabled = False
End If
End Sub
Saludos!
HOLA!!!
Pusiste de nuevo el mismo codigo...
GRACIAS POR LEER!!!
Mmm.. no lo creo :/
HOLA!!!
Jajajaja, viste la hora de mi post y la hora de tu modificacion... :silbar:
GRACIAS POR LEER!!!
Shhhh!!! no lo escribas , se daran cuenta xD ;D
Gracias por vuestras respuestas pero no consigo hacer el movimiento que deseo. Salta, muy lento, y también necesito que al chocarse con los obstáculos no los atraviese. Alguien me haria el favor de hacerme el código porfavor ???
PD: Os adjunto el programa:
https://mega.co.nz/#F!990DGTLQ!VD23Iru4mNk46-EJ0-d2vA
y aquí el código:
Public Class frmPantalla
Private WithEvents timerSalto As New Timer With {.Enabled = False, .Interval = 50}
Private totalUnidades As Integer = 0
Private unidadesActuales As Integer = 0
Private salto As estadoSalto = estadoSalto.Terminado
Private Enum estadoSalto
Subiendo
Bajando
Terminado
End Enum
Private Enum unidadesSalto
Setenta
End Enum
Private Sub tmrSalto_Tick() Handles tmrSalto.Tick
tmrSalto.Interval = Location.Y + 40
Select Case salto
Case estadoSalto.Bajando
unidadesActuales = unidadesActuales - 10
Dim localizacionX As Integer = Cuadrado.Location.X + 6
Dim localizacionY As Integer = Cuadrado.Location.Y + 10
Cuadrado.Location = New Point(localizacionX, localizacionY)
If unidadesActuales = 0 Then
salto = estadoSalto.Terminado
End If
Case estadoSalto.Subiendo
unidadesActuales = unidadesActuales - 10
Dim localizacionX As Integer = Cuadrado.Location.X + 3
Dim localizacionY As Integer = Cuadrado.Location.Y - 10
Cuadrado.Location = New Point(localizacionX, localizacionY)
If unidadesActuales = 10 Then
unidadesActuales = totalUnidades
salto = estadoSalto.Bajando
End If
Case estadoSalto.Terminado
tmrSalto.Stop()
End Select
End Sub
Private Sub saltoCuadrado(unidades As unidadesSalto)
Select Case unidades
Case unidadesSalto.Setenta
totalUnidades = 70
unidadesActuales = 70
End Select
salto = estadoSalto.Subiendo
tmrSalto.Start()
End Sub
Private Sub frmPantalla_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Space Then
If salto = estadoSalto.Terminado Then
saltoCuadrado(unidadesSalto.Setenta)
End If
End If
End Sub
End Class
Por cierto me gustaría saber también como hacer que el fondo se desplaze horizontalmente hasta que termine el nivel. Muchas gracias de antemano.