elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  ¿Cómo aplicar un FOR?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo aplicar un FOR?  (Leído 2,987 veces)
Adrisim

Desconectado Desconectado

Mensajes: 18


"El conocimiento es la llave del éxito"


Ver Perfil
¿Cómo aplicar un FOR?
« en: 3 Diciembre 2012, 18:46 pm »

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.



Código:
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


En línea

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: ¿Cómo aplicar un FOR?
« Respuesta #1 en: 3 Diciembre 2012, 22:46 pm »

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!


En línea

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

Visita mi perfil en ResearchGate

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: ¿Cómo aplicar un FOR?
« Respuesta #2 en: 3 Diciembre 2012, 23:06 pm »

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.
En línea

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...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines