'Next' without 'for' - Huch?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Belion

Betreff: 'Next' without 'for' - Huch?

BeitragFr, Mai 06, 2011 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallöchen,
Bin irgendwie nicht in der Lage, einen einfachen Fehler zu entdecken, der "Next without For"-Fehler.
Hab in meinem Code, eine Funktion nur diese Spuckt irgendwie einen Fehler aus, - ungewollt.

Mag mir jemand auf die Sprünge helfen und mir mitteilen, was ich genau falsch gemacht habe, und wo genau das Problem liegt?

Gesamte Funktion
Code: [AUSKLAPPEN]
Function Stein_Function()
   
    If Steine_Erstellen = True
        Steine_Erstellen = False
        ;Stein Types Erstellen
        For Y=0 To MapX_Size
            For X=0 To MapY_Size
                If map(X,Y) = 3
                    Stein.Steintyp = New Steintyp
                    SteinX = X
                    SteinY = Y
                    Steinfalling = False
                End If
            Next
        Next
    End If
   
   
    If MilliSecs()>=Timer_Fallen+Gravity_Speed
        Timer_Fallen = MilliSecs()
        For Stein.Steintyp = Each Steintyp
            ;Stein Fällt wen Luft unter dem Stein ist.(+Gravity Timer)
            If SteinX = SpielerX And SteinY+1 = SpielerY    ;### STEHT SPIELER UNTER STEIN DANN MACH NIX...AUSSER
                If Steinfalling= True Then ; HIER FUNKTION DIE BEIM AUFPRALL PASSIERT EINFÜGEN!!!!!              ;### WENN STEIN GERADE AM FALLEN IST ... BOOOOM
            Else                                            ;### ANDERNFALLS
                Steinfalling=False                            ;### ERSTMAL FALLING AUF FALSE SETZEN
                If map(SteinX,SteinY+1) = 1
                    map(SteinX,SteinY) = 1
                    map(SteinX,SteinY+1) = 3
                    SteinY = SteinY +1
                    Steinfalling = True                    ;### STEIN BEGINNT ZU FALLEN, ALSO FALLING = TRUE
                End If
            EndIf
           
           
            ;Stein rutscht auf Stein und nach Links wen dort Luft ist.(+Gravity +Timer)
            If map(SteinX-1,SteinY) = 1
                If map(SteinX-1,SteinY+1) = 1
                    If SteinX-1 = SpielerX ;X Daten
                        If (SteinY = SpielerY-1) Or (SteinY = SpielerY);Y Daten
                        Else
                            map(SteinX,SteinY) = 1
                            map(SteinX-1,SteinY) = 3
                            SteinX = SteinX -1
                        End If
                    Else
                        map(SteinX,SteinY) = 1
                        map(SteinX-1,SteinY) = 3
                        SteinX = SteinX -1
                    End If
                End If
            End If
           
           
            ;Stein rutscht auf Stein und nach Rechts wen dort Luft ist.(+Gravity +Timer)
            If map(SteinX+1,SteinY) = 1
                If map(SteinX+1,SteinY+1) = 1
                    If SteinX+1 = SpielerX ;X Daten
                        If (SteinY = SpielerY-1) Or (SteinY = SpielerY) ;YDaten
                        Else
                            If map(SteinX,SteinY+1)
                                map(SteinX,SteinY) = 1
                                map(SteinX+1,SteinY) = 3
                                SteinX = SteinX +1
                            End If
                        End If
                    Else
                        If map(SteinX,SteinY+1)
                            map(SteinX,SteinY) = 1
                            map(SteinX+1,SteinY) = 3
                            SteinX = SteinX +1
                        End If
                    End If
                End If
            End If
           
           
            ;Steine Rollen auf Steinboden nach Links
            If map(SteinX,SteinY+1) = 3
            Else
                If map(SteinX-1,SteinY+1) = 4
                Else
                    If SteinX-1 = SpielerX ;X Daten
                    Else
                        If (SteinY = SpielerY-1) Or (SteinY = SpielerY);Y Daten
                        Else
                            If map(SteinX,SteinY+1) = 4
                                If map(SteinX-1,SteinY) = 1
                                    map(SteinX,SteinY) = 1
                                    map(SteinX-1,SteinY) = 3
                                    SteinX = SteinX -1
                                End If
                            End If
                        End If
                    End If
                End If
            End If
           
           
            ;Steine Rollen auf Steinboden nach Rechts
            If map(SteinX,SteinY+1) = 3
            Else
                If map(SteinX+1,SteinY+1) = 4
                Else
                    If SteinX+1 = SpielerX ;X Daten
                    Else
                        If (SteinY = SpielerY-1) Or (SteinY = SpielerY);Y Daten
                        Else
                            If map(SteinX,SteinY+1) = 4
                                If map(SteinX+1,SteinY) = 1
                                    map(SteinX,SteinY) = 1
                                    map(SteinX+1,SteinY) = 3
                                    SteinX = SteinX +1
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        Next
    End If
   
   
    For Stein.Steintyp = Each Steintyp
        ;Stein Schieben Funktion
        If KeyDown(205) ;Rechts Schieben
            If SpielerX+1 = SteinX
                If SpielerY = SteinY
                    If map(SteinX+1,SteinY) = 1
                        map(SteinX,SteinY) = 1
                        map(SteinX+1,SteinY) = 3
                        SteinX = SteinX +1
                    End If
                End If
            End If
        End If
       
       
        If KeyDown(203) ;Links Schieben
            If SpielerX-1 = SteinX
                If SpielerY = SteinY
                    If map(SteinX-1,SteinY) = 1
                        map(SteinX,SteinY) = 1
                        map(SteinX-1,SteinY) = 3
                        SteinX = SteinX -1
                    End If
                End If
            End If
        End If
    Next
   
End Function



Die Fehlerzeile ist folgender Absatz:

Code: [AUSKLAPPEN]
            ;Steine Rollen auf Steinboden nach Rechts
            If map(SteinX,SteinY+1) = 3
            Else
                If map(SteinX+1,SteinY+1) = 4
                Else
                    If SteinX+1 = SpielerX ;X Daten
                    Else
                        If (SteinY = SpielerY-1) Or (SteinY = SpielerY);Y Daten
                        Else
                            If map(SteinX,SteinY+1) = 4
                                If map(SteinX+1,SteinY) = 1
                                    map(SteinX,SteinY) = 1
                                    map(SteinX+1,SteinY) = 3
                                    SteinX = SteinX +1
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        Next
    End If


Vorletzte Zeile, "Next" wird als Fehler angepriesen. wie erwähnt next without for.
Wo genau sitzt der Fehler?.
Bin für jede hilfe dankbar.

lg

BladeRunner

Moderator

BeitragFr, Mai 06, 2011 14:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau ob Du für jedes if ein endif hast, für jedes While ein wend ... etc..
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Belion

BeitragFr, Mai 06, 2011 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Fehler gefunden.
Danke dir.
Habs wohl irgendwie übersehen, aber es klappt.
War ein endif zuwenig, an einer bestimmten Stelle.
 

PacMani

BeitragFr, Mai 06, 2011 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Solche Fehler entstehen aufgrund Spaghetticode. In deinem Fall vermeidest du den mit And, Or und Not.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group