• 14-05-2010, 19:38:26
    #1
    Merhaba at yarışı oyunu yapmak istedim belirli aşamalarını yaptım atlar gidiyor hangisinin gittiği kazanıyor mgboxla gösteriyor hile yapıyorum onlar calışıyor onlarda sorunum yok.Problem yaşadıgım kısım hile yaptığımda at hızlanıyor gidiyor fakat zamanı öne gecmiyor

    Para yatır bölümü yapmak istedim nereden esti aklıma bilmiyorum Para yatırma

    Örnek ben 1.ata para yatırdım başkaları da diger atlara yatırdı paralar textbox'a giriliyor yanlarında CheckBox var para yatırdıgım atı sececeğim bunun
    yarışı 1. bitiren paraların hepisini alacak

    Aşagıdaki kod para yatırma kodun bir kısmı ben böyle yaptım mantıklımı sizce

            If PictureBox1.Left > 725 Then 'para bölümü  ve kimin kazandıgını gösteriyor '
                Timer1.Stop()            'PARA OLAYINI BURDA BİR ŞEYLER YAPMAY CALIŞTIM AMA OLMADI GALİBA ' 
                Timer2.Stop()
                Button1.Enabled = True
                Button2.Enabled = True
                If CheckBox7.Checked Then
                    toplam = para1 + para2 + para3 + para4 + para5 + para6
                    MsgBox("1.At Yarışı Kazandı" & " " & toplam)
    
                End If
    Public Class Form1
        Dim at1, at2, at3, at4, at5, at6 As Integer
        Dim para1, para2, para3, para4, para5, para6, toplam As Integer
    
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Timer1.Start()
            Timer2.Start()
            Button1.Enabled = False
            Button2.Enabled = False
            Label1.Enabled = False 'LABELLERİN FALSE DURUMU 
            Label2.Enabled = False
            Label3.Enabled = False
            Label4.Enabled = False
            Label5.Enabled = False
            Label6.Enabled = False
            Label7.Enabled = False
            Label8.Enabled = False
            Label9.Enabled = False
            Label10.Enabled = False
            Label11.Enabled = False
            Label12.Enabled = False
            Label13.Enabled = False
            Label14.Enabled = False
            Label15.Enabled = False
            Label16.Enabled = False
            Label17.Enabled = False
            Label18.Enabled = False
            
    
    
        End Sub
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Timer1.Interval = 100
            Randomize()
            at1 = Rnd() * 1
            at2 = Rnd() * 1
            at3 = Rnd() * 1
            at4 = Rnd() * 1
            at5 = Rnd() * 1
            at6 = Rnd() * 1
    
            PictureBox1.Left += Rnd() * at1 'ATLARIN GİDİŞİ
            PictureBox2.Left += Rnd() * at2
            PictureBox3.Left += Rnd() * at3
            PictureBox4.Left += Rnd() * at4
            PictureBox5.Left += Rnd() * at5
            PictureBox6.Left += Rnd() * at6
            If CheckBox1.Checked Then
                PictureBox1.Left += Rnd() * 5
                PictureBox2.Left += Rnd() * 1
                PictureBox3.Left += Rnd() * 1
                PictureBox4.Left += Rnd() * 1
                PictureBox5.Left += Rnd() * 1
                PictureBox6.Left += Rnd() * 1
            End If
            If CheckBox2.Checked Then
                PictureBox2.Left += Rnd() * 7
                PictureBox1.Left += Rnd() * 1
                PictureBox3.Left += Rnd() * 1
                PictureBox4.Left += Rnd() * 1
                PictureBox5.Left += Rnd() * 1
                PictureBox6.Left += Rnd() * 1
            End If
    
            If CheckBox3.Checked Then
    
                PictureBox1.Left += Rnd() * 1
                PictureBox2.Left += Rnd() * 1
                PictureBox3.Left += Rnd() * 9
                PictureBox4.Left += Rnd() * 1
                PictureBox5.Left += Rnd() * 1
                PictureBox6.Left += Rnd() * 1
            End If
    
            If CheckBox4.Checked Then
    
                PictureBox1.Left += Rnd() * 1
                PictureBox2.Left += Rnd() * 1
                PictureBox3.Left += Rnd() * 1
                PictureBox4.Left += Rnd() * 11
                PictureBox5.Left += Rnd() * 1
                PictureBox6.Left += Rnd() * 1
            End If
    
            If CheckBox5.Checked Then
    
                PictureBox1.Left += Rnd() * 1
                PictureBox2.Left += Rnd() * 1
                PictureBox3.Left += Rnd() * 1
                PictureBox4.Left += Rnd() * 1
                PictureBox5.Left += Rnd() * 13
                PictureBox6.Left += Rnd() * 1
    
            End If
    
            If CheckBox6.Checked Then
    
                PictureBox1.Left += Rnd() * 1
                PictureBox2.Left += Rnd() * 1
                PictureBox3.Left += Rnd() * 1
                PictureBox4.Left += Rnd() * 1
                PictureBox5.Left += Rnd() * 1
                PictureBox6.Left += Rnd() * 15
            End If
       
    
        End Sub
    
        Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
      
    
            Timer2.Interval = 10 ' ATLARIN ZAMANLARI
            Label1.Text = Label1.Text + at1
            If Label1.Text = 100 Then
                Label1.Text = 0
                Label2.Text = Label2.Text + 1
            ElseIf Label2.Text = 59 Then
                Label2.Text = 0
                Label3.Text = Label3.Text + 1
            End If
            Label4.Text = Label4.Text + 1
            If Label4.Text = 99 Then
                Label4.Text = 0
                Label5.Text = Label5.Text + at2
            ElseIf Label5.Text = 59 Then
                Label5.Text = 0
                Label6.Text = Label6.Text + 1
    
            End If
            Label7.Text = Label7.Text + at3
            If Label7.Text = 99 Then
                Label7.Text = 0
                Label8.Text = Label8.Text + 1
            ElseIf Label8.Text = 59 Then
                Label8.Text = 0
                Label9.Text = Label9.Text + 1
            End If
    
            Label10.Text = Label10.Text + at4
            If Label10.Text = 99 Then
                Label10.Text = 0
                Label11.Text = Label11.Text + 1
            ElseIf Label11.Text = 59 Then
                Label11.Text = 0
                Label12.Text = Label12.Text
    
            End If
            Label13.Text = Label13.Text + at5
            If Label13.Text = 99 Then
                Label13.Text = 0
                Label14.Text = Label14.Text + 1
            ElseIf Label14.Text = 59 Then
                Label14.Text = 0
                Label15.Text = Label15.Text + 1
    
            End If
    
            Label16.Text = Label16.Text + at6
            If Label16.Text = 99 Then
                Label16.Text = 0
                Label17.Text = Label17.Text + 1
            ElseIf Label17.Text = 59 Then
                Label18.Text = Label18.Text + 1
    
            End If
    
            TextBox1.Text = para1
            TextBox2.Text = para2
            TextBox3.Text = para3
            TextBox4.Text = para4
            TextBox5.Text = para5
            TextBox6.Text = para6
    
            If PictureBox1.Left > 725 Then 'para bölümü  ve kimin kazandıgını gösteriyor '
                Timer1.Stop()            'PARA OLAYINI BURDA BİR ŞEYLER YAPMAY CALIŞTIM AMA OLMADI GALİBA ' 
                Timer2.Stop()
                Button1.Enabled = True
                Button2.Enabled = True
                If CheckBox7.Checked Then
                    toplam = para1 + para2 + para3 + para4 + para5 + para6
                    MsgBox("1.At Yarışı Kazandı" & " " & toplam)
    
                End If
    
    
            ElseIf PictureBox2.Left > 725 Then
                Timer1.Stop()
                Timer2.Stop()
                Button1.Enabled = True
                Button2.Enabled = True
    
            ElseIf PictureBox3.Left > 725 Then
                Timer1.Stop()
                Timer2.Stop()
    
                Button1.Enabled = True
                Button2.Enabled = True
    
            ElseIf PictureBox4.Left > 725 Then
                Timer1.Stop()
                Timer2.Stop()
                Button1.Enabled = True
                Button2.Enabled = True
    
            ElseIf PictureBox5.Left > 725 Then
                Timer1.Stop()
                Timer2.Stop()
                Button1.Enabled = True
                Button2.Enabled = True
    
            ElseIf PictureBox6.Left > 725 Then
                Timer1.Stop()
                Timer2.Stop()
                Button1.Enabled = True
                Button2.Enabled = True
    
            End If
    
    
        
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Label1.Text = "0"
            Label2.Text = "0"
            Label3.Text = "0"
            Label4.Text = "0"
            Label5.Text = "0"
            Label6.Text = "0"
            Label7.Text = "0"
            Label8.Text = "0"
            Label9.Text = "0"
            Label10.Text = "0"
            Label11.Text = "0"
            Label12.Text = "0"
    
           
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            End
        End Sub
    
     
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    
    
        End Sub
    
        Private Sub GroupBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox1.Enter
    
        End Sub
    End Class




    Teşekkür ederim
  • 14-05-2010, 22:03:18
    #2
    güncel
  • 16-05-2010, 13:32:38
    #3
    Yardımcı olabilecek
  • 16-05-2010, 21:36:41
    #4
    Kodlarını inceledim
    Senin ynalışın şurda
    her atın left değerlerini tek bir timer içinde yaptırıyorsun sorun burda ortaya cıkıyor.
    Diğer timer da da kontrol etmeye çalışmışsın.
    Şimdi her atın ayrı ayrı timeri olması lazım her at kendi hızını bilecek ve yine her at kendi left değerlerini ayarlayacak ve yine her at kazanıp kazanmadığını kendi bilecek
    Yani her at için ayrı timer yapman lazım.
    önerim nesneye yönelik programlama bilyorsan
    At isimli bir sınıf yarat( eskiden vb de buna müdül derdik)
    ve bu sınıfı Control ;Sınfından türet
    Ve bu sınıf 1 adet timer 1 adet picturebox içersin bunları kodla yaratacksın.
    Artı atın özellikleri rengi hile durumu Location(left top degerleri) degeerleirini atama ve alma (get set) yapan üye fonksiyonlarını yaz.
    Bunları bitirdkten sonra tek yapman gereken
    At at=new At(Atın özellklerini siter burdada verebilirsn)
    dedikten sonra atı forma eklersin geri kalan herşeyi sınıf kendisi yapar.

    Yok ben bunları yapamam dersen
    Her at için ayrı timer yarat ve her atın durmunu o timer içinde kontrol ettir.
  • 16-05-2010, 22:20:06
    #5
    NoVoLuMe adlı üyeden alıntı: mesajı görüntüle
    Kodlarını inceledim
    Senin ynalışın şurda
    her atın left değerlerini tek bir timer içinde yaptırıyorsun sorun burda ortaya cıkıyor.
    Diğer timer da da kontrol etmeye çalışmışsın.
    Şimdi her atın ayrı ayrı timeri olması lazım her at kendi hızını bilecek ve yine her at kendi left değerlerini ayarlayacak ve yine her at kazanıp kazanmadığını kendi bilecek
    Yani her at için ayrı timer yapman lazım.
    önerim nesneye yönelik programlama bilyorsan
    At isimli bir sınıf yarat( eskiden vb de buna müdül derdik)
    ve bu sınıfı Control ;Sınfından türet
    Ve bu sınıf 1 adet timer 1 adet picturebox içersin bunları kodla yaratacksın.
    Artı atın özellikleri rengi hile durumu Location(left top degerleri) degeerleirini atama ve alma (get set) yapan üye fonksiyonlarını yaz.
    Bunları bitirdkten sonra tek yapman gereken
    At at=new At(Atın özellklerini siter burdada verebilirsn)
    dedikten sonra atı forma eklersin geri kalan herşeyi sınıf kendisi yapar.

    Yok ben bunları yapamam dersen
    Her at için ayrı timer yarat ve her atın durmunu o timer içinde kontrol ettir.
    İlginiz için teşekkürler her at için ayrı timer kullanarak deniyim ben