Visual Basic - ARKANOID VB

Life is soft - evento anual de software empresarial
 
Vista:

ARKANOID VB

Publicado por ester (1 intervención) el 15/05/2014 13:33:23
Hola a todos! soy nueva por aquí y también se puede decir que soy nueva en vb.
estoy haciendo una especie de arkanoid en vb. necesito el movimiento de la pelota, que tiene que ser un movimiento de rebote con las paredes del formulario y con una barra (pictureBox) que se mueve con el teclado (ya programada)
¿Alguien puede ayudarme? Puedo mandaros el proyecto sin problemas si me lo pedis.
gracias:) ester.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ARKANOID VB

Publicado por David (4 intervenciones) el 19/05/2014 16:32:41
Hola Ester,

No entiendo si tu pregunta es general o especifica de hacer el movimiento de la pelota, pero te contesto ambas y te puedo dar algunos consejos que quizas ya hayas implementado o te sirvan:

1) Si estas en VB6 te recomiendo habilitar la propiedad "Keypreview" del formulario, para que puedas pulsar los botones.

2) Imagino que estaras usando la funcion Keydown del formulario, usando los KeyCode de las flechas para mover el picture, si no es asi, avisame y te copio un codigo para mover el picture.

3) Aunque sea simplemente un arkanoid, hay que ser muy ordenado y por ejemplo saber el tamaño de los cubos de arriba que van a desaparecer al chocar con la pelota y sobretodo saber su posicion (left - top) si son todos iguales, a partir de la posicion de uno podes deducir la posicion del resto.

4) Lo que yo haria en primera para mover la pelota, seria ponerla en un control image o picturebox y moverla con un Timer, la velocidad de la pelota la vas a poder maniobrar con el "Interval" del timer y va a tener que habilitarse al momento de apretar algun boton (por ejemplo Enter)

Despues de eso si te sirve de algo puedo darte algunas ideas (que quizas ya pensaste, pero podrian aportarte algo)

- Si miramos un Arkanoid, la pelota siempre arranca moviendose en diagonal a la derecha es decir:

A) Apretamos Enter y la pelota empieza a moverse en diagonal a la derecha algo como esto:

1
2
3
4
Private Sub Timer1_Timer()
PicturePelota.Top = PicturePelota.Top - 20
PicturePelota.Left = PicturePelota.Left + 20
End Sub

B) Hasta ahi es sencillo, con eso se moverá en diagonal hasta el infinito, ahora bien es preciso asignar la posicion LEFT a la pared, es decir cuando la pelota tenga un LEFT igual a ese numero va a cambiar su direccion, en vez de "+20" hay que poner "-20" eso se puede lograr con un simple IF o con una variable que cambie de "20" a "-20" cuando llegamos a esa posicion. (Si asignas un valor mayor a 20, la pelota se movera mas rapido, identico a bajar el Interval del timer1)

C) Con los cubos podrias armar una funcion o una subrutina asi no programas cada cubo! la idea es la misma , solo que esta vez vas a comparar el top y el left del picture pelota con los top y left de los cubos, si estan a una distancia especifica (que va a variar segun el tamaño de los cubos) estos deberian desaparecer y la pelota cambiaria su direccion TOP y su direccion LEFT, sin embargo esto requiere pensarlo bien y hacer pruebas, hay que ver como reducir codigo, te lo dejo aca para que no sea muy extenso, pero la seguimos si queres, espero que te haya servido a modo de analisis basico.

Saludos !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar