hola gente toy haciendo el juego de los ladrillos pero me trave en una parte , que es en la que tengo que hacer que la bola rebote en la plataforma , hice que rebote en las paredes pero o se como hacer que rebote en la plataforma , la pataforma se mueve.
bola se llama = bola
el cuadrado , bue paredes = shape1
plataforma = linea
timer= timer 1
---------------------------------------
Dim xx As Integer
Dim yy As Integer
Dim x As Integer
Dim y As Integer
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 97 And linea.Left > 240 Then
linea.Left = linea.Left - 300
End If
If KeyAscii = 100 And linea.Left < 9840 Then
linea.Left = linea.Left + 300
End If
If KeyAscii = 119 And linea.Top > 4560 Then
linea.Top = linea.Top - 300
End If
If keyaascii = 115 And linea.Top < 4620 Then
linea.Top = linea.Top + 300
End If
End Sub
Private Sub Form_Load()
xx = 50
yy = 35
End Sub
Private Sub KBRD_Timer()
End Sub
Private Sub Timer1_Timer()
Dim i#
For i = 0 To bola.Count - 1
bola(i).Left = bola(i).Left + xx
bola(i).Top = bola(i).Top + yy
Next
For i = 0 To bola.Count - 1
If bola(i).Left < Shape1.Left Or bola(i).Left + bola(i).Width > Shape1.Left + Shape1.Width Then
xx = -xx
End If
Next
For i = 0 To bola.Count - 1
If bola(i).Top < Shape1.Top Or bola(i).Top + bola(i).Height > Shape1.Top + Shape1.Height Then
yy = -yy
End If
Next
End Sub
imagen :
(http://i72.imagethrust.com/i/224035/dibujo.jpg) (http://www.imagethrust.com)
tienes que hacer que kuando el top de la plataforma y el de la bola sean iguales rebote, pero ojo, tieens que calcular las medidas de la plataforma y kon eso kalkular el left de la plataforma.....
Te ago un eskema:
<------------------->
----------------------
| |
----------------------
Eso es la plataforma y la flecha de arriba es la longitud, peus tienes que hacer que si el left de la bola sea igual o inferior pero no inferior a la medida de la plataforma rebote.....mira, supongamos que la plataforma mide 200 y el left de la plataforma esta en 1200, pos tendria que ser: si el top de la bola = top de la plataforma y el left de la bola es igual o inferior a 1200 y igual o superior a 1000 (1200-200 = 1000) la bola rebote....no si se lo habras pillado, si kieres te lo vuelvo a explikar... ;) ;)
Salu2
hola Hendrix. mira , no entendi mucho tu explicacion. me lo podrias explicar un poco mojor
saludos
Bueno, si no entendiste kon esa explikacion no se si te lo sabre explikar mejor... :-\ :-\ :-\
Vuelve a leertelo y sino ya mirare haber komo te lo expliko.... :-\ :-\
Salu2
No me gusta hacer este tipo de cosas, pero te doy el proyecto completo de mi arkanoid, es single-player y es lo más cutre que te puedas imaginar xD
Lo que te dice Hendrix esta bien explicado aca e agrego un pequeño codigo viejo ,haber si lo entendes mejor:
If bola.Top < linea.Top + linea.Height And bola.Top > linea.Top - linea.Height And bola.Left > linea.Left And bola.Left < linea.Left + linea.Width Then
yy = -50'sale para arriba
xx = 35
End If
Razonalo parece complicado pero es simple .-.
en www.pscode.com hay varios ejemplos sobre el tema
hola gente , muchas gracias ya eh comprendido y pude hacerlo bien
saludoz