GDI+ Kometenschweif

  • Hier habe ich unbewusst einen "Kometenschweif" gemacht (dabei wollte ich doch Pong machen...)

    Script:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.5.6 (beta)
    Author: Alizame

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

    Script Function:
    It makes a kometenschweif

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>

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

    ;###
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Kometenschweif by Alizame", 800, 600)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    ;###

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

    $farbewei = 0xFFFFFFFF
    $farbeschwar = 0xFFFFFFFF
    $Ball = 40
    $iX = 400
    $iY = 300
    $iXold = 400
    $iYold = 300
    $bewegung = 1

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

    _GDIPlus_Startup()
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($Form1)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics(800,600,$hGraphics)
    $Buffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    $bWei = _GDIPlus_BrushCreateSolid($farbewei)
    $bSch = _GDIPlus_BrushCreateSolid($farbeschwar)
    $smooth = _GDIPlus_GraphicsSetSmoothingMode($hGraphics,2)
    _ReDraw ()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _GDIPlus_ImageDispose($Buffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_BrushDispose($bWei)
    _GDIPlus_BrushDispose($bSch)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_Shutdown()
    Exit
    EndSwitch
    If _IsPressed("25") Then $iX -= $bewegung
    If _IsPressed("26") Then $iY -= $bewegung
    If _IsPressed("27") Then $iX += $bewegung
    If _IsPressed("28") Then $iY += $bewegung
    If $iX <> $iXold Or $iY <> $iYold Then _ReDraw ()
    WEnd

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

    Func _ReDraw ()
    _PosCorrect ()
    _GDIPlus_GraphicsClear($Buffer,$bSch)
    _GDIPlus_GraphicsFillEllipse($Buffer,$iX,$iY,$Ball,$Ball,$bWei)
    _GDIPlus_GraphicsDrawImageRect($hGraphics,$hBitmap,0,0,800,600)
    $iXold = $iX
    $iYold = $iY
    EndFunc

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

    Func _PosCorrect()
    ToolTip("x="&$iX&@CRLF&"y="&$iY,0,0)
    If $iX < 0 Then $iX = $iX * -1
    If $iY < 0 Then $iY = $iY * -1
    If $iX > 760 Then $iX = $iX * -1
    If $iY > 560 Then $iY = $iY * -1
    EndFunc

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


    ....

    2 Mal editiert, zuletzt von Alizame (12. Mai 2010 um 21:01)

  • Passiert i-wie nichts...

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Sieht ja ganz nett aus, aber das liegt daran, dass der Hintergrund mit einer leicht transparenten Farbe übermalt wird. ;)
    Denn GraphicsClear benötigt keinen Brush! Deswegen wird das von BrushCreate zurückgegebene Handle als Hex Farbcode erkannt, daher auch diese hellblaue Farbe. ^^

  • Man, ist der langsam :D
    (Kein Wunder das ich dachte, da passiert nichts. Hab nun mal keine Geduld...)

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • dafür das ich das eig garnicht wollte ises gut geworden!

    so sollte das nähmlich werden:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.5.6 (beta)
    Author: Alizame

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

    Script Function:
    It make a kometenschweif

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>

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

    ;###
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Kometenschweif by Alizame", 800, 600)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    ;###

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

    $farbewei = 0xFFFFFFFF
    $farbeschwar = 0xFFFFFFFF
    $Ball = 40
    $iX = 400
    $iY = 300
    $iXold = 400
    $iYold = 300
    $bewegung = 1

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

    _GDIPlus_Startup()
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($Form1)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics(800,600,$hGraphics)
    $Buffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    $bWei = _GDIPlus_BrushCreateSolid($farbewei)
    $bSch = _GDIPlus_BrushCreateSolid($farbeschwar)
    $smooth = _GDIPlus_GraphicsSetSmoothingMode($hGraphics,2)
    _ReDraw ()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _GDIPlus_ImageDispose($Buffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_BrushDispose($bWei)
    _GDIPlus_BrushDispose($bSch)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_Shutdown()
    Exit
    EndSwitch
    If _IsPressed("25") Then $iX -= $bewegung
    If _IsPressed("26") Then $iY -= $bewegung
    If _IsPressed("27") Then $iX += $bewegung
    If _IsPressed("28") Then $iY += $bewegung
    If $iX <> $iXold Or $iY <> $iYold Then _ReDraw ()
    WEnd

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

    Func _ReDraw ()
    _PosCorrect ()
    _GDIPlus_GraphicsClear($Buffer,0xFF000000)
    _GDIPlus_GraphicsFillEllipse($Buffer,$iX,$iY,$Ball,$Ball,$bWei)
    _GDIPlus_GraphicsDrawImageRect($hGraphics,$hBitmap,0,0,800,600)
    $iXold = $iX
    $iYold = $iY
    EndFunc

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

    Func _PosCorrect()
    ToolTip("x="&$iX&@CRLF&"y="&$iY,0,0)
    If $iX < 0 Then $iX = $iX * -1
    If $iY < 0 Then $iY = $iY * -1
    If $iX > 760 Then $iX = $iX * -1
    If $iY > 560 Then $iY = $iY * -1
    EndFunc

    [/autoit]
  • man ey immer dieses disposen!
    ich habs reineditiert!

    Tja, Übung macht den Meister (auch beim disposen :D (eigentlich ja nicht) )

  • Wenn das mit der Geschwindigkeit Pong geworden wär bräuchte man ja für ein Spiel ca. 2 Tage (Hört auf, wenn einer der Spieler eingeschlafen ist ^^)

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Ich finde dene Beschreibung vom Script sehr gelungen xD

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.5.6 (beta)
    Author: Alizame

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

    Script Function:
    It make a kometenschweif

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

    #ce ----------------------------------------------------------------------------

    [/autoit]


    Ist icht bös gemeint :)

    Mfg
    monkey

    Monkey - die finale Potenz von göttlich!
    Sloganizer

  • It make a kometenschweif

    he, she, it, das 's' muss mit!!!

    Und zu den Berechnungen, du musst im Grunde nur das, was du bei _IsPressed() stehen hast, ohne das _IsPressed() schreiben^^