Autor Beitrag
SturmElch
Hält's aus hier
Beiträge: 2

Windows 7
c# (VS2010 Express)
BeitragVerfasst: Mi 29.01.14 20:38 
Hallo Forum :)
Ich habe Folgendes Problem:
Ich habe in meinem kleinen (noch nicht fertigen) Programm (Tennisspiel) einen Timer eingefügt, der jedesmal stoppt wenn eine der beiden Seiten einen Punkt erzielt,
der Punktestand ändert sich auch dementsprechend (anzeige in einer TextBox), sobald das spiel dann aber weiterläuft wird der Punktestand auf 0 zurückgesetzt :nixweiss:
Ist es außerdem möglich, die eingabe in ein Textfeld nicht zu erlauben? Sonst geraten da vllt. mal buchstaben o.ä. rein
Danke schonmal :zustimm:
ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        Dim PunkteSpieler As Integer = 0
        Dim PunkteComputer As Integer = 0

        Ball.Left -= links
        Ball.Top -= oben

        If Ball.Top <= 0 Then oben = -10
        If Ball.Bottom >= 345 Then oben = +10

        ' If Ball.Left <= 6.5 Then Timer1.Stop()
        If Ball.Left <= 6.5 Then x = True Else x = False
        If x = True Then PunkteComputer += 1
        If x = True Then Ball.Location = New Point(321, 165)


        'If Ball.Right >= 642 Then Timer1.Stop()
        If Ball.Right > 642 Then y = True Else y = False
        If y = True Then PunkteSpieler += 1
        If y = True Then Ball.Location = New Point(321, 165)


        TextBox1.Text = PunkteSpieler.ToString
        TextBox2.Text = PunkteComputer.ToString


        Plattform1.Top = MousePosition.Y - 240

        If Ball.Top > Plattform2.Top Then Plattform2.Top += 5 Else Plattform2.Top -= 5

        If Ball.Left <= Plattform1.Right Then
            If Ball.Bottom >= Plattform1.Top Then
                If Ball.Top <= Plattform1.Bottom Then links = -10
            End If
        End If

        If Ball.Right >= Plattform2.Left Then
            If Ball.Bottom >= Plattform2.Top Then
                If Ball.Top <= Plattform2.Bottom Then links = +10
            End If
        End If

    End Sub



Moderiert von user profile iconTh69: Topic aus C# - Die Sprache verschoben am Do 30.01.2014 um 09:11
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 29.01.14 20:58 
Merkwürdiges C#

Vermutlich willst du am Anfang nicht mit 0 für PunkteSpieler bzw. PunkteComputer anfangen so wie du es im Moment machst. Entweder du machst aus den beiden Klassenvariablen so das die Werte den Aufruf des TickEvent überleben und beim nächsten Aufruf nicht wieder neu initialisiert werden. Oder du benutzt die Werte in den TextBoxen. Schreibst also am Anfang die Werte aus den Textboxen in die beiden Variablen.

Zitat:
Ist es außerdem möglich, die eingabe in ein Textfeld nicht zu erlauben


Enabled der Textboxen auf false setzen. Oder einfach keine Textboxen nehmen sondern Labels.

Für diesen Beitrag haben gedankt: SturmElch
SturmElch Threadstarter
Hält's aus hier
Beiträge: 2

Windows 7
c# (VS2010 Express)
BeitragVerfasst: Mi 29.01.14 21:55 
Danke :)
aber das mit den Textboxen ist mir ganz unklar -hat mit labels funktioniert- aber könnte ja mal in zukunft nützlich sein :D