• So...


    Stand meines LV - Editors:


    Man kann ZEICHNEN und er kann AUSLESEN !!!


    Das ist auch schon beachtloich :D

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

  • Spoiler anzeigen
    Zitat von EliteMattthias

    beachtloich :D


    :D:D:D:D Wer Rechtschreibfehler findet, darf sie behalten :D:D:D:D
    MEINS ^^


    wird ganz gut dein Zelda spiel, vlt. macht noch jmd. das spiel Metroid Fusion oder andere...

  • ;)

    T.E.A.M <> TEAM ;)


    So, stand meiner udf für LV Editor:

    Spoiler anzeigen


    -Münzen UDF Fertig
    -Laufen UDF Fertig
    -Baum UDF Fertig (als Objekt)


    Fehlen noch:

    -UDF für NPC
    -UDF für Portal

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

  • -.-


    Rate mal weshalb ich grade den LV editor baue ?

    1. Damit ihr euch eigene LVs bauen könnt
    2. Damit ich euch eigene LVs bauen kann ;)


    :party:

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

  • So


    Fertig zu c.a. 80 % ist jetzt meine UDF

    Ich habe den 400 Zeilen Code des Scriptes auf 70 Zeilen im eigentlichen code beschränkt !

    Und das ist die UDF:

    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]

    Und ein Beispiel

    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 zum Download im Anhang (habe es genommen wie es ist ;))

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

  • Ich will ja nicht nerven, aber ich hätte da ein paar Dinge.

    1. Wieso deklarierst du $PosAktuell1 und $PosAktuell2 mehrmals in der UDF?
    2. Wenn du $PosAktuell1 und $PosAktuell2 schon in der UDF einmal deklarierst, wieso deklarierst du die nochmal in deinem Script?
    3. Es ist sinnvoll als Funktionsnamen und Variablennamen die englische Schreibweise zu wählen, da evtl. jemand der deine UDF nimmt, der deutschen Sprache nicht mächtig ist.
    4. Wenn du #cs und #ce benutzt brauchst du die Zeilen dazwischen nicht extra kommentieren mit ;. Das nur so am Rande.

  • Ja und positives nichts ? ;(
    Ja hatte ich vergessen !

    das mit ; habe ich gemacht, weil es sonst komisch aussieht mit diesen | | |

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

  • Ich find positiv das du das echt durchziehst und langsam wirklich mit Plan und Kentnissen da ran gehtst :thumbup:

    mfg Ubuntu

  • UdfUpdate:


    Bessere Deklaration, Script übersichtlicher ;)
    Script:

    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 $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]


    UDF:

    Spoiler anzeigen
    [autoit]


    #include <GDIPlus.au3>
    #include <Misc.au3>
    Global $PosAktuell1
    Global $PosAktuell2
    Global $Laufen = 1
    Global $Link = 1
    Global $TalkTimer = TimerInit()
    Global $MunzeGesamt
    Global $Munze1 = 0
    Global $Munze2 = 0
    Global $Munze3 = 0
    Global $Talk = 0
    #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

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

    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
    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
    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
    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
    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
    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]

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

    Einmal editiert, zuletzt von EliteMattthias (19. Mai 2010 um 21:26)

  • Nur wegen einer GUI ohne Controls benutzt du Koda??? Wenn du das direkt in Scite schreibst ist das doch schneller als das mit Koda zu machen.

    Aber sonst siehts schon besser aus ;)

  • ich will ja nicht stören, aber wenn wir onehin schon kritisieren, dann...

    [autoit]

    #include <WindowsConstants.au3>
    #include <Misc.au3>

    [/autoit]

    ist absolut überflüssig ^^... und wenn du statt $GUI_EVENT_CLOSE -3 einsetzt, dann kannst du dir auch noch

    [autoit]

    #include <GUIConstantsEx.au3>

    [/autoit]

    sparen
    sonst ists wirklich schön geworden, gut gemacht... zwar verschwindet die figur am anfang noch aber egal ;)

    Edit 1:

    Edit1:

    Habe die begründung vergessen:
    Misc.au3 nicht weil sie schon in der udf ist *kopfschüttel*
    Windowsconstants.au3 hat dir Koda aus sorge aufgeschwazt, brauchst du garnicht...
    und:
    nörgel nörgel nörgel ^^

  • Bezüglich includes und Konstanten gibt es unterschiedliche Meinungen.
    Die benötigten Funktionen aus den includes kopieren und die Konstanten ersetzen mache ich immer ganz zum Schluss und auch nur wenn es nötig ist.
    Das macht das Skript lesbar und spart Entwicklungszeit.

    In der Downloadversion kann man um unnötigen Traffic zu vermeiden das Skript natürlich optimieren, gerade für die "kompilierte" Version.

  • Du solltest auf jeden fall deaktivieren, dass man mit der Figur aus der GUI fahren kann