¿Cómo aplicar un FOR?

Iniciado por Adrisim, 3 Diciembre 2012, 18:46 PM

0 Miembros y 1 Visitante están viendo este tema.

Adrisim

Buen día a todos.

Soy un programados principiante en VB.Net. No tengo mucho conocimiento en POO. Sin embargo, me enganché en hacer un pequeño videojuego para excentar la materia como proyecto final, y la verdad he tenido ciertos problemas.

Es un juego simple de ''Tiro al Arco''. Todo sale perfectamente. Puedo impactar en las distintas zonas del blanco y abonar puntos, pero para que el juego esté perfecto, la recomendación de mi profesor, fue que hiciera que el blanco se moviera después de cada impacto; es decir, que tomara nuevas posiciones.

Para dibujar el primer blanco, utilicé el código que está abajo y tomando eso como referencia, supuse que para mover el blanco de lugar después de cada impacto, tendría que aplicarle un for a los argumentos de la variable ''DrawEllipse'', pero al parecer, no se puede.

¿Alguno de ustedes tiene alguna recomendación?.


Muchas gracias.



Private Sub Dibujar_blanco()

        Dim Pluma As New Drawing.Pen(Color.Blue, 6)
        Dim p_ori_s As clsPunto, p_fin_s As clsPunto
        Dim p_ori As New clsPunto, p_fin As New clsPunto
        Dim XX1 As Single, YY1 As Single, XX2 As Single, YY2 As Single

        p_ori.p_X = Me.Escala_X2
        p_fin.p_X = Me.Escala_X2
        p_ori.p_Y = 0.7
        p_fin.p_Y = -0.7
        p_ori_s = convertir_fis_sys(p_ori)
        p_fin_s = convertir_fis_sys(p_fin)
        XX1 = Int(p_ori_s.p_X)
        YY1 = Int(p_ori_s.p_Y)
        XX2 = Int(p_fin_s.p_X)
        YY2 = Int(p_fin_s.p_Y)
        Me.pbxMain.CreateGraphics.DrawLine(Pluma, XX1, YY1, XX2, YY2)
        Pluma.Dispose()


        p_ori.p_X = Me.Escala_X2
        p_fin.p_X = Me.Escala_X2
        p_ori.p_Y = 0.3
        p_fin.p_Y = -0.3
        p_ori_s = convertir_fis_sys(p_ori)
        p_fin_s = convertir_fis_sys(p_fin)
        XX1 = Int(p_ori_s.p_X)
        YY1 = Int(p_ori_s.p_Y)
        XX2 = Int(p_fin_s.p_X)
        YY2 = Int(p_fin_s.p_Y)
        Pluma = New Drawing.Pen(Color.Red, 6)
        Me.pbxMain.CreateGraphics.DrawLine(Pluma, XX1, YY1, XX2, YY2)
        Pluma.Dispose()



        p_ori.p_X = Me.Escala_X2
        p_fin.p_X = Me.Escala_X2
        p_ori.p_Y = 0.15
        p_fin.p_Y = -0.15
        p_ori_s = convertir_fis_sys(p_ori)
        p_fin_s = convertir_fis_sys(p_fin)
        XX1 = Int(p_ori_s.p_X)
        YY1 = Int(p_ori_s.p_Y)
        XX2 = Int(p_fin_s.p_X)
        YY2 = Int(p_fin_s.p_Y)
        Pluma = New Drawing.Pen(Color.Yellow, 6)
        Me.pbxMain.CreateGraphics.DrawLine(Pluma, XX1, YY1, XX2, YY2)
        Pluma.Dispose()


    End Sub

kub0x

Buenas Adrisim,

si lo que quieres es mover la posicion del blanco en el caso de que haya recibido un impacto te recomiendo que utilices números aleatorios que representen posiciones en el mapa. De esta forma cuando aciertas en el blanco, éste se moverá a otra posición (aleatoria).

Pasos a seguir: Manejas el evento del impacto, inicializas el nº aleatorio y mueves el blanco segun esa posición.

Saludos!
Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate


Keyen Night

Con el evento Paint del Control en el que se dibuja el Blanco, puedes dibujar el Elipse y que el tamaño y la posición sean variables que puedas manejar fuera del evento para así cuando se de el impacto puedas darle valores aleatorios (como muy bien dice kub0x) e invocar el método Invalidate para redibujar el control.
La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...