GDI+ UDF problem

  • So, nach ewiger Zeit bin ich wieder mal einer der ein Hilfethread aufmacht *heul*
    Beim besten willen:
    Ich komme nicht weiter ;)
    [ENTER]
    So, hier mal das Script der UDF:

    Spoiler anzeigen
    [autoit]


    Func _MunzeCreate($BackBuffer, $MunzeX, $MunzeY, $ID, $ImageMunze, $PersonWidth = 25, $PersonHeight = 34, $MunzeWidth = 25, $MunzeHeight = 25, $PersonX = $PosAktuell1, $PersonY = $PosAktuell2)
    If ($PersonX <= $MunzeX + $MunzeWidth And $PersonX + $PersonWidth - 1 >= $MunzeX) and ($PersonY + $PersonHeight - 1 >= $MunzeY And $PersonY <= $MunzeY + $MunzeHeight) Then
    $Munze = $Munze & $ID
    $MunzeGesamt += 1
    ElseIf ($PersonX >= $MunzeX + $MunzeWidth And $PersonX <= $MunzeX + $MunzeWidth + 3) and ($PersonY + $PersonHeight - 1 >= $MunzeY And $PersonY <= $MunzeY + $MunzeHeight) Then
    $Munze = $Munze & $ID
    $MunzeGesamt += 1
    ElseIf ($PersonX >= $MunzeX - $PersonWidth + 1 And $PersonX <= $MunzeX + $MunzeWidth) and ($PersonY <= $MunzeY + 3 And $PersonY >= $MunzeY - $PersonHeight - 3) Then
    $Munze = $Munze & $ID
    $MunzeGesamt += 1
    ElseIf ($PersonX >= $MunzeX - $PersonWidth + 1 And $PersonX <= $MunzeX + $MunzeWidth) and ($PersonY >= $MunzeY + $MunzeHeight + 3 And $PersonY <= $MunzeY + $MunzeHeight + 6) Then
    $Munze = $Munze & $ID
    $MunzeGesamt += 1
    EndIf
    For $i = 1 to 3
    Local $MunzeUberprufen = StringMid($Munze, $i, 1)
    Switch $MunzeUberprufen
    Case $ID
    $MunzeX = -25
    $MunzeY = -25
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $ImageMunze, $MunzeX, $MunzeY, 25, 25)
    Case Else
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $ImageMunze, $MunzeX, $MunzeY, 25, 25)
    EndSwitch
    Next
    EndFunc ;==>_MunzeCreate

    [/autoit]

    Und hier das Script in Verbindung:

    Spoiler anzeigen
    [autoit]


    #include <GameUDF.au3>
    _GDIPlus_Startup()
    Global $GUIWidth = 450, $GUIHeight = 250
    Global $ImageHintergrund = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\EDITOR\BACKGROUND.PNG")
    Global $ImageLinkUnten = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\EDITOR\LinkUnten.PNG")
    Global $ImageLinkOben = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\EDITOR\LinkOben.PNG")
    Global $ImageLinkRechts = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\EDITOR\LinkRechts.PNG")
    Global $ImageLinkLinks = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\EDITOR\LinkLinks.PNG")
    Global $ImageMunze = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\EDITOR\Munze.PNG")
    Global $ImageZiel = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\EDITOR\Ziel.PNG")
    Global $ImageText = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\EDITOR\TextFeld.PNG")
    Global $ImageNPC1 = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\EDITOR\NPC1.PNG")
    Global $Tree = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\EDITOR\Tree.PNG")
    Global $MunzeZahl = 0

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

    Global $PosAktuell1 = 25
    Global $PosAktuell2 = 25
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Domino Zelda --> Journy of GDI+", 450, 250, 192, 124)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $Graphic = _GDIPlus_GraphicsCreateFromHWND($Form1) ;Frontbuffer
    $Bitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $Graphic) ;Bitmap für Frontbuffer
    $Backbuffer = _GDIPlus_ImageGetGraphicsContext($Bitmap) ;Backbuffer

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3
    _Exit()
    EndSwitch
    _ReDraw()
    WEnd
    Func _ReDraw()
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageHintergrund, 0, 0, $GUIWidth, $GUIHeight)

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

    _TreeCreate($Backbuffer, $PosAktuell1, $PosAktuell2, 200, 150, $Tree) ;UDF
    _NpcCreate($Backbuffer, $PosAktuell1, $PosAktuell2, 200, 50, $ImageNPC1, "abc", 2, $ImageText)
    _NpcCreate($Backbuffer, $PosAktuell1, $PosAktuell2, 300, 50, $ImageNPC1, "aaa", 1, $ImageText)
    _MunzeCreate($Backbuffer, 200, 100, 2, $ImageMunze)
    _MunzeCreate($Backbuffer, 50, 150, 3, $ImageMunze)
    _MunzeCreate($Backbuffer, 150, 50, 4, $ImageMunze)
    _Laufen($Backbuffer, $ImageLinkUnten, $ImageLinkOben, $ImageLinkRechts, $ImageLinkLinks)
    _GDIPlus_GraphicsDrawImageRect($Graphic, $Bitmap, 0, 0, $GUIWidth, $GUIHeight) ; Back to front Buffer
    EndFunc ;==>_ReDraw
    Func _Exit()
    GUISetState(@SW_HIDE)
    Exit
    _GDIPlus_ImageDispose($ImageHintergrund)
    _GDIPlus_ImageDispose($ImageLinkUnten)
    _GDIPlus_ImageDispose($ImageLinkOben)
    _GDIPlus_ImageDispose($ImageLinkRechts)
    _GDIPlus_ImageDispose($ImageLinkLinks)
    _GDIPlus_ImageDispose($ImageMunze)
    _GDIPlus_ImageDispose($ImageText)
    _GDIPlus_ImageDispose($ImageZiel)
    _GDIPlus_GraphicsDispose($Backbuffer)
    _GDIPlus_BitmapDispose($Bitmap)
    _GDIPlus_GraphicsDispose($Graphic)
    _GDIPlus_Shutdown()
    EndFunc ;==>_Exit

    [/autoit]

    Die UDF findet ihr unter Domino Zelda (die weiteren), das IMAGE auch !

    Mein Problem:

    Man kann jede X-Beliebige Münze ansteuern ABER:

    Er nimmt die erste auf, und überprüft ab sofort auch bei den andern nicht mehr !

    Die anderen verschwinden ja noch nicht mal O.o

    Hoffe jemand kann helfen (wenn keiner prob versteht, einfach testen :D)

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • ich hab mal mit dem Script ZP rumprobiert, hab mal doppelt MunzeCreate1 benutzt, gestartet, die 1. Münze geholt, schon ist die zweite münze weg!
    weiss nicht, aber du sollst mehr MunzeCreate Funktionen scripten...

    Zitat von EliteMattthias

    Keiner ne Antwort ?


    Erinnert mich an einen Thread von dir... entweder Zelda 2D oder Zeichenpapier XD