GDI+ Domino-Zelda

  • So, endlich ist meine UDF in Aufbau und weit ;)


    Hier ist mal ein auszug des alten Scripts:

    Spoiler anzeigen
    [autoit]


    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    HotKeySet("{ESC}", "_Exit")
    HotKeySet("{SPACE}", "_Talk")
    _GDIPlus_Startup()
    Global $GUIWidth = 450, $GUIHeight = 250
    Global $Link = 1
    Global $Talk = 0
    ; _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageKiste, $KistePos1, $KistePos2, 25, 25) ;Trägt Kiste in Buffer ein
    ; _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageKiste, $KistePos1, $KistePos2, 25, 25) ; Trägt Kiste auch ein
    Global $MunzeZahl = 0
    Global $ImageFileHintergrund = @ScriptDir&"\Hintergrund450x250.PNG"
    Global $ImageFileLinkUnten = @ScriptDir&"\LinkUnten.PNG"
    Global $ImageFileLinkOben = @ScriptDir&"\LinkOben.PNG"
    Global $ImageFileLinkRechts = @ScriptDir&"\LinkRechts.PNG"
    Global $ImageFileLinkLinks = @ScriptDir&"\LinkLinks.PNG"
    Global $ImageFileKiste = @ScriptDir&"\Kiste.PNG"
    Global $ImageFileMunze = @ScriptDir&"\Munze.PNG"
    Global $ImageFileMunzeAnzahl0 = @ScriptDir&"\Munze03.PNG"
    Global $ImageFileMunzeAnzahl1 = @ScriptDir&"\Munze13.PNG"
    Global $ImageFileMunzeAnzahl2 = @ScriptDir&"\Munze23.PNG"
    Global $ImageFileMunzeAnzahl3 = @ScriptDir&"\Munze33.PNG"
    Global $ImageFileZiel = @ScriptDir&"\Ziel.PNG"
    Global $ImageFileText = @ScriptDir&"\TextFeld400x50.png"
    Global $ImageFileNpc1 = @ScriptDir&"\NPC1 25x34.PNG"

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

    Global $PosAktuell1 = 25 ;X von Link
    Global $PosAktuell2 = 25 ;Y von Link

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

    Global $KistePos1 = 100 ;Später für Kiste X
    Global $KistePos2 = 25 ;Später für Kiste Y

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

    Global $Munze1Pos1 = 200
    Global $Munze1Pos2 = 50

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

    Global $Munze2Pos1 = 300
    Global $Munze2Pos2 = 100

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

    Global $Munze3Pos1 = 400
    Global $Munze3Pos2 = 200
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Zeichen Papier", 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][/autoit] [autoit][/autoit] [autoit]

    $ImageHintergrund = _GDIPlus_ImageLoadFromFile($ImageFileHintergrund)
    $ImageLinkUnten = _GDIPlus_ImageLoadFromFile($ImageFileLinkUnten)
    $ImageLinkOben = _GDIPlus_ImageLoadFromFile($ImageFileLinkOben)
    $ImageLinkRechts = _GDIPlus_ImageLoadFromFile($ImageFileLinkRechts)
    $ImageLinkLinks = _GDIPlus_ImageLoadFromFile($ImageFileLinkLinks)
    $ImageKiste = _GDIPlus_ImageLoadFromFile($ImageFileKiste)
    $ImageMunze = _GDIPlus_ImageLoadFromFile($ImageFileMunze)
    $ImageMunzeAnzahl0 = _GDIPlus_ImageLoadFromFile($ImageFileMunzeAnzahl0)
    $ImageMunzeAnzahl1 = _GDIPlus_ImageLoadFromFile($ImageFileMunzeAnzahl1)
    $ImageMunzeAnzahl2 = _GDIPlus_ImageLoadFromFile($ImageFileMunzeAnzahl2)
    $ImageMunzeAnzahl3 = _GDIPlus_ImageLoadFromFile($ImageFileMunzeAnzahl3)
    $ImageZiel = _GDIPlus_ImageLoadFromFile($ImageFileZiel)
    $ImageText = _GDIPlus_ImageLoadFromFile($ImageFileText)
    $ImageNPC1 = _GDIPlus_ImageLoadFromFile($ImageFileNpc1)

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

    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageHintergrund,0,0, $GUIWidth, $GUIHeight)

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

    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageLinkUnten, $PosAktuell1, $PosAktuell2, 25, 34)

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

    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $PosAktuell1, $PosAktuell2, 25, 34)

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

    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunzeAnzahl0, 0, 0, 25, 34)
    ;Münzen

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

    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)

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

    _GDIPlus_GraphicsDrawImageRect($Graphic, $Bitmap, 0, 0, $GUIWidth, $GUIHeight) ; Back to front Buffer
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _Exit()

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

    EndSwitch

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

    If _IsPressed("25") Then
    $Link = 4
    _LinksDraw()
    EndIf
    If _IsPressed("27") Then
    $Link = 3
    _RechtsDraw()
    EndIf
    If _IsPressed("28") Then
    $Link = 1
    _UntenDraw()
    EndIf
    If _IsPressed("26") Then
    $Link = 2
    _ObenDraw()
    EndIf
    _ReDraw()
    WEnd
    Func _Exit()
    GUISetState(@SW_HIDE)
    Exit
    _GDIPlus_ImageDispose($ImageHintergrund)
    _GDIPlus_ImageDispose($ImageLinkUnten)
    _GDIPlus_ImageDispose($ImageLinkOben)
    _GDIPlus_ImageDispose($ImageLinkRechts)
    _GDIPlus_ImageDispose($ImageLinkLinks)
    _GDIPlus_ImageDispose($ImageKiste)
    _GDIPlus_ImageDispose($ImageMunze)
    _GDIPlus_ImageDispose($ImageMunzeAnzahl0)
    _GDIPlus_ImageDispose($ImageMunzeAnzahl1)
    _GDIPlus_ImageDispose($ImageMunzeAnzahl2)
    _GDIPlus_ImageDispose($ImageMunzeAnzahl3)
    _GDIPlus_ImageDispose($ImageText)
    _GDIPlus_ImageDispose($ImageZiel)
    _GDIPlus_GraphicsDispose($Backbuffer)
    _GDIPlus_BitmapDispose($Bitmap)
    _GDIPlus_GraphicsDispose($Graphic)
    _GDIPlus_Shutdown()
    EndFunc
    Func _ReDraw()
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageHintergrund,0,0, $GUIWidth, $GUIHeight)
    Switch $Link
    Case 1
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageLinkUnten, $PosAktuell1 ,$PosAktuell2, 25, 34)
    Case 2
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageLinkOben, $PosAktuell1 ,$PosAktuell2, 25, 34)
    Case 3
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageLinkRechts, $PosAktuell1 ,$PosAktuell2, 25, 34)
    Case 4
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageLinkLinks, $PosAktuell1 ,$PosAktuell2, 25, 34)
    EndSwitch

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

    Switch $MunzeZahl
    Case 0
    If ($PosAktuell1 >= $Munze1Pos1-25 and $PosAktuell1 <= $Munze1Pos1+25) and ($PosAktuell2 >= $Munze1Pos2-25 and $PosAktuell2 <= $Munze1Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    $MunzeZahl = 1
    ElseIf ($PosAktuell1 >= $Munze2Pos1-25 and $PosAktuell1 <= $Munze2Pos1+25) and ($PosAktuell2 >= $Munze2Pos2-25 and $PosAktuell2 <= $Munze2Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    $MunzeZahl = 2
    ElseIf ($PosAktuell1 >= $Munze3Pos1-25 and $PosAktuell1 <= $Munze3Pos1+25) and ($PosAktuell2 >= $Munze3Pos2-25 and $PosAktuell2 <= $Munze3Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    $MunzeZahl = 3
    Else
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    EndIf
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunzeAnzahl0, 346, 0, 104, 23)
    Case 1 ;Münze 1 ist bereits aufgesammelt
    If ($PosAktuell1 >= $Munze2Pos1-25 and $PosAktuell1 <= $Munze2Pos1+25) and ($PosAktuell2 >= $Munze2Pos2-25 and $PosAktuell2 <= $Munze2Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    $MunzeZahl = 12 ;Münze 1 + 2
    ElseIf ($PosAktuell1 >= $Munze3Pos1-25 and $PosAktuell1 <= $Munze3Pos1+25) and ($PosAktuell2 >= $Munze3Pos2-25 and $PosAktuell2 <= $Munze3Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    $MunzeZahl = 13 ;Münze 1 + 3
    Else
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    EndIf
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunzeAnzahl1, 346, 0, 104, 23)
    Case 2 ;Münze 2 ist bereits aufgesammelt
    If ($PosAktuell1 >= $Munze1Pos1-25 and $PosAktuell1 <= $Munze1Pos1+25) and ($PosAktuell2 >= $Munze1Pos2-25 and $PosAktuell2 <= $Munze1Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    $MunzeZahl = 21 ;Münze 2 + 1
    ElseIf ($PosAktuell1 >= $Munze3Pos1-25 and $PosAktuell1 <= $Munze3Pos1+25) and ($PosAktuell2 >= $Munze3Pos2-25 and $PosAktuell2 <= $Munze3Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    $MunzeZahl = 23 ;Münze 2 + 3
    Else
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    EndIf
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunzeAnzahl1, 346, 0, 104, 23)
    Case 3 ;Münze 3 ist bereits aufgesammelt
    If ($PosAktuell1 >= $Munze1Pos1-25 and $PosAktuell1 <= $Munze1Pos1+25) and ($PosAktuell2 >= $Munze1Pos2-25 and $PosAktuell2 <= $Munze1Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    $MunzeZahl = 31 ;Münze 3 + 1
    ElseIf ($PosAktuell1 >= $Munze2Pos1-25 and $PosAktuell1 <= $Munze2Pos1+25) and ($PosAktuell2 >= $Munze2Pos2-25 and $PosAktuell2 <= $Munze2Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    $MunzeZahl = 32 ;Münze 3 + 2
    Else
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    EndIf
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunzeAnzahl1, 346, 0, 104, 23)
    Case 12 ;Münze 1 + 2 sind bereits aufgesammelt
    If ($PosAktuell1 >= $Munze3Pos1-25 and $PosAktuell1 <= $Munze3Pos1+25) and ($PosAktuell2 >= $Munze3Pos2-25 and $PosAktuell2 <= $Munze3Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    $MunzeZahl = 123 ; 1 + 2 + 3
    Else
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    EndIf
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunzeAnzahl2, 346, 0, 104, 23)
    Case 13 ;Münze 1 + 3 sind bereits aufgesammelt
    If ($PosAktuell1 >= $Munze2Pos1-25 and $PosAktuell1 <= $Munze2Pos1+25) and ($PosAktuell2 >= $Munze2Pos2-25 and $PosAktuell2 <= $Munze2Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    $MunzeZahl = 123
    Else
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    EndIf
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunzeAnzahl2, 346, 0, 104, 23)
    Case 21 ;Münze 2 + 1 sind bereits aufgesammelt
    If ($PosAktuell1 >= $Munze3Pos1-25 and $PosAktuell1 <= $Munze3Pos1+25) and ($PosAktuell2 >= $Munze3Pos2-25 and $PosAktuell2 <= $Munze3Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    $MunzeZahl = 123
    Else
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    EndIf
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunzeAnzahl2, 346, 0, 104, 23)
    Case 23 ;Münze 2 + 3 sind bereits aufgesammelt
    If ($PosAktuell1 >= $Munze1Pos1-25 and $PosAktuell1 <= $Munze1Pos1+25) and ($PosAktuell2 >= $Munze1Pos2-25 and $PosAktuell2 <= $Munze1Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    $MunzeZahl = 123
    Else
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    EndIf
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunzeAnzahl2, 346, 0, 104, 23)
    Case 31 ;Münze 3 + 1 sind bereits aufgesammelt
    If ($PosAktuell1 >= $Munze2Pos1-25 and $PosAktuell1 <= $Munze2Pos1+25) and ($PosAktuell2 >= $Munze2Pos2-25 and $PosAktuell2 <= $Munze2Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    $MunzeZahl = 123
    Else
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    EndIf
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunzeAnzahl2, 346, 0, 104, 23)
    Case 32 ;Münze 3 + 2 sind bereits aufgesammelt
    If ($PosAktuell1 >= $Munze1Pos1-25 and $PosAktuell1 <= $Munze1Pos1+25) and ($PosAktuell2 >= $Munze1Pos2-25 and $PosAktuell2 <= $Munze1Pos2+25) Then
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze2Pos1, $Munze2Pos2, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze3Pos1, $Munze3Pos2, 25, 25)
    $MunzeZahl = 123
    Else
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunze, $Munze1Pos1, $Munze1Pos2, 25, 25)
    EndIf
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunzeAnzahl2, 346, 0, 104, 23)

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

    Case 123
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageZiel, 25, 25, 24, 32)
    If $PosAktuell1 <= 49 and $PosAktuell2 <= 57 Then
    MsgBox(0, "Herzlichen Glückwunsch !", "Du hast das Spiel von EliteMattthias erfolgreich bewältigt !")
    _Exit()
    EndIf
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageMunzeAnzahl3, 346, 0, 104, 23)

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

    EndSwitch
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageNPC1, 400, 25, 25, 34)
    Switch $Talk
    Case 1
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageText, 25, 174, 400, 50)
    _GDIPlus_GraphicsDrawString($Backbuffer, "Hallo mein Freund !", 45, 180)
    Case 2
    _GDIPlus_GraphicsDrawImageRect($Backbuffer, $ImageText, 25, 174, 400, 50)
    _GDIPlus_GraphicsDrawString($Backbuffer, "Du spielst also das Spiel"&@CRLF&"von EliteMattthias ?", 45, 180)
    EndSwitch

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

    _GDIPlus_GraphicsDrawImageRect($Graphic, $Bitmap, 0, 0, $GUIWidth, $GUIHeight) ; Back to front Buffer
    EndFunc
    Func _LinksDraw()
    If $PosAktuell1 <= 25 Then
    $PosAktuell1 = 25
    Else
    $PosAktuell1 -= 3
    EndIf
    EndFunc
    Func _RechtsDraw()
    If $PosAktuell1 >= 400 Then
    $PosAktuell1 = 400
    ElseIf $PosAktuell1 <= 425 and $PosAktuell1 >= 375 and $PosAktuell2 <= 62 Then
    Else
    $PosAktuell1 += 3
    EndIf
    EndFunc
    Func _ObenDraw()
    If $PosAktuell2 <= 25 Then
    $PosAktuell2 = 25
    ElseIf $PosAktuell1 <= 425 and $PosAktuell1 >= 375 and $PosAktuell2 <= 62 Then
    Else
    $PosAktuell2 -= 3
    EndIf
    EndFunc
    Func _UntenDraw()
    If $PosAktuell2 >= 191 Then
    $PosAktuell2 = 191
    Else
    $PosAktuell2 += 3
    EndIf
    EndFunc
    Func _Talk()
    If $PosAktuell1 <= 425 and $PosAktuell1 >= 375 and $PosAktuell2 <= 62 Then
    Switch $Talk
    Case 0
    $Talk = 1
    Case 1
    $Talk = 2
    Case 2
    $Talk = 0
    EndSwitch
    EndIf
    EndFunc

    [/autoit]

    Und hier das neue:

    Spoiler anzeigen
    [autoit]


    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <GameUDF.au3>
    _GDIPlus_Startup()
    Global $GUIWidth = 450, $GUIHeight = 250
    Global $Link = 1
    Global $Talk = 0
    Global $Laufen = 1
    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 $GUI_EVENT_CLOSE
    _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", $ImageText)
    _MunzeCreate1($Backbuffer, $PosAktuell1, $PosAktuell2, 200, 100, $ImageMunze)
    _MunzeCreate2($Backbuffer, $PosAktuell1, $PosAktuell2, 50, 150, $ImageMunze)
    _MunzeCreate3($Backbuffer, $PosAktuell1, $PosAktuell2, 150, 50, $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]


    Und die UDF für das neue Script:

    Spoiler anzeigen
    [autoit]


    #include <GDIPlus.au3>
    #include <Misc.au3>
    #cs
    ; UDF: GDIPlus Domino - Zelda alias "Zeichen Papier" Tree UDF
    ;
    ; Author: EliteMattthias
    ;
    ; Func Name: _TreeCreate($BackBuffer, $PersonX, $PersonY, $TreeX, $TreeY, $TreeFile,[$PersonWidth, [$PersonHeight, [$TreeWidth=25,[ $TreeHeight=25]]]])
    ;
    ; Parameter(s): $BackBuffer = Backbuffer auf den der Baum gezeichnet wird
    ; $PersonX = Die X Position der Person (vorher in Variable definieren)
    ; $PersonY = Die Y Position der Person (vorher in Variable definieren)
    ; $TreeX = Die X-Achse wo der Baum gezeichnet werden soll
    ; $TreeY = Die Y-Achse wo der Baum gezeichnet werden soll
    ; $File = Die Datei woraus der Baum entnommen wird (muss mit _GDIPlus_ImageLoadFromFile() geöffnet werden)
    ;
    ; OPTIONAL
    ;
    ; $TreeWidth = Die Breite des Baumes (standard 25)
    ; $TreeHeight = Die Höhe des Baumes (standard 25)
    ; $PersonWidth = Die Breite der Person
    ; $PersonHeight = Die Höhe der Person
    ;
    ;
    ; Funktion: Zeichnet einen Baum für das Spiel --GDIPlus Domino - Zelda alias "ZeichenPapier"-- der als Aufhaltendes Objekt wirkt
    ;
    ; Includes: <GDIPlus.au3>
    ;
    ;
    ; Needs: Es müssen extra Variablen für die Position des Charakters genommen werden !
    ; $PosAktuell1 = X
    ; $PosAktuell2 = Y
    ;
    ;
    ; (C) EliteMattthias
    ; All Copyrights reserved by EliteMattthias
    #ce
    Global $PosAktuell1
    Global $PosAktuell2
    Func _TreeCreate($BackBuffer, $PersonX, $PersonY, $TreeX, $TreeY, $TreeFile, $PersonWidth = 25, $PersonHeight = 34, $TreeWidth = 25, $TreeHeight = 25)
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $TreeFile, $TreeX, $TreeY, $TreeWidth, $TreeHeight)
    If ($PersonX <= $TreeX + $TreeWidth And $PersonX + $PersonWidth - 1 >= $TreeX) and ($PersonY + $PersonHeight - 1 >= $TreeY And $PersonY <= $TreeY + $TreeHeight) Then ;Prüft ob die Person am BAUM von LINKS ist !
    $PosAktuell1 = $TreeX - $PersonWidth
    ElseIf ($PersonX >= $TreeX + $TreeWidth And $PersonX <= $TreeX + $TreeWidth + 3) and ($PersonY + $PersonHeight - 1 >= $TreeY And $PersonY <= $TreeY + $TreeHeight) Then ; Prüft ob die Person am BAUM von RECHTS ist !
    $PosAktuell1 = $TreeX + $TreeWidth + 4
    ElseIf ($PersonX >= $TreeX - $PersonWidth + 1 And $PersonX <= $TreeX + $TreeWidth) and ($PersonY <= $TreeY + 3 And $PersonY >= $TreeY - $PersonHeight - 3) Then
    $PosAktuell2 = $TreeY - $PersonHeight - 3
    ElseIf ($PersonX >= $TreeX - $PersonWidth + 1 And $PersonX <= $TreeX + $TreeWidth) and ($PersonY >= $TreeY + $TreeHeight + 3 And $PersonY <= $TreeY + $TreeHeight + 6) Then
    $PosAktuell2 = $TreeY + $TreeHeight + 6
    EndIf
    EndFunc ;==>_TreeCreate
    #cs
    ; UDF: GDIPlus Domino - Zelda alias "Zeichen Papier" NPC UDF
    ;
    ; Author: EliteMattthias
    ;
    ; Func Name: _NpcCreate($BackBuffer, $PersonX, $PersonY, $NPCX, $NPCY, $NpcFile, $Text,[ $PersonWidth, [$PersonHeight, [$NpcWidth = 25, [$NpcHeight = 34]]]])
    ;
    ; Parameter(s): $BackBuffer = Backbuffer auf den der NPC gezeichnet wird
    ; $PersonX = Die X Position der Person (vorher in Variable definieren)
    ; $PersonY = Die Y Position der Person (vorher in Variable definieren)
    ; $NPCX = Die X-Achse wo der NPC gezeichnet werden soll
    ; $NPCY = Die Y-Achse wo der NPC gezeichnet werden soll
    ; $File = Die Datei woraus der NPC entnommen wird (muss mit _GDIPlus_ImageLoadFromFile() geöffnet werden)
    ; $Text = Der Text den der NPC zu sagen hat, wenn man per LEERTASTE mit ihm spricht !
    ;
    ; <--OPTIONAL-->
    ;
    ; $PersonWidth = Die Breite der Person
    ; $PersonHeight = Die Höhe der Person
    ; $NpcWidth = Die Breite des NPCs (standard 25)
    ; $NpcHeight = Die Höhe des NPCs (standard 34)
    ;
    ;
    ; Funktion: Zeichnet einen NPC für das Spiel --GDIPlus Domino - Zelda alias "ZeichenPapier"-- der als Aufhaltendes Objekt wirkt und angesprochen werden kann !
    ;
    ; Includes: <GDIPlus.au3>
    ;
    ;
    ; Needs: Es müssen extra Variablen für die Position des Charakters genommen werden !
    ; $PosAktuell1 = X
    ; $PosAktuell2 = Y
    ;
    ;
    ; (C) EliteMattthias
    ; All Copyrights reserved by EliteMattthias
    #ce
    Global $PosAktuell1
    Global $PosAktuell2
    Global $Laufen
    Global $TalkTimer = TimerInit()
    Func _NpcCreate($BackBuffer, $PersonX, $PersonY, $NPCX, $NPCY, $NpcFile, $Text, $TextAreaFile, $PersonWidth = 25, $PersonHeight = 34, $NpcWidth = 25, $NpcHeight = 34)
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $NpcFile, $NPCX, $NPCY, $NpcWidth, $NpcHeight)
    If ($PersonX <= $NPCX + $NpcWidth And $PersonX + $PersonWidth - 1 >= $NPCX) and ($PersonY + $PersonHeight - 1 >= $NPCY And $PersonY <= $NPCY + $NpcHeight) Then ;Prüft ob die Person am BAUM von LINKS ist !
    $PosAktuell1 = $NPCX - $PersonWidth
    If _IsPressed("20") Then
    $Laufen = 0
    $Talk = 1
    EndIf
    ElseIf ($PersonX >= $NPCX + $NpcWidth And $PersonX <= $NPCX + $NpcWidth + 3) and ($PersonY + $PersonHeight - 1 >= $NPCY And $PersonY <= $NPCY + $NpcHeight) Then ; Prüft ob die Person am BAUM von RECHTS ist !
    If _IsPressed("20") Then
    $Laufen = 0
    $Talk = 1
    EndIf
    $PosAktuell1 = $NPCX + $NpcWidth + 4
    ElseIf ($PersonX >= $NPCX - $PersonWidth + 1 And $PersonX <= $NPCX + $NpcWidth) and ($PersonY <= $NPCY + 3 And $PersonY >= $NPCY - $PersonHeight - 3) Then
    If _IsPressed("20") Then
    $Laufen = 0
    $Talk = 1
    EndIf
    $PosAktuell2 = $NPCY - $PersonHeight - 3
    ElseIf ($PersonX >= $NPCX - $PersonWidth + 1 And $PersonX <= $NPCX + $NpcWidth) and ($PersonY >= $NPCY + $NpcHeight + 3 And $PersonY <= $NPCY + $NpcHeight + 6) Then
    If _IsPressed("20") Then
    $Laufen = 0
    $Talk = 1
    EndIf
    $PosAktuell2 = $NPCY + $NpcHeight + 6
    EndIf
    Switch $Talk
    Case 1
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $TextAreaFile, 26, 175, 400, 50)
    _GDIPlus_GraphicsDrawString($BackBuffer, $Text, 43, 178)
    If _IsPressed("20") And TimerDiff($TalkTimer) >= 500 Then
    $TalkTimer = TimerInit()
    $Talk = 0
    $Laufen = 1
    EndIf
    EndSwitch
    EndFunc ;==>_NpcCreate

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

    #cs
    ; UDF: GDIPlus Domino - Zelda alias "Zeichen Papier" Laufen UDF
    ;
    ; Author: EliteMattthias
    ;
    ; Func Name: _Laufen($BackBuffer, $LinkUnten, $LinkOben, $LinkRechts, $LinkLinks)
    ;
    ; Parameter(s): $BackBuffer = Backbuffer auf den Link gezeichnet wird
    ; $LinkUnten = Image das Link nach unten laufend darstellt
    ; $LinkOben = Image das Link nach oben laufend darstellt
    ; $LinkRechts = Image das Link nach rechts laufend darstellt
    ; $LinkLinks = Image das Link nach rechts laufend darstellt
    ;
    ;
    ; <--OPTIONAL-->
    ;
    ; $LinkWidth = Die Breite von Link (standard 25)
    ; $LinkHeight = Die Höhe von Link (standard 34)
    ;
    ;
    ; Funktion: Zum laufen des Spielcharakters in --GDIPlus Domino - Zelda alias "ZeichenPapier"-- !
    ;
    ; Includes: <GDIPlus.au3>
    ; <Misc.au3>
    ;
    ;
    ; Needs: Es müssen extra Variablen für die Position des Charakters genommen werden !
    ; $PosAktuell1 = X
    ; $PosAktuell2 = Y
    ;
    ;
    ; (C) EliteMattthias
    ; All Copyrights reserved by EliteMattthias
    #ce
    Global $PosAktuell1
    Global $PosAktuell2
    Global $Laufen
    Global $Link
    Func _Laufen($BackBuffer, $LinkUnten, $LinkOben, $LinkRechts, $LinkLinks, $LinkWidth = 25, $LinkHeight = 34)
    Switch $Laufen
    Case 0

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

    Case 1
    If _IsPressed("25") Then
    $PosAktuell1 -= 3
    $Link = "Links"
    EndIf
    If _IsPressed("27") Then
    $PosAktuell1 += 3
    $Link = "Rechts"
    EndIf
    If _IsPressed("28") Then
    $PosAktuell2 += 3
    $Link = "Unten"
    EndIf
    If _IsPressed("26") Then
    $PosAktuell2 -= 3
    $Link = "Oben"
    EndIf
    EndSwitch
    Switch $Link
    Case "Unten"
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $LinkUnten, $PosAktuell1, $PosAktuell2, $LinkWidth, $LinkHeight)
    Case "Oben"
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $LinkOben, $PosAktuell1, $PosAktuell2, $LinkWidth, $LinkHeight)
    Case "Rechts"
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $LinkRechts, $PosAktuell1, $PosAktuell2, $LinkWidth, $LinkHeight)
    Case "Links"
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $LinkLinks, $PosAktuell1, $PosAktuell2, $LinkWidth, $LinkHeight)
    EndSwitch
    EndFunc ;==>_Laufen

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

    #cs
    ; UDF: GDIPlus Domino - Zelda alias "Zeichen Papier" Laufen UDF
    ;
    ; Author: EliteMattthias
    ;
    ; Func Name: _MunzeCreate($BackBuffer, $PersonX, $PersonY, $MunzeX, $MunzeY, $ImageMunze,[ $PersonWidth = 25,[ $PersonHeight = 34,[ $MunzeWidth = 25,[ $MunzeHeight = 25]]]])
    ;
    ; Parameter(s): $BackBuffer = Backbuffer auf den die Münze gezeichnet wird
    ; $PersonX = Die X Position der Person (vorher in Variable definieren)
    ; $PersonY = Die Y Position der Person (vorher in Variable definieren)
    ; $MünzeX = Die X Position der Münze
    ; $MünzeY = Die Y Position der Münze
    ; $ImageMunze = Das Bild der Münze, geöffnet durch _GDIPlus_ImageLoadFromFile()
    ;
    ;
    ; <--OPTIONAL-->
    ;
    ; $PersonWidth = Die Breite der Person
    ; $PersonHeight = Die Höhe der Person
    ; $MünzeWidth = Die Breite der Münze
    ; $MünzeHeight = Die Höhe der Münze
    ;
    ;
    ; Funktion: Zum laufen des Spielcharakters in --GDIPlus Domino - Zelda alias "ZeichenPapier"-- !
    ;
    ; Includes: <GDIPlus.au3>
    ; <Misc.au3>
    ;
    ;
    ; Needs: Es müssen extra Variablen für die Position des Charakters genommen werden !
    ; $PosAktuell1 = X
    ; $PosAktuell2 = Y
    ;
    ;
    ; (C) EliteMattthias
    ; All Copyrights reserved by EliteMattthias
    #ce

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

    Global $PosAktuell1
    Global $PosAktuell2
    Global $MunzeGesamt
    Global $Munze1 = 0
    Func _MunzeCreate1($BackBuffer, $PersonX, $PersonY, $MunzeX, $MunzeY, $ImageMunze, $PersonWidth = 25, $PersonHeight = 34, $MunzeWidth = 25, $MunzeHeight = 25)
    If ($PersonX <= $MunzeX + $MunzeWidth And $PersonX + $PersonWidth - 1 >= $MunzeX) and ($PersonY + $PersonHeight - 1 >= $MunzeY And $PersonY <= $MunzeY + $MunzeHeight) Then
    $Munze1 = 1
    $MunzeGesamt += 1
    ElseIf ($PersonX >= $MunzeX + $MunzeWidth And $PersonX <= $MunzeX + $MunzeWidth + 3) and ($PersonY + $PersonHeight - 1 >= $MunzeY And $PersonY <= $MunzeY + $MunzeHeight) Then
    $Munze1 = 1
    $MunzeGesamt += 1
    ElseIf ($PersonX >= $MunzeX - $PersonWidth + 1 And $PersonX <= $MunzeX + $MunzeWidth) and ($PersonY <= $MunzeY + 3 And $PersonY >= $MunzeY - $PersonHeight - 3) Then
    $Munze1 = 1
    $MunzeGesamt += 1
    ElseIf ($PersonX >= $MunzeX - $PersonWidth + 1 And $PersonX <= $MunzeX + $MunzeWidth) and ($PersonY >= $MunzeY + $MunzeHeight + 3 And $PersonY <= $MunzeY + $MunzeHeight + 6) Then
    $Munze1 = 1
    $MunzeGesamt += 1
    EndIf
    Switch $Munze1
    Case 0
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $ImageMunze, $MunzeX, $MunzeY, 25, 25)
    Case 1
    $MunzeX = -25
    $MunzeY = -25
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $ImageMunze, $MunzeX, $MunzeY, 25, 25)
    EndSwitch
    EndFunc ;==>_MunzeCreate1

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

    #cs
    ; UDF: GDIPlus Domino - Zelda alias "Zeichen Papier" Laufen UDF
    ;
    ; Author: EliteMattthias
    ;
    ; Func Name: _MunzeCreate($BackBuffer, $PersonX, $PersonY, $MunzeX, $MunzeY, $ImageMunze,[ $PersonWidth = 25,[ $PersonHeight = 34,[ $MunzeWidth = 25,[ $MunzeHeight = 25]]]])
    ;
    ; Parameter(s): $BackBuffer = Backbuffer auf den die Münze gezeichnet wird
    ; $PersonX = Die X Position der Person (vorher in Variable definieren)
    ; $PersonY = Die Y Position der Person (vorher in Variable definieren)
    ; $MünzeX = Die X Position der Münze
    ; $MünzeY = Die Y Position der Münze
    ; $ImageMunze = Das Bild der Münze, geöffnet durch _GDIPlus_ImageLoadFromFile()
    ;
    ;
    ; <--OPTIONAL-->
    ;
    ; $PersonWidth = Die Breite der Person
    ; $PersonHeight = Die Höhe der Person
    ; $MünzeWidth = Die Breite der Münze
    ; $MünzeHeight = Die Höhe der Münze
    ;
    ;
    ; Funktion: Zum laufen des Spielcharakters in --GDIPlus Domino - Zelda alias "ZeichenPapier"-- !
    ;
    ; Includes: <GDIPlus.au3>
    ; <Misc.au3>
    ;
    ;
    ; Needs: Es müssen extra Variablen für die Position des Charakters genommen werden !
    ; $PosAktuell1 = X
    ; $PosAktuell2 = Y
    ;
    ;
    ; (C) EliteMattthias
    ; All Copyrights reserved by EliteMattthias
    #ce

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

    Global $PosAktuell1
    Global $PosAktuell2
    Global $MunzeGesamt
    Global $Munze2 = 0
    Func _MunzeCreate2($BackBuffer, $PersonX, $PersonY, $MunzeX, $MunzeY, $ImageMunze, $PersonWidth = 25, $PersonHeight = 34, $MunzeWidth = 25, $MunzeHeight = 25)
    If ($PersonX <= $MunzeX + $MunzeWidth And $PersonX + $PersonWidth - 1 >= $MunzeX) and ($PersonY + $PersonHeight - 1 >= $MunzeY And $PersonY <= $MunzeY + $MunzeHeight) Then
    $Munze2 = 1
    $MunzeGesamt += 1
    ElseIf ($PersonX >= $MunzeX + $MunzeWidth And $PersonX <= $MunzeX + $MunzeWidth + 3) and ($PersonY + $PersonHeight - 1 >= $MunzeY And $PersonY <= $MunzeY + $MunzeHeight) Then
    $Munze2 = 1
    $MunzeGesamt += 1
    ElseIf ($PersonX >= $MunzeX - $PersonWidth + 1 And $PersonX <= $MunzeX + $MunzeWidth) and ($PersonY <= $MunzeY + 3 And $PersonY >= $MunzeY - $PersonHeight - 3) Then
    $Munze2 = 1
    $MunzeGesamt += 1
    ElseIf ($PersonX >= $MunzeX - $PersonWidth + 1 And $PersonX <= $MunzeX + $MunzeWidth) and ($PersonY >= $MunzeY + $MunzeHeight + 3 And $PersonY <= $MunzeY + $MunzeHeight + 6) Then
    $Munze2 = 1
    $MunzeGesamt += 1
    EndIf
    Switch $Munze2
    Case 0
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $ImageMunze, $MunzeX, $MunzeY, 25, 25)
    Case 1
    $MunzeX = -25
    $MunzeY = -25
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $ImageMunze, $MunzeX, $MunzeY, 25, 25)
    EndSwitch
    EndFunc ;==>_MunzeCreate2

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

    #cs
    ; UDF: GDIPlus Domino - Zelda alias "Zeichen Papier" Laufen UDF
    ;
    ; Author: EliteMattthias
    ;
    ; Func Name: _MunzeCreate($BackBuffer, $PersonX, $PersonY, $MunzeX, $MunzeY, $ImageMunze,[ $PersonWidth = 25,[ $PersonHeight = 34,[ $MunzeWidth = 25,[ $MunzeHeight = 25]]]])
    ;
    ; Parameter(s): $BackBuffer = Backbuffer auf den die Münze gezeichnet wird
    ; $PersonX = Die X Position der Person (vorher in Variable definieren)
    ; $PersonY = Die Y Position der Person (vorher in Variable definieren)
    ; $MünzeX = Die X Position der Münze
    ; $MünzeY = Die Y Position der Münze
    ; $ImageMunze = Das Bild der Münze, geöffnet durch _GDIPlus_ImageLoadFromFile()
    ;
    ;
    ; <--OPTIONAL-->
    ;
    ; $PersonWidth = Die Breite der Person
    ; $PersonHeight = Die Höhe der Person
    ; $MünzeWidth = Die Breite der Münze
    ; $MünzeHeight = Die Höhe der Münze
    ;
    ;
    ; Funktion: Zum laufen des Spielcharakters in --GDIPlus Domino - Zelda alias "ZeichenPapier"-- !
    ;
    ; Includes: <GDIPlus.au3>
    ; <Misc.au3>
    ;
    ;
    ; Needs: Es müssen extra Variablen für die Position des Charakters genommen werden !
    ; $PosAktuell1 = X
    ; $PosAktuell2 = Y
    ;
    ;
    ; (C) EliteMattthias
    ; All Copyrights reserved by EliteMattthias
    #ce

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

    Global $PosAktuell1
    Global $PosAktuell2
    Global $MunzeGesamt
    Global $Munze3 = 0
    Func _MunzeCreate3($BackBuffer, $PersonX, $PersonY, $MunzeX, $MunzeY, $ImageMunze, $PersonWidth = 25, $PersonHeight = 34, $MunzeWidth = 25, $MunzeHeight = 25)
    If ($PersonX <= $MunzeX + $MunzeWidth And $PersonX + $PersonWidth - 1 >= $MunzeX) and ($PersonY + $PersonHeight - 1 >= $MunzeY And $PersonY <= $MunzeY + $MunzeHeight) Then
    $Munze3 = 1
    $MunzeGesamt += 1
    ElseIf ($PersonX >= $MunzeX + $MunzeWidth And $PersonX <= $MunzeX + $MunzeWidth + 3) and ($PersonY + $PersonHeight - 1 >= $MunzeY And $PersonY <= $MunzeY + $MunzeHeight) Then
    $Munze3 = 1
    $MunzeGesamt += 1
    ElseIf ($PersonX >= $MunzeX - $PersonWidth + 1 And $PersonX <= $MunzeX + $MunzeWidth) and ($PersonY <= $MunzeY + 3 And $PersonY >= $MunzeY - $PersonHeight - 3) Then
    $Munze3 = 1
    $MunzeGesamt += 1
    ElseIf ($PersonX >= $MunzeX - $PersonWidth + 1 And $PersonX <= $MunzeX + $MunzeWidth) and ($PersonY >= $MunzeY + $MunzeHeight + 3 And $PersonY <= $MunzeY + $MunzeHeight + 6) Then
    $Munze3 = 1
    $MunzeGesamt += 1
    EndIf
    Switch $Munze3
    Case 0
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $ImageMunze, $MunzeX, $MunzeY, 25, 25)
    Case 1
    $MunzeX = -25
    $MunzeY = -25
    _GDIPlus_GraphicsDrawImageRect($BackBuffer, $ImageMunze, $MunzeX, $MunzeY, 25, 25)
    EndSwitch
    EndFunc ;==>_MunzeCreate3

    [/autoit]
  • Ja, aber erst baue ich noch das switch um, sind c.a. 50 Zeilen code die Überflüssig sind, und die das Blitzen der Münzen verursachen !!!


    Ja, ich werde mal sehen was sich da Grafisch machen lässt

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

  • Das is mein Hintergrund ohne Bäume ?


    UPDATE:


    Figur bewegt sich jetzt so wie ihr die Pfeiltasten nehmt !


    Bist kein Nichtskönner ! (hä?)

    Nene, ich habe es tatsächlich übersehen, bzw absichtlich, weil der Hintergrund = dem der Münze war (zu faul auszuschneiden :D)

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

  • Schöner wäre es, wenn die Münzen und das Ziel an einer zufälligen Stelle sein würden und nicht immer an der gleichen. Ansonsten gefällt es mir ganz gut.

    2 Mal editiert, zuletzt von Ineluki (14. Mai 2010 um 10:22)

  • Gute Idee, gute Umsetzung. ^^

    Mir sind ein paar Sachen aufgefallen:

    Man kann Diagonal gehen, hat aber keine Sprites dafür.
    Wenn man über die Münzen geht, blinken die bereits eingesammelten wieder auf.
    Du hast die Münzenanzahl mit Bilder gemacht, warum nicht einfach mit

    [autoit]

    _GDIPlus_GraphicsDrawString()
    ;oder
    _GDIPlus_GraphicsDrawStringEx()

    [/autoit]

    ?

    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%

  • Haste super gemacht :)

    Aber ich bestehe immer noch dadrauf, meine Bilder zu benutzen xDD
    (Die Bäume da rechts oben sind weg wegen der "Münzzahlanzeige" :P)

    Viele Grüße,
    HopFail

  • Das würde dann aber ausschauen, als ob man da raus gehen könnte. ;)
    Einfacher wärs abe gewesen, wenn du nur ein kleines Bild vom Baum genommen hättest, und damit dann einfach den Rand gezeichnet hättest.

    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%

  • Jonathan

    Willst du mich verarpeln ?


    Danke für die Kritik, ja ich mache die Münzen jetzt random !

    Ausserdem arbeite ich grade an den Laufenden "Spirits" (heisst es wirklich Sprites ? o.o)

    Nach unten kann er schon "laufen"

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

  • So...


    Mein PC ist jetzt neu installed, jetzt kommen die Updates (vom PC)


    Aufrgund dessen das es eine ZELDA übung ist werde ich 1nen NPC einbauen der euch einen Tipp zu einer Position gibt, wo ein geheimer Schalter ist den ihr bedienen müsst


    Wenn ihr den bedient habt kommen Monster, die müsst ihr dann töten, damit ihr die Münzen seht


    Zudem werde ich in Zukunft (weiterer) noch 1ne Map auf der ihr euch bewegen könnt bauen, wo es dann mehr NPCs und mehr MONSTER gibt !


    Das wird dann in weitester aussicht das Update sein, und das letzte was ich an diesem "Short Game" machen werde, weil ich dann die Grundlagen für Zelda habe.

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

  • Jonathan

    Willst du mich verarpeln ?


    Nein, ich will dich nciht veräppeln :)

    Aber finde das schon cool, ich hätte nciht gedacht, das du das fertig bringst, sondern das du anfängst, und dann die lust verliert.. das is immer sowas, wo ich nachher froh bin mich geirrt zu haben :thumbup:

  • :D


    Ich weiß ja noch mein erstes Script von GDI+ :


    Das Viereck, mit was immer Ruckartig bewegt wurde, aber durch die Wand gehen konnte, und es war ein anderes Viereck als Mauer da, da war ich vielleicht Stolz :D (das is jetzt 4 Tage her)...


    Aber mein Script mit dem Kreis hatte ich zum entspannen gemacht :D


    Wenn es um etwas geht was ich UNBEDINGT können möchte, dann setze ich es auch meistens um :D


    Wobei du schon sagen musst:


    Das Script habe ich selber geschrieben, und keinen einzigen Thread zu fragen oder sonstigem eröffnet, auch das ist ein wesentlicher Fortschritt !

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