Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: David977 en 24 Febrero 2015, 12:55 pm



Título: ayuuuda juego visual basic !!
Publicado por: David977 en 24 Febrero 2015, 12:55 pm
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


Título: Re: AYUUUDA JUEGO VISUAL BASIC !!
Publicado por: Brian1511 en 26 Febrero 2015, 23:12 pm
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! ;)

Código
  1. Private Sub Timer1()
  2.  
  3. Picture1Box.Top = Picture1Box.Top - 50
  4. If Picture1Box.Top = 329 then
  5. Timer1.Enabled = False
  6. End If
  7.  
  8. End Sub
  9.  

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~


Título: Re: ayuuuda juego visual basic !!
Publicado por: David977 en 3 Marzo 2015, 12:49 pm
Gaaacias !!


Título: Re: ayuuuda juego visual basic !!
Publicado por: 79137913 en 3 Marzo 2015, 14:16 pm
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!!!


Título: Re: ayuuuda juego visual basic !!
Publicado por: Brian1511 en 3 Marzo 2015, 19:19 pm
cierto muy cierto ;). Gracias por corregir!

David977 El codigo quedaria así:

Código
  1.    Private Sub Timer1()
  2.  
  3.    Picture1Box.Top = Picture1Box.Top - 50
  4.    If Picture1Box.Top > 329 then
  5.    Timer1.Enabled = False
  6.    End If
  7.  
  8.    End Sub
  9.  

Saludos!


Título: Re: ayuuuda juego visual basic !!
Publicado por: 79137913 en 3 Marzo 2015, 19:47 pm
HOLA!!!

Pusiste de nuevo el mismo codigo...

GRACIAS POR LEER!!!


Título: Re: ayuuuda juego visual basic !!
Publicado por: Brian1511 en 3 Marzo 2015, 20:00 pm
Mmm.. no lo creo :/


Título: Re: ayuuuda juego visual basic !!
Publicado por: 79137913 en 3 Marzo 2015, 23:20 pm
HOLA!!!

Jajajaja, viste la hora de mi post y la hora de tu modificacion... :silbar:

GRACIAS POR LEER!!!


Título: Re: ayuuuda juego visual basic !!
Publicado por: Brian1511 en 4 Marzo 2015, 04:03 am
Shhhh!!! no lo escribas , se daran cuenta xD  ;D


Título: Re: ayuuuda juego visual basic !!
Publicado por: David977 en 6 Marzo 2015, 12:28 pm
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


Título: Re: ayuuuda juego visual basic !!
Publicado por: David977 en 6 Marzo 2015, 12:36 pm
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.