1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. UEZ

Beiträge von UEZ

  • CoSiNUs brOTHerS inTRO build 2015-04-20

    • UEZ
    • 21. April 2015 um 09:06

    Leider steht nicht mehr viel Rechenzeit zur Verfügung, um noch weitere Effekte einzubauen.

    Der Aufruf der Anim Funktion nimmt ca. 25 ms in Anspruch. Das sind ca. 40 FPS und momentan läuft das Intro mit ca. 30 FPS und ca. 90% Auslastung auf einem Core (gemessen auf meinem Schlepptop Intel i5-4300U @ 2,6 GHz). Könnte man die Last auf die Cores verteilen (Multithreading), so könnte man auch weitere Effekte einbauen.

    Leider ist dem nicht so.

    Scrollbars hatte ich vor einiger Zeit implementiert:

    [autoit]

    ;coded by UEZ 2012 build 2012-08-09
    #AutoIt3Wrapper_Compile_Both=n
    #AutoIt3Wrapper_UseX64=y
    #AutoIt3Wrapper_Run_Au3Stripper=y
    #Au3Stripper_Parameters=/so
    #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_stripped.au3"
    #AutoIt3Wrapper_UseUpx=y
    #AutoIt3Wrapper_UPX_Parameters=--best --lzma

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

    #include <Array.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GDIPlus.au3>
    Opt('GUIOnEventMode', 1)
    Opt("MustDeclareVars", 1)

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

    Global Const $hGDI32 = DllOpen("gdi32.dll")
    _GDIPlus_Startup()
    Global Const $iW = 640, $iH = 480
    Global $sGUIText = "Rotating Raster Bars (C64 Style) by UEZ 2012 / FPS: "
    Global Const $hGUI = GUICreate($sGUIText, 640, 480)
    GUISetState()

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

    #region init GDI+
    Global Const $hBitmap = _WinAPI_CreateDIB($iW, $iH)
    Global Const $hDC = _WinAPI_GetDC($hGUI)
    Global Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC)
    Global Const $DC_obj = _WinAPI_SelectObject($hDC_backbuffer, $hBitmap)
    Global Const $hGraphic = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer)
    Global Const $hBrush = _GDIPlus_BrushCreateSolid(0x40000000)
    _GDIPlus_GraphicsSetSmoothingMode($hGraphic, 2)
    #endregion
    Global Const $fPI = ACos(-1)
    Global Const $f2PI = 2 * ACos(-1)
    Global Const $fRad = ACos(-1) / 180
    Global Const $fYPos = $iH / 2
    Global Const $fSpeed = 0.3
    Global Const $fRadius = 150
    Global Const $fZSize = 20
    Global Const $iSize = 100, $iS2 = $iSize / 2
    Global $aBitmaps[3][4], $e, $r, $j, $k, $l , $z = 0, $iFPS = 0
    Global $iUb = UBound($aBitmaps) - 1

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

    For $e = 0 To $iUb
    $r = Random(3, 12, 1)
    $aBitmaps[$e][0] = CreateBar($r, $iW, $iSize, "0xFF" & Hex(Random(0x0, 0xFFFFFF, 1), 6))
    $aBitmaps[$e][1] = $fYPos
    $aBitmaps[$e][2] = Sin($e * $fRad) * 360 / ($iUb + 1)
    Next

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

    GUISetOnEvent($GUI_EVENT_CLOSE , "_Exit")
    AdlibRegister("FPS", 1000)

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

    While Sleep(10)
    _GDIPlus_GraphicsFillRect($hGraphic, 0, 0, $iW, $iH)
    For $j = 0 To $iUb
    $k = Sin($fRad * $z + $aBitmaps[$j][2]) * $fRadius
    $aBitmaps[$j][3] = Cos(270 + $fRad * $z + $aBitmaps[$j][2])
    $aBitmaps[$j][1] = $fYPos + $k - $iS2
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $aBitmaps[$j][0], 0, $aBitmaps[$j][1], $iW, $iSize + $aBitmaps[$j][3] * $fZSize)
    $z += $fSpeed
    Next
    _ArraySort($aBitmaps, 0, 0, 0, 3)
    DllCall($hGDI32, "bool", "BitBlt", "handle", $hDC, "int", 0, "int", 0, "int", $iW, "int", $iH, "handle", $hDC_backbuffer, "int", 0, "int", 0, "dword", $SRCCOPY) ;_WinAPI_BitBlt()
    $iFPS += 1
    WEnd

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

    Func CreateBar($iStep, $iW, $iH, $iColor, $iBoost = 3)
    Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH)
    Local Const $hCtx = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    Local Const $hBrush = _GDIPlus_BrushCreateSolid(0x00000000)
    Local $i, $y = 0
    For $x = 0 To $iH / 2 Step $iStep
    _GDIPlus_BrushSetSolidColor($hBrush, CalcColor($iColor, $iBoost * $x))
    _GDIPlus_GraphicsFillRect($hCtx, 0, $y, $iW, $iStep, $hBrush)
    $y += $iStep
    Next
    For $x = $iH / 2 - $iStep To 0 Step -$iStep
    _GDIPlus_BrushSetSolidColor($hBrush, CalcColor($iColor, $iBoost * $x))
    _GDIPlus_GraphicsFillRect($hCtx, 0, $y, $iW, $iStep, $hBrush)
    $y += $iStep
    Next
    _GDIPlus_GraphicsDispose($hCtx)
    _GDIPlus_BrushDispose($hBrush)
    Return $hBitmap
    EndFunc

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

    Func CalcColor($iColor, $iStep)
    Local Const $iA = Hex(BitAND(0xFF, BitShift($iColor, 24)), 2)
    Local Const $iR = Hex(Min(BitAND(0xFF, BitShift($iColor, 16)) + Int($iStep), 0xFF), 2)
    Local Const $iG = Hex(Min(BitAND(0xFF, BitShift($iColor, 8)) + Int($iStep), 0xFF), 2)
    Local Const $iB = Hex(Min(BitAND(0xFF, $iColor) + Int($iStep), 0xFF), 2)
    Return "0x" & $iA & $iR & $iG & $iB
    EndFunc

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

    Func FPS()
    WinSetTitle("", "", $sGUIText & $iFPS)
    $iFPS = 0
    EndFunc

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

    Func Min($a, $b)
    If $a < $b Then Return $a
    Return $b
    EndFunc

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

    Func _Exit()
    AdlibUnRegister("FPS")
    DllClose($hGDI32)
    Local $c
    For $c = 0 To UBound($aBitmaps) - 1
    _GDIPlus_BitmapDispose($aBitmaps[$c][0])
    Next
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGraphic)
    _WinAPI_SelectObject($hDC, $DC_obj)
    _WinAPI_DeleteObject($hBitmap)
    _WinAPI_ReleaseDC($hGUI, $hDC)
    _GDIPlus_Shutdown()
    GUIDelete($hGUI)
    Exit
    EndFunc

    [/autoit]
  • CoSiNUs brOTHerS inTRO build 2015-04-20

    • UEZ
    • 20. April 2015 um 17:17

    Yep, leider sind die Sterne über dem Bild, obwohl zuerst die Sterne gezeichnet werden und anschließend das Bild. Keine Ahnung, warum das so ist. ?(

    Ich habe den Hintergrund dunkler gemacht, damit die Sterne besser zur Geltung kommen -> diesmal wirklich letzes Update. :saint:

  • CoSiNUs brOTHerS inTRO build 2015-04-20

    • UEZ
    • 20. April 2015 um 14:35

    Letztes Update. Sterne Scroller zum letzten Intro Teil hinzugefügt.

  • Große Icons im Button

    • UEZ
    • 17. April 2015 um 22:22

    Probiere es mal damit:

    [autoit]

    #include <ButtonConstants.au3>
    #include <WinAPIShellEx.au3>
    #include <WinAPIGdi.au3>

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

    $hGUI = GUICreate("Test")
    $button01 = GUICtrlCreateButton('',5,5,80,80, $BS_BITMAP)

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

    $hIcon = _WinAPI_ShellExtractIcon(@SystemDir & '\shell32.dll', 22, 72, 72)
    $hBmp = _WinAPI_Create32BitHBITMAP($hIcon)

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

    _WinAPI_DeleteObject(_SendMessage(GUICtrlGetHandle($button01) , $BM_SETIMAGE, $IMAGE_BITMAP, $hBmp))
    GUISetState()

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

    Do
    Until GUIGetMsg() = -3

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

    _WinAPI_DeleteObject($hBmp)
    _WinAPI_DestroyIcon($hIcon)

    [/autoit]
  • CoSiNUs brOTHerS inTRO build 2015-04-20

    • UEZ
    • 16. April 2015 um 20:54

    DU hast recht wakillon. Danke für den Hinweis. Ich habe im Post#1 den Link zu deinen Chip Musik Playern hinzugefügt! :thumbup:

  • Große Icons im Button

    • UEZ
    • 16. April 2015 um 09:45

    Wie groß ist das Icon in der DLL?

  • CoSiNUs brOTHerS inTRO build 2015-04-20

    • UEZ
    • 15. April 2015 um 19:41

    Habe ein Link zum Video hinzugefügt, wie es aussehen sollte. Siehe dazu Beitrag #1.

  • CoSiNUs brOTHerS inTRO build 2015-04-20

    • UEZ
    • 15. April 2015 um 19:07

    Probiere mal den Timer für Adlib zu erhöhen.

    Z.B: AdlibRegister("Anim", 40)

  • CoSiNUs brOTHerS inTRO build 2015-04-20

    • UEZ
    • 15. April 2015 um 18:37
    Zitat von Raupi

    Bei mir läuft dein Intro auch nicht richtig. Nur feststehendes Bild mit 2 Grauen Streifen.
    Autoit 3.3.12.0 Windows 7 Ultimate 64. Die Waving Imag.Exe läuft einwandfrei.

    Hmm, läuft die CoSiNUs brOTHerS inTRO.exe denn richtig? Ansonsten kann ich nicht sagen, was bei dir schief läuft.


    Zitat von Photon

    Hmmm, den stauch und dehn Effekt würde ich nicht unbedingt als Scroller einordnen.
    Der Text am Ende mit den Credits ist ein Scroller.
    Aber sonst nicht schlecht.
    UEZ mit der ersten AutoIt Demo auf der Revision 2016? :)

    Woher kommen eig diese schwarzen Artefakte?
    [Blockierte Grafik: http://fs2.directupload.net/images/150415/g2b2z26t.png]


    Raupi dein Fehler klingt ähnlich dem von Kevlar.

    Zu "Scroller": mir war nichts besseres eingefallen.

    DIe schwarzen Artefakte scheinen am Schwarz/Weiß Bild zu liegen. Anscheinend hat _WinAPI_StretchBlt damit ein kleines Problem.


    Den letzten Platz hätte ich bei der nächsten Revision sicher. ;)

  • CoSiNUs brOTHerS inTRO build 2015-04-20

    • UEZ
    • 15. April 2015 um 16:39

    Habe aus dem Effekt mal ein kleines Intro gebastelt.

    Ich hoffe, dass es auch auf älteren CPUs einigermaßen läuft.

  • CoSiNUs brOTHerS inTRO build 2015-04-20

    • UEZ
    • 14. April 2015 um 10:50
    Zitat von kevlar

    Also, wenn ich die Variable $Dali aus deiner Exe nehme, funktioniert es.

    Das war wohl ein Eigentor. =O

  • CoSiNUs brOTHerS inTRO build 2015-04-20

    • UEZ
    • 14. April 2015 um 10:27

    Ist komisch, da ich auch die 3.3.12.0 verwende und der Code der Gleiche ist. Du könntest den Code mit der neusten Beta probieren.
    Ansonsten keine Ahnung, warum es bei dir nicht läuft.

    I.d.R. rasiere ich mich nicht täglich ;)

  • CoSiNUs brOTHerS inTRO build 2015-04-20

    • UEZ
    • 14. April 2015 um 08:34

    Welche AutoIt Version benutzt du?

    Funzt bei dir die Exe Version (siehe Anhang)?

    Dateien

    Waving Image.7z 382,22 kB – 382 Downloads
  • Bilder trapezförmig skalieren und mit Text versehen

    • UEZ
    • 12. April 2015 um 10:56

    Das geht auch. D.h. anstelle die Grafik zu löschen, muss du das vorige Bild in die Grafik kopieren.

  • SSE Shuffle Explorer V2

    • UEZ
    • 11. April 2015 um 21:48

    Vielen Dank Eukalyptus! :thumbup:

    Die Shuffle Befehle sind mir noch ein Rätsel. Ein Bild sagt mehr als 1000 Worte!

    Wird wohl für meine ASM Kurse sehr nützlich sein.

  • CoSiNUs brOTHerS inTRO build 2015-04-20

    • UEZ
    • 11. April 2015 um 18:38
    Zitat von minx

    Wolltest du sowas ähnliches: http://www.openprocessing.org/sketch/133247

    Nee, das sich die Textur dreht, ist eigentlich nicht beabsichtigt gewesen. Eigentlich sollte sich nichts drehen und die Textur sollte nach unten bzw. oben sich wie ein Gummiband ziehen.

    Ich suche mal nach dem Effekt.

  • CoSiNUs brOTHerS inTRO build 2015-04-20

    • UEZ
    • 11. April 2015 um 17:47

    Ich habe aus dem Effekt ein kleines Intro mit einem C64 SID Chip Sound gebastelt.

    Den Source Code hier zu posten macht keinen Sinn, da der Code nun aus 3 Teilen besteht. D.h. nur als Download inkl. kompilierter Exe!

    Sollte einigermaßen flüssig laufen.

    Ich hoffe, es gefällt euch.

    PS: wenn die CPU zu "schwach" ist, läuft das Timing für die Effekte nicht richtig -> DllCall("user32.dll", "int", "SetTimer", "hwnd", $hGUI, "int", 0, "int", 30, "int", 0)) die 30 auf 40 oder höher setzen! Oder den Wert für $iStripes reduzieren, z.B. $iStripes = 200 setzen.


    Auf meiner Kiste (Notebook / i5 CPU, Win8.1 x64) läuft das Intro mit ca. 30 FPS! KEIN WinXP SUPPORT!


    Chip Sound Player von wakillon: autoitscript.com/forum/topic/169098-chiptunes-players/ (sehr empfehlenswert für Chip Sound Liebhaber)


    Screenshot:
    CoSiNUs brOTHerS inTRO.png


    Video:

    Externer Inhalt vimeo.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Dateien

    CoSiNUs brOTHerS inTRO build 2015-04-20.7z 503,09 kB – 519 Downloads
  • RANDOM

    • UEZ
    • 11. April 2015 um 12:48

    Was willst du denn mit dem Skript erreichen?

  • Bilder trapezförmig skalieren und mit Text versehen

    • UEZ
    • 10. April 2015 um 19:02

    Probiere es mal damit:

    [autoit]

    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>

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

    Global $sImageFile = FileOpenDialog("Select an image", "", "Images (*.jpg;*.png;*.bmp)")
    If @error Then Exit MsgBox(0, "Information", "Nothing selected - stopping script!", 30)
    _GDIPlus_Startup()
    Global $hBitmap = _GDIPlus_BitmapCreateFromFile($sImageFile)
    DrawTextOnBitmap($hBitmap, "This is a GDI+ demo", 50)
    Global Const $iW = _GDIPlus_ImageGetWidth($hBitmap), $iH = _GDIPlus_ImageGetHeight($hBitmap)
    Global Const $hGUI = GUICreate("GDI+ Test", $iW, $iH)
    GUISetBkColor(0)
    GUISetState()
    Global Const $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    Global Const $hBmp = _GDIPlus_BitmapCreateFromGraphics($iW, $iH, $hGraphics)
    Global Const $hCtxt = _GDIPlus_ImageGetGraphicsContext($hBmp)
    _GDIPlus_GraphicsSetPixelOffsetMode($hCtxt, 2)
    Global $fPosX = 0, $fPosY = 0, $iSpeed = $iH / 20
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iSpeed = ' & $iSpeed & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    AdlibRegister("Anim", 20)

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

    Do
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    AdlibUnRegister("Anim")
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_GraphicsDispose($hCtxt)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_BitmapDispose($hBmp)
    _GDIPlus_Shutdown()
    GUIDelete()
    Exit
    EndSwitch
    Until False

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

    Func Anim()
    _GDIPlus_GraphicsClear($hCtxt)
    _GDIPlus_DrawImagePoints($hCtxt, $hBitmap, 0, 0, $iW, 0, $fPosX, $fPosY)
    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hBmp, 0, 0, $iW, $iH)
    $fPosY += ($fPosY < $iH) ? $iSpeed : AdlibUnRegister("Anim")
    EndFunc

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

    Func DrawTextOnBitmap(ByRef $hBitmap, $sText, $fFontSize, $sFontTyp = "Impact", $iInnerColor = 0xFFFFFFFF, $iBorderColor = 0xFF000000)
    Local Const $iW = _GDIPlus_ImageGetWidth($hBitmap), $iH = _GDIPlus_ImageGetHeight($hBitmap)
    Local Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hGfx, 4)
    _GDIPlus_GraphicsSetTextRenderingHint($hGfx, 3)
    _GDIPlus_GraphicsSetPixelOffsetMode($hGfx, 2)
    Local Const $hBrush_Inner = _GDIPlus_BrushCreateSolid($iInnerColor), $hPen_Border = _GDIPlus_PenCreate($iBorderColor, 1.5)
    Local Const $hPath = _GDIPlus_PathCreate(), $hFamily = _GDIPlus_FontFamilyCreate($sFontTyp), $hFormat = _GDIPlus_StringFormatCreate()
    Local Const $tLayout = _GDIPlus_RectFCreate(0, 0, $iW, $iH)
    _GDIPlus_StringFormatSetAlign($hFormat, 1)
    _GDIPlus_StringFormatSetLineAlign($hFormat, 1)
    _GDIPlus_PathAddString($hPath, $sText, $tLayout, $hFamily, 0, $fFontSize, $hFormat)
    _GDIPlus_GraphicsFillPath($hGfx, $hPath, $hBrush_Inner)
    _GDIPlus_GraphicsDrawPath($hGfx, $hPath, $hPen_Border)
    _GDIPlus_GraphicsDispose($hGfx)
    _GDIPlus_BrushDispose($hBrush_Inner)
    _GDIPlus_PenDispose($hPen_Border)
    _GDIPlus_PathDispose($hPath)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    EndFunc

    [/autoit]
  • WMI in Autoit

    • UEZ
    • 10. April 2015 um 16:26

    Wenn du in der CMD Box nur wmic memphysical eingibst, dann bekommst du eine Tabelle zurück, die dir die WMI Klasse dafür zurück gibt.

    CreationClassName
    Win32_PhysicalMemoryArray


    Oder Google ist dein persönlicher Freund. ;)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™