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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Duda con timer
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con timer  (Leído 4,081 veces)
llAudioslavell

Desconectado Desconectado

Mensajes: 177


Ver Perfil
Duda con timer
« en: 23 Marzo 2013, 08:49 am »

Hola a todos
bueno estoy creando un pequeño juego y me eh topado con un problema....
Tengo mi codigo dentro de un timer, lo que hace es cada segundo mover un picturebox  en linea recta como si fuera un coche.... pero yo necesito que despues de X segundos vuelva a ejecutarse nuevamente el codigo para que movilize a otro picturebox

    Private Sub Carril1(ByVal obj As Control, ByVal x As Integer, ByVal y As Integer)

    End Sub

    Private Sub Timer1_Tick(B...............

   Carril1(Button6, C1x, C1y)

    End Sub
Es como si fuera una carrera de coches, ojala que me haya dejado entender... agradeceria bastante si me ayudasen solo quiero que me den una idea.... no quiero que me dean codigo solo una idea o pista


En línea

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Duda con timer
« Respuesta #1 en: 23 Marzo 2013, 17:46 pm »

Tenes 2 timers, que cada 1 segundos mueven un picturebox. Y otro que cada X tiempo active el segundo. Los 2 timers llamaran a tu funcion MoverCarril(byref carro as Control, byval x As integer, Byval y as Integer), pero tendran como diferencia lo que se envie como argumento. En este Timer es donde haras tus calculaciones para ver cual se movera mas rapido, aunque no se que haras.

O tu no sabes cuantos autos habra? Si es asi, tendrias que crear los Timers en tiempo real como array de controles con un bucle que sera la cantidad de autos que andaran.


En línea

llAudioslavell

Desconectado Desconectado

Mensajes: 177


Ver Perfil
Re: Duda con timer
« Respuesta #2 en: 24 Marzo 2013, 08:25 am »

Tenes 2 timers, que cada 1 segundos mueven un picturebox. Y otro que cada X tiempo active el segundo. Los 2 timers llamaran a tu funcion MoverCarril(byref carro as Control, byval x As integer, Byval y as Integer), pero tendran como diferencia lo que se envie como argumento. En este Timer es donde haras tus calculaciones para ver cual se movera mas rapido, aunque no se que haras.

O tu no sabes cuantos autos habra? Si es asi, tendrias que crear los Timers en tiempo real como array de controles con un bucle que sera la cantidad de autos que andaran.

solo 2 autos pasaran por el mismo carril mi estimado, el problema es que nose como activar el 2do auto para que se visualize pero en X segundos..  yo pienso que es un Random pero la verdad nose como hacerlo.... iluminame.
« Última modificación: 24 Marzo 2013, 14:49 pm por Audioslave™ » En línea

llAudioslavell

Desconectado Desconectado

Mensajes: 177


Ver Perfil
Re: Duda con timer
« Respuesta #3 en: 24 Marzo 2013, 14:50 pm »

solo 2 autos pasaran por el mismo carril mi estimado, el problema es que nose como activar el 2do auto para que se visualize pero en X segundos..  yo pienso que es un Random pero la verdad nose como hacerlo.... iluminame.

Duda:
esto se podria hacer con 1 timer? o es necesario otro mas....
yo lo estoy intentando con solo 1, dime de que manera seria mejor... gracias !!
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Duda con timer
« Respuesta #4 en: 24 Marzo 2013, 15:37 pm »

Tengo mi codigo dentro de un timer, lo que hace es cada segundo mover un picturebox  en linea recta como si fuera un coche....pero yo necesito que despues de X segundos vuelva a ejecutarse nuevamente el codigo para que movilize a otro picturebox

Se me ocurre que podrías modificar el atributo "TAG" del timer para especificar (en modo de string) e identificar el control que quieres mover.

Aquí tienes un ejemplo que acabo de hacer, por si te sirve, aunque en lugar de usar el tag para especificar el control, lo hago para especificar la dirección (me aburría xD), puedes ajustarlo a tus necesidades...



Código
  1. Public Class Form1
  2.  
  3.    ' Añade 1 button y 2 picturebox al form
  4.  
  5.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  6.        MoveControl(PictureBox1, Direction.Up, 1, 2000)
  7.        While StartMove.Enabled : Application.DoEvents() : End While
  8.        MoveControl(PictureBox2, Direction.Up, 200, 10000)
  9.    End Sub
  10.  
  11. #Region " Move controls "
  12.  
  13.    Dim ControlToMove As Control
  14.    Dim StartMove As New Timer
  15.    Dim EndMove As New Timer
  16.  
  17.    Public Enum Direction
  18.        Up = 0
  19.        Down = 1
  20.        Left = 2
  21.        Right = 3
  22.    End Enum
  23.  
  24.    Public Sub MoveControl(ByVal Control As Control, _
  25.                           ByVal Direction As Direction, _
  26.                           ByVal Interval As Int16, _
  27.                           ByVal TimeOut As Int16)
  28.  
  29.        ControlToMove = Control
  30.  
  31.        StartMove.Tag = Direction
  32.  
  33.        AddHandler StartMove.Tick, AddressOf StartMove_Tick
  34.        AddHandler EndMove.Tick, AddressOf EndMove_Tick
  35.  
  36.        StartMove.Interval = Interval
  37.        EndMove.Interval = TimeOut
  38.  
  39.        StartMove.Start()
  40.        EndMove.Start()
  41.  
  42.    End Sub
  43.  
  44.    Private Sub StartMove_Tick(sender As Object, e As EventArgs)
  45.        Select Case sender.tag
  46.            Case 0 : ControlToMove.Location = New Point(ControlToMove.Location.X, ControlToMove.Location.Y - 1)
  47.            Case 1 : ControlToMove.Location = New Point(ControlToMove.Location.X, ControlToMove.Location.Y + 1)
  48.            Case 2 : ControlToMove.Location = New Point(ControlToMove.Location.X - 1, ControlToMove.Location.Y)
  49.            Case 3 : ControlToMove.Location = New Point(ControlToMove.Location.X + 1, ControlToMove.Location.Y)
  50.        End Select
  51.    End Sub
  52.  
  53.    Private Sub EndMove_Tick(sender As Object, e As EventArgs)
  54.        StartMove.Stop()
  55.        EndMove.Stop()
  56.    End Sub
  57.  
  58. #End Region
  59.  
  60. End Class
« Última modificación: 24 Marzo 2013, 15:59 pm por EleKtro H@cker » En línea



$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Duda con timer
« Respuesta #5 en: 24 Marzo 2013, 16:12 pm »

Seria usando algo como lo que hice Elektro, pero sin usar el Enum Direction y solo llamando asi:

MoveControl(PictureBox2, NumeroRandom1, NumeroRandom2, NumeroRandom3)

Esos numeros Randoms los generaras antes (busca en google como generar numeros random vb.net elguille)

Pero realmente no se que haras, si nos explicas como seria todo el juego completo seria mejor.
En línea

llAudioslavell

Desconectado Desconectado

Mensajes: 177


Ver Perfil
Re: Duda con timer
« Respuesta #6 en: 1 Abril 2013, 21:03 pm »

Que creo que ya lo resolvi... solo que aun me quedan unos problemas pero si creo poder mejorarlo... tengo una duda,en una  #Region....   que  codigo puedo agrupar ahi... o no entiendo  :-\
En línea

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Duda con timer
« Respuesta #7 en: 2 Abril 2013, 04:49 am »

Eso simplemente es para agrupar codigo que te parezca a ti que no necesitas verlo todo el tiempo. Por ejemplo si tienes muchas funciones, las agrupas asi con el IDE puedes "cerrar" la region para que quede sin verse tanto codigo que no estas necesitando. Es solo algo que maneja el IDE de visual studio, para los programadores, pero no interfiere en nada con el programa que realizaras.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Duda con timer
« Respuesta #8 en: 3 Abril 2013, 13:26 pm »

Regiones, sumários de código XML y Namespaces, todo es para mantener el código ordenado, aunque los Namespaces si que interfieren en el código (se le da un uso más fácil) pero a mi punto de vista es más para organizar el código.

saludos
En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Timer Grande
Programación Visual Basic
Meg 8 5,873 Último mensaje 18 Febrero 2006, 19:14 pm
por zhidow
Problema con Timer
Programación Visual Basic
CsarGR 1 1,429 Último mensaje 15 Febrero 2006, 20:53 pm
por BenRu
timer en php
PHP
Mr.Chispa 2 3,454 Último mensaje 4 Octubre 2006, 16:49 pm
por Mr.Chispa
duda sobre Timer
Programación Visual Basic
fraktal 6 1,860 Último mensaje 13 Noviembre 2006, 19:33 pm
por Pitoniso
duda timer
Programación Visual Basic
Daklon 2 1,854 Último mensaje 24 Octubre 2009, 20:12 pm
por Daklon
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines