Scriptfehler in Funktion, Globale Variable wird als nicht deklariert bezeichnet?

  • Schönen Tag allen (Auch wenns regnet) :)

    Ich hab diesmal ein komisches Problem:
    Ich habe eine Variable ($MoveX) Global deklariert. Nun bekomme ich aber immer einen Error, wenn ich diese Variable in einer Funktion (_Left()) aufrufe. Warum?

    Hier ist das Skript:

    Skript
    [autoit]

    #include <GDIPlus.au3>
    #include <GuiConstantsEx.au3>
    #Include <WinAPI.au3>
    #include <Array.au3>
    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    AdlibEnable("_Right", 10)
    AdlibEnable("_Left", 10)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    Global $MoveX = 0
    Global $MoveY = 0
    Global $hImage = _GDIPlus_ImageLoadFromFile(@DesktopDir&"\DieWelt.png")
    Global $MapWidth = 40
    Global $MapHeigth = 15
    Global $hGraphic, $hGUI

    [/autoit] [autoit][/autoit] [autoit]

    $hGUI = GUICreate("Map1", 324, 244, -1, -1, 0x14CA0000, 0x00050100)
    GUISetBkColor(0x000000, $hGUI)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ $Widht = 0
    ;~ $High = 0

    [/autoit] [autoit][/autoit] [autoit]

    Do
    _DrawMap(1 - $MoveX, 1, 1, 6)
    _DrawMap(2 - $MoveX, 1, 3, 6)
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Shutdown()

    [/autoit] [autoit][/autoit] [autoit]

    Func _DrawMap($Position1, $Position2, $Pic1, $Pic2)
    _GDIPlus_GraphicsDrawImageRectRect($hGraphic, $hImage, ($Pic1 - 1) * 16, ($Pic2 - 1) * 16, 16, 16, 2 + ($Position1 - 1) * 15 + ($Position1 - 1), 2 + ($Position2 - 1) * 15 + ($Position2 - 1), 16, 16)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Right()
    If $MoveX >= 20 Then
    If _IsPressed(27) Then
    $MoveX += 1
    EndIf
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Left()
    If $MoveX <= $MapWidth Then
    If _IsPressed(25) Then
    $MoveX -= 1
    EndIf
    EndIf
    EndFunc

    [/autoit]
    Error Meldung

    C:\Dokumente und Einstellungen\XXX\Desktop\Scripten\Map1.au3 (52) : ==> Variable used without being declared.:
    If $MoveX <= $MapWidth Then
    If ^ ERROR

    Edit: Fehler gefunden (SEHR DUMM VON MIR! >.<)
    AdlibEnable war falsch gesetzt.

    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

    Einmal editiert, zuletzt von H2112 (13. August 2009 um 18:39)