vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Schleifen-Problem 
Autor: Äxel
Datum: 04.10.04 01:37

Problem: In nem Spiel gibts Punkte, wenn man etwas einsammelt. Dafür gibts bestimmte Punkte-Abschnitte, die in Schleifen stehen und in denen jeweils das gleiche Unterprogramm läuft. Aber meine Grafiken stoppen nach dem ersten Durchlauf. Der Code:
... 
Private Sub mainloopkram()
'Tastatur abfragen und entsprechende Richtung setzen
Select Case Inkey
    Case vbKeyUp
    Playerrichtung = 1
    Case vbKeyDown
    Playerrichtung = 2
    Case vbKeyRight
    Playerrichtung = 3
    Case vbKeyLeft
    Playerrichtung = 4
End Select
 
'Spieler bewegen
'Wenn sich der Spieler an einer Wand befindet -> Richtung ändern
Select Case Playerrichtung
    Case 1
    If PlayerPos.Y >= 0 Then PlayerPos.Y = PlayerPos.Y - 4 Else _
      Playerrichtung = 2
    Case 3
    If PlayerPos.X <= 558 - 57 Then PlayerPos.X = PlayerPos.X + 4 Else _
      Playerrichtung = 4
    Case 2
    If PlayerPos.Y <= 526 - 84 Then PlayerPos.Y = PlayerPos.Y + 4 Else _
      Playerrichtung = 1
    Case 4
    If PlayerPos.X >= 0 Then PlayerPos.X = PlayerPos.X - 4 Else _
      Playerrichtung = 3
End Select
 
'Ziel bewegen
'Wenn sich das Ziel an einer Wand befindet -> Richtung ändern
Select Case Zielrichtung
    Case 1 'hoch
    If ZielPos.Y >= 0 Then ZielPos.Y = ZielPos.Y - 4 Else Zielrichtung = 2
    Case 3 'rechts
    If ZielPos.X <= 558 - 59 Then ZielPos.X = ZielPos.X + 4 Else Zielrichtung = 4
    Case 2 'runter
    If ZielPos.Y <= 526 - 84 Then ZielPos.Y = ZielPos.Y + 4 Else Zielrichtung = 1
    Case 4 'links
    If ZielPos.X >= 0 Then ZielPos.X = ZielPos.X - 4 Else Zielrichtung = 3
End Select
 
'Änderungen der Positionen auf die Grafiken übertragen
picPlayer.Top = PlayerPos.Y * 15
picPlayer.Left = PlayerPos.X * 15
 
picZiel.Top = ZielPos.Y * 15
picZiel.Left = ZielPos.X * 15
 
'Berührt der Spieler den Punkt?
If ZielPos.X + 59 >= PlayerPos.X And ZielPos.X <= PlayerPos.X + 57 _
And ZielPos.Y + 67 >= PlayerPos.Y And ZielPos.Y <= PlayerPos.Y + 85 Then
 
    'Wenn Ja,Score erhöhen..
    Score = Score + 1
    lblScore.Caption = Score
 
    '..und Ziel an neue Positon setzen
    ZielPos.X = rand(59, 500)
    ZielPos.Y = rand(67, 500)
 
    '..und Startrichtung für Ziel definieren
    Zielrichtung = rand(1, 4)
 
End If
 
'Programm "ausbremsen",indem einige Millisekunden gewartet wird
Sleep GameSpeed
 
'Windowskram erledigen
DoEvents
 
End Sub
'/////////////////////////////////////////////////////////////////////////////
Private Sub mainloop()
'// Mainloop //
'//////////////
 
Do
mainloopkram
'Anweisungen...............
Loop While Score < 10
 
Do While Score >= 11 And Score < 20
mainloopkram
'Anweisungen...............
Loop
 
Do While Score >= 21 And Score < 30
mainloopkram
'Anweisungen...............
Loop
 
Do While Score >= 31 And Score < 40
mainloopkram
'Anweisungen...............
Loop
 
.
.
.
usw.
'/////////////////////////////////////////////////////
Private Sub lblStart_Click()
 
'// Anfangsgeschwindigkeit + Startzeit
GameSpeed = 40
GameTime = 45   'Sekunden Zeit
 
'// Timerinterval einstellen
tmrTime.Interval = 1000         'Zählt Zeit herunter
 
'// Startpositionen der Grafiken festlegen
ZielPos.X = rand(10, 500)
ZielPos.Y = rand(10, 500)
PlayerPos.X = 40
PlayerPos.Y = 100
 
'// Player Startrichtung
Playerrichtung = rand(1, 4)
 
'// Ziel Startrichtung
Zielrichtung = rand(1, 4)
 
'// Mainloop starten
mainloop
 
End Sub
Nach dem ersten Durchlauf, das heißt wenn man wieder auf den Start-Button für das nächste Level (10-20 Punkte) drückt, werden die Grafiken zwar an neue Positionen gesetzt, bewegen sich jedoch nicht! habe schon so viel ausprobiert... Woran liegt das!?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Schleifen-Problem543Äxel04.10.04 01:37
Re: Schleifen-Problem258Marcus W04.10.04 06:14
Re: Schleifen-Problem357Äxel04.10.04 13:46

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel