Autor
|
Tema: Duda con timer (Leído 4,053 veces)
|
llAudioslavell
Desconectado
Mensajes: 177
|
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
Mensajes: 1.842
|
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
Mensajes: 177
|
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
Mensajes: 177
|
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
Mensajes: 9.866
|
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... Public Class Form1 ' Añade 1 button y 2 picturebox al form Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click MoveControl(PictureBox1, Direction.Up, 1, 2000) While StartMove.Enabled : Application.DoEvents() : End While MoveControl(PictureBox2, Direction.Up, 200, 10000) End Sub #Region " Move controls " Dim ControlToMove As Control Dim StartMove As New Timer Dim EndMove As New Timer Public Enum Direction Up = 0 Down = 1 Left = 2 Right = 3 End Enum Public Sub MoveControl(ByVal Control As Control, _ ByVal Direction As Direction, _ ByVal Interval As Int16, _ ByVal TimeOut As Int16) ControlToMove = Control StartMove.Tag = Direction AddHandler StartMove.Tick, AddressOf StartMove_Tick AddHandler EndMove.Tick, AddressOf EndMove_Tick StartMove.Interval = Interval EndMove.Interval = TimeOut StartMove.Start() EndMove.Start() End Sub Private Sub StartMove_Tick(sender As Object, e As EventArgs) Select Case sender.tag Case 0 : ControlToMove.Location = New Point(ControlToMove.Location.X, ControlToMove.Location.Y - 1) Case 1 : ControlToMove.Location = New Point(ControlToMove.Location.X, ControlToMove.Location.Y + 1) Case 2 : ControlToMove.Location = New Point(ControlToMove.Location.X - 1, ControlToMove.Location.Y) Case 3 : ControlToMove.Location = New Point(ControlToMove.Location.X + 1, ControlToMove.Location.Y) End Select End Sub Private Sub EndMove_Tick(sender As Object, e As EventArgs) StartMove.Stop() EndMove.Stop() End Sub #End Region End Class
|
|
« Última modificación: 24 Marzo 2013, 15:59 pm por EleKtro H@cker »
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
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
Mensajes: 177
|
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
Mensajes: 1.842
|
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
Mensajes: 9.866
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Timer Grande
Programación Visual Basic
|
Meg
|
8
|
5,826
|
18 Febrero 2006, 19:14 pm
por zhidow
|
|
|
Problema con Timer
Programación Visual Basic
|
CsarGR
|
1
|
1,415
|
15 Febrero 2006, 20:53 pm
por BenRu
|
|
|
timer en php
PHP
|
Mr.Chispa
|
2
|
3,421
|
4 Octubre 2006, 16:49 pm
por Mr.Chispa
|
|
|
duda sobre Timer
Programación Visual Basic
|
fraktal
|
6
|
1,840
|
13 Noviembre 2006, 19:33 pm
por Pitoniso
|
|
|
duda timer
Programación Visual Basic
|
Daklon
|
2
|
1,842
|
24 Octubre 2009, 20:12 pm
por Daklon
|
|