| Ver tema anterior :: Ver siguiente tema |
| Autor |
Mensaje |
jor Yo soy el foro


Registrado: 07 Jul 2006
Mensajes: 6836
Ubicación: Lucus Augusti
|
Publicado: Mie Ene 23, 2008 6:13 pm Título del mensaje: Duda con el código en Visual Basic 6.0 |
|
|
Pues veréis. Estoy haciendo un juego con ese programa. El juego consiste en que un avión cae aleatoriamente desde un sitio u otro de la pantalla. Debajo, hay una cajita, que se mueve con un ScrollBar horizontal, para que el avión, caiga desde donde caiga, intentemos que caiga dentro de la cajita.
Hay un botón para empezar el juego, y otro para pararlo. La velocidad de caída del avión se puede regular mediante dos botoncitos (+ y -, para darle más o menos velocidad).
Bien, el problema del programa es que, si el avión cae en la cajita, lo cuenta como un acierto. Si el avión cae fuera de la cajita, lo cuenta como acierto también.
El código es este:
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Command3_Click()
Timer1.Interval = 200 - Val(Timer1.Interval)
End Sub
Private Sub Command4_Click()
Timer1.Interval = Val(Timer1.Interval) + 200
End Sub
Private Sub HScroll1_Change()
Shape1.Left = HScroll1.Value
End Sub
Private Sub HScroll1_Scroll()
Shape1.Left = HScroll1.Value
End Sub
Private Sub Timer1_Timer()
If Image1.Top < 4000 Then
Image1.Top = Image1.Top + 100
Else
If Image1.Left < Shape1.Left - 10 Or Image1.Left > Shape1.Left + 400 Then
Label1.Caption = Val(Label1.Caption ) + 1
Else
Label2.Caption = Val(Label2.Caption) + 1
End If
Randomize
Image1.Top = 120
Image1.Left = Int(Rnd * 3600) + 360
End If
End Sub
Graciasss. Si hay alguna cosa que no entendáis, me lo decís. A ver si lo arreglamos entre todos, porque ni yo, ni la profesora, sabemos qué nos pasa con este programa, ya que aparentemente, lo hago todo bien.  _________________ Quien encuentra un amigo, encuentra un tesoro.
Chi trova un amico, trova un tesoro.
Firma hecha por un tesoro (<TheDarkMan>)
|
|
| Volver arriba |
|
 |
Smart User destacando


Registrado: 02 Oct 2007
Mensajes: 316
Ubicación: Super Colombia!
|
Publicado: Mie Ene 23, 2008 6:49 pm Título del mensaje: |
|
|
Hola,
Debes revisar muy bien el If con el que estas verificando si cae dentro de la cajita o no... por que por lo que entendí veo que cuando cae dentro de la cajita le dices que sume un valor "Label1.Caption = Val(Label1.Caption ) + 1" y que cuando no caiga dentro de la cajita sume otro valor "Label2.Caption = Val(Label2.Caption) + 1", entonces te recomiendo hacer otro if para validar si cae fuera de la cajita...
Por otra parte te recomiendo utilizar nombres cristianos a los objetos por que dure como una hora tratando de entender que era cada cosa....
Me dices si te funciona!
Saludos! _________________
Copiar ideas de uno es plagio, copiar ideas de muchos es la investigación...!
Foro donde te respondere tus dudas de programación aqui! |
|
| Volver arriba |
|
 |
jor Yo soy el foro


Registrado: 07 Jul 2006
Mensajes: 6836
Ubicación: Lucus Augusti
|
Publicado: Mie Ene 23, 2008 7:04 pm Título del mensaje: |
|
|
Ok. Pues mañana lo probaré, amigo.
Aunque creo que ya lo hicimos. ¿Qué debo poner, más o menos, en ese if que recomiendas hacer?
Es que son prácticas, y las hice tal cual venía en el papel, por eso no tiene nombres muy "cristianos". Pero la verdad, debí haberlos puesto (en algún caso sí lo hice).
Pues eso, mañana te contaré.
¿Alguna sugerencia más que pueda ser el desencadenante de este problema?  _________________ Quien encuentra un amigo, encuentra un tesoro.
Chi trova un amico, trova un tesoro.
Firma hecha por un tesoro (<TheDarkMan>)
|
|
| Volver arriba |
|
 |
firefenix Forero


Registrado: 06 Nov 2007
Mensajes: 164
|
Publicado: Jue Ene 24, 2008 12:00 am Título del mensaje: |
|
|
A ver, no sé si para la versión 6.0 del basic es así, pero para la 2005 cuando mantienes pulsado el scrollBar te devuelve un valor que es 1 más que cuando lo sueltas. Comprueba que esto sea así.
También podrías poner otro IF dentro del ELSE para depurar fallos. _________________
|
|
| Volver arriba |
|
 |
Smart User destacando


Registrado: 02 Oct 2007
Mensajes: 316
Ubicación: Super Colombia!
|
Publicado: Jue Ene 24, 2008 2:18 am Título del mensaje: |
|
|
Hola jor, mira te dejo el código desde el Timer...
| Código: |
Private Sub Timer1_Timer()
If Image1.Top < 4000 Then
Image1.Top = Image1.Top + 100
Else
If Image1.Left < Shape1.Left - 10 Or Image1.Left > Shape1.Left + 400 Then
Label1.Caption = Val(Label1.Caption ) + 1
End If
If Image1.Left > Shape1.Left - 10 Or Image1.Left < Shape1.Left + 400 Then
Label2.Caption = Val(Label2.Caption) + 1
End If
Randomize
Image1.Top = 120
Image1.Left = Int(Rnd * 3600) + 360
End If
End Sub
|
Más o menos eso es lo que te trato de explicar... sino te da... entonces pásame el archivo fuente y te colaboro con eso...
Saludos _________________
Copiar ideas de uno es plagio, copiar ideas de muchos es la investigación...!
Foro donde te respondere tus dudas de programación aqui! |
|
| Volver arriba |
|
 |
jor Yo soy el foro


Registrado: 07 Jul 2006
Mensajes: 6836
Ubicación: Lucus Augusti
|
Publicado: Sab Feb 09, 2008 12:06 am Título del mensaje: |
|
|
Bueno. Al fin lo he podido probar.
Y no, no funciona. Es más, lo empeora. Si cae el avión en una esquina de la cajita, me cuenta un acierto, pero si cae justo en medio de la caja (otro acierto debería), me marca un acierto, PERO también un fallo.
¿Qué puede pasar?  _________________ Quien encuentra un amigo, encuentra un tesoro.
Chi trova un amico, trova un tesoro.
Firma hecha por un tesoro (<TheDarkMan>)
|
|
| Volver arriba |
|
 |
DploiD Yo soy el foro


Registrado: 26 Ene 2006
Mensajes: 4355
Ubicación: Argentina
|
Publicado: Sab Feb 09, 2008 3:44 pm Título del mensaje: |
|
|
jor, no podrías subir el proyecto completo?
Porque asi no lo puedo analizar muy bien xD
Un saludo. _________________ Avisame del spam
|
|
| Volver arriba |
|
 |
jor Yo soy el foro


Registrado: 07 Jul 2006
Mensajes: 6836
Ubicación: Lucus Augusti
|
Publicado: Sab Feb 09, 2008 5:37 pm Título del mensaje: |
|
|
Sí, mejor será.
El lunes, cuando esté en clase, os lo pongo, con todo.
Saludos _________________ Quien encuentra un amigo, encuentra un tesoro.
Chi trova un amico, trova un tesoro.
Firma hecha por un tesoro (<TheDarkMan>)
|
|
| Volver arriba |
|
 |
DploiD Yo soy el foro


Registrado: 26 Ene 2006
Mensajes: 4355
Ubicación: Argentina
|
Publicado: Lun Feb 11, 2008 4:31 pm Título del mensaje: |
|
|
Estamos esperando Jor xD
Si me pones el codigo y logro instalar el VB, intento ayudarte, es que asi no me oriento mucho.
Un saludo. _________________ Avisame del spam
|
|
| Volver arriba |
|
 |
jor Yo soy el foro


Registrado: 07 Jul 2006
Mensajes: 6836
Ubicación: Lucus Augusti
|
Publicado: Mar Feb 12, 2008 1:38 am Título del mensaje: |
|
|
Tranquilo, mañana a ver si puedo. Hoy lunes me fue imposible, ya que entre unas cosas y otras, no lo he logrado. Pero a ver hoy, espero que ya sí.
Saludos _________________ Quien encuentra un amigo, encuentra un tesoro.
Chi trova un amico, trova un tesoro.
Firma hecha por un tesoro (<TheDarkMan>)
|
|
| Volver arriba |
|
 |
|
|
|