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

  • Kleines Desktop-Spiel (ChipHunter)

    • UEZ
    • 7. Juni 2017 um 21:51

    Münzen mit höheren Werten sollten schwere abzuschießen sein als die mit kleineren Werten. Momentan sind alle gleich schwer.

  • Kleines Desktop-Spiel (ChipHunter)

    • UEZ
    • 6. Juni 2017 um 20:27

    Nettes Spiel. :thumbup:

    Ich würde noch ein Fadenkreuz benutzen, entweder GUISetCursor(3, 1, $hBackGui) oder ein externes.

  • File to Base64 String Code Generator v1.20 Build 2020-06-05

    • UEZ
    • 6. Juni 2017 um 20:13

    @Alina ich verstehe auch deine Frage nicht. ?(

  • File to Base64 String Code Generator v1.20 Build 2020-06-05

    • UEZ
    • 5. Juni 2017 um 20:59

    Die Beispiele habe ich nicht aktualisiert. :whistling:

    Nicht nur, dass $ghGDIPDll nun $__g_hGDIPDll ist, Load_BMP_From_Mem ist auch integriert -> _GDIPlus_BitmapCreateFromMemory().

  • File to Base64 String Code Generator v1.20 Build 2020-06-05

    • UEZ
    • 5. Juni 2017 um 18:40

    Erstes Beispiel: File to Base64 String Code Generator v1.20 Build 2015-01-20

  • Kicktipp Bundesliga 2016/2017 Wetttippen! Jetzt mitmachen :)

    • UEZ
    • 21. Mai 2017 um 13:03

    Gratulation an Tweaky. :thumbup:

    Mein Resümee: die Zufall Tipps sind schlechter, aber nicht deutlich. Entweder haben die menschlichen Tipper keine Ahnung oder die Algorithmen waren gut. :P

    Ich selbst tippe i.d.R. nur "aus dem Bauch" heraus.

    Nach den Sommerferien geht's in die nächste Runde....

  • GDI+ Lightning / Blitz Effekt

    • UEZ
    • 17. Mai 2017 um 23:34

    Sehr schön, besonders die Blitze um die Buchstaben. 8o

    Welcome back. ^^

  • File to Base64 String Code Generator v1.20 Build 2020-06-05

    • UEZ
    • 13. April 2017 um 13:45
    Zitat von Leo.1906

    Heißt das also das ich dein altes Tool nutzen kann um die Dateien zu komprimieren und die neuen Funktionen mit ASM Code zum dekomprimieren? Also einfach die alten automatisch generierten Funktionen durch die neuen ersetzen?
    Denn es ist ja wohl immer besser die performantesten Funktionen zu nutzen..

    Edit: es hat sich aber doch relativ viel geändert wenn jetzt eine andere, wesentlich bessere da schnellere, kompressions Methode verwendet wird..

    Das Tool ist zum Komprimieren von Dateien gedacht, sondern Daten in dein Skript zu integrieren und um Platz zu sparen, können die Daten komprimiert werden. Wie oben erwähnt, kannst du, wenn du die Komprimierung haben willst und es sich lohnt, d.h. nach der Komprimierung der Code nicht größer wird, zwischen zwei verschiedene Methoden wählen. LZMAT kann unter Umständen zwar besser komprimieren, aber der Dekomprimierungscode kann die Ersparnisse wieder zunichte machen und dein Skript wird größer. Einfach ausprobieren.

  • File to Base64 String Code Generator v1.20 Build 2020-06-05

    • UEZ
    • 12. April 2017 um 19:27
    Zitat von Leo.1906

    Es ist zwar schon etwas her, dass Cape-City hier bemerkt hat, dass du inzwischen eine neuere Version deines (echt klasse!) tools hast, in der nicht nur optische änderungen gemacht wurden?
    Ich habe jetzt in zwei deiner neuen UDFs gesehen, dass du ASM Code zum dekomprimieren benutzt. Sind diese Funktionen denn performanter als die alten verwendeten? Wenn ja, könntest du dich dann erbarmen uns auch daran teilhaben zu lassen? :)
    ASM ist ja eigentlich das schnellste zu dem man Autoit bewegen kann, oder?

    Es gibt zwei Komprimierungs-/Dekomprimierungsfunktionen:

    • Windows interne LZNT Funktion -> langsam, aber benötigt keinen zusätzlichen Code
    • LZMAT nach AutoIt portiert von Ward -> sehr schnell und bessere Komprimierung als LZNT, aber benötigt zusätzlichen Code zum Dekomprimieren (hier als ASM Code)

    Wie gesagt, primär hat sich nicht viel geändert.

    Assembler ist der schnellste Code, wenn man richtig in Assembler programmiert.

  • GDI+ Rotating Earth build 2017-03-17

    • UEZ
    • 22. März 2017 um 14:30
    Zitat von eukalyptus

    deaktiviere mal die Drawfunktion der Erde und lass nur die Wolken anzeigen -> aus diesem Effekt kann man bestimmt nochwas machen.

    Ich habe die jetzt die Textur ersetzt durch eine Earth Map ersetzt.

    Resultat mit dem alten Code.

    Dateien

    Rotating Earth 3D v1.0.au3 94,68 kB – 475 Downloads
  • GDI+ Rotating Earth build 2017-03-17

    • UEZ
    • 22. März 2017 um 13:14

    @eukalyptus: danke für den Tipp. Ich werde schauen, ob man den Effekt auch so darstellen kann.

    Zitat von eukalyptus

    deaktiviere mal die Drawfunktion der Erde und lass nur die Wolken anzeigen -> aus diesem Effekt kann man bestimmt nochwas machen.

    Sieht ja echt klasse aus. 8o Mal sehen, wie das Ganze aussieht, wenn man anstelle der Wolken die Erde als transparentes Bild nimmt.
    Btw, lange nichts mehr von dir gehört. :huh:


    Zitat von Oscar

    Und die Enterprise ist auch nicht schlecht, allerdings ruckelt sie etwas beim Vorbeiflug.
    Klasse wäre es natürlich, wenn sie in der Animation dann auf Warp-Geschwindigkeit gehen würde.

    Das Ruckeln liegt wohl an der GDI+ Funktion. Mal sehen, ob man das auch anders machen kann. Bezüglich der Warp-Geschwindigkeit - da kann mal auch was machen. ;)


    Zitat von alpines

    Ich möchte ja nichts schlecht reden aber von der Scriptsprache wurde hier nicht sehr viel verwendet. Das sind fast ausschließlich WinAPI- und GdiPlus-Funktionen.
    Der Code sollte in C nicht groß anders ausschauen (bis auf die Erstellung der GUI). Das ist ja der einzige Punkt der hier von AutoIt wirklich verwendet wird.

    Nun ja, aber nichtsdestotrotz ist die Animation mit AutoIt geschrieben, d.h. für mich, dass AutoIt nicht nur automatisieren kann, sondern viel mehr. :P Btw, mit FreeBasic ist die FPS genau so lahm. Ergo, es liegt an GDI+...


    @water: danke für dein Feedback

  • GDI+ Rotating Earth build 2017-03-17

    • UEZ
    • 14. März 2017 um 08:52
    Zitat von Oscar

    Erstmal: wieder mal eine tolle GDI+-Animation von Dir! Erde, Wolken, Mond sieht toll aus und läuft bei mir mit ca. 17 FPS. :thumbup:

    Aber astronomisch nicht ganz korrekt. Zum einen besitzt der Mond eine Eigenrotation (man sieht von der Erde aus immer den gleichen Teil des Mondes) und zum anderen dreht er sich anders herum um die Erde (in die Richtung, wie sich die Erde um sich selbst dreht). Gut vom Abstand (Erde <-> Mond) wollen wir mal absehen, das lässt sich in den Größen nicht auf dem Monitor darstellen.

    Danke für dein Feedback. Den Mond noch mit einer Rotation zu animieren, würde wohl zur einer Slideshow führen, zumindest auf meiner Kiste, daher ohne die Animation. Die Richtung ist ganz einfach zu ändern -> $z -= 0.5 in der Do / Until Schleife!

    Die Animation sollte auch eher zur "Unterhaltung" dienen und nicht eine physikalisch / mathematisch korrekte Animation simulieren. Dafür fehlen die schnellen Grafikfunktionen und meine Mathe / Physik Kenntnisse.

  • GDI+ Rotating Earth build 2017-03-17

    • UEZ
    • 14. März 2017 um 01:15

    @autoiter Danke für dein Feedback. ^^

    Und weil's so schön war, v1.6 hochgeladen.

  • GDI+ Rotating Earth build 2017-03-17

    • UEZ
    • 13. März 2017 um 21:35

    Kleines Update auf v1.5 -> Cloud Layer hinzugefügt.

    Läuft ca. mit 9~10 FPS bei $iStep = 3. GDI+ ist so lahhhhhmmmmmm.......... ;(

  • Labyrinth-Generator

    • UEZ
    • 9. März 2017 um 23:26

    Well done :thumbup: , nur flimmert, wenn ich mich durch's Lab. bewege.

  • GDI+ Mandala Creator

    • UEZ
    • 9. März 2017 um 22:46

    Sieht hübsch aus - erinnert mich an mein Screensaver... :thumbup:

    Nur solltest du, wenn du ein GDI+ Objekt in einer Schleife erstellst, es wieder freigeben, ansonsten gibt's ein Memory Leak!

    Schaue dir Zeile 92 und 145 mal näher an.

  • Wann ist AutoIt nicht mehr die richtige Wahl

    • UEZ
    • 27. Februar 2017 um 22:26

    AutoIt ist eine simple Programmiersprache, die relativ leicht zu erlernen ist und quasi die komplette Windows API benutzen kann. Ferner kann man in AutoIt zusätzlich noch Inline ASM betreiben oder selbst geschriebene DLLs einbinden, sodass die Grenzen fast grenzenlos sind.

    Die Grenzen sind somit i.d.R. das Wissen des Programmierers.

  • GDI+ Rotating Earth build 2017-03-17

    • UEZ
    • 26. Februar 2017 um 11:52

    Die FPS im Screenshot beziehen sich auf $iStep = 1. ;)

    Was ist die Realität?...

  • GDI+ Rotating Earth build 2017-03-17

    • UEZ
    • 25. Februar 2017 um 02:47

    Mal wieder was in GDI+: Echtzeit Projektion und Rotation einer Earth Map (600x300) auf eine Kugel.

    Earth4_600x300.jpg ==> Rotating Earth.jpg

    Leider ist die Animation nicht besonders performant, aber sieht dafür hübsch aus. ^^

    Inspiriert durch Eukalyptus' Black Hole Code. U :rock:


    Source Code ist nicht vollständig!

    AutoIt
    ;coded by UEZ build 2017-02-25
    #pragma compile(Icon, "c:\Program Files (x86)\AutoIt3\Icons\au3.ico")
    #AutoIt3Wrapper_Run_Au3Stripper=y
    #Au3Stripper_Parameters=/so /pe /rm
    #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_stripped.au3"
    #include <GDIPlus.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    _GDIPlus_Startup()
    Global $hGUI, $iFPS = 0, $iShowFPS = 0, $bExit
    Global Const $iW = 800, $iH = 500, $iWh = $iW / 2, $iHh = $iH / 2, $sTitle = "GDI+ Rotating Earth coded by UEZ 2017"
    Global Const $fPi = ACos(-1), $fRad = $fPi / 180, $fDeg = 180 / $fPi
    AutoItSetOption("GUIOnEventMode", 1)
    GDIPlus_RotatingEarth()
    AutoItSetOption("GUIOnEventMode", 0)
    _GDIPlus_Shutdown()
    Func GDIPlus_RotatingEarth()
    	$bExit = False
    	$hGUI = GUICreate($sTitle, $iW, $iH) ;, 0, 0, $WS_POPUP)
    	GUISetState(@SW_SHOW, $hGUI)
    ;~ 	GUISetCursor(16, 1)
    	;create canvas elements
    	Local Const $hDC = _WinAPI_GetDC($hGUI)
    	Local Const $hHBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH)
    	Local Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC)
    	Local Const $DC_obj = _WinAPI_SelectObject($hDC_backbuffer, $hHBitmap)
    	Local Const $hCanvas = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer)
    	_GDIPlus_GraphicsSetSmoothingMode($hCanvas, $GDIP_SMOOTHINGMODE_HIGHQUALITY)
    	_GDIPlus_GraphicsSetPixelOffsetMode($hCanvas, $GDIP_PIXELOFFSETMODE_HIGHQUALITY)
    	Local Const $hBrush_Clr = _GDIPlus_BrushCreateSolid(0xFF000000), _
    				$hBrush_FPS = _GDIPlus_BrushCreateSolid(0xFFF0F0F0), _
    				$hFormat_FPS = _GDIPlus_StringFormatCreate(), _
    				$hFamily_FPS = _GDIPlus_FontFamilyCreate("Arial"), _
    				$hFont_FPS = _GDIPlus_FontCreate($hFamily_FPS, 8), _
    				$tLayout_FPS = _GDIPlus_RectFCreate(0, 0, 60, 16), _
    				$hImage_Earth = _GDIPlus_BitmapCreateFromMemory(_Earth()), _
    				$hImage_Galaxy = _GDIPlus_BitmapCreateFromMemory(_Galaxy()), _
    				$hMatrix = _GDIPlus_MatrixCreate(), $hPath = _GDIPlus_PathCreate()
    	Local $aDim = _GDIPlus_ImageGetDimension($hImage_Earth)
    	Local Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hImage_Earth)
    	_GDIPlus_GraphicsDrawStringEx($hGfx, "Coded by UEZ 2017 ;-)", $hFont_FPS, _GDIPlus_RectFCreate(0, $aDim[1] / 2 - 4, 120, 12), $hFormat_FPS, $hBrush_FPS)
    	_GDIPlus_ImageDispose($hGfx)
    	Local Const $hTexture_Earth = _GDIPlus_TextureCreate($hImage_Earth)
    	DllCall($__g_hGDIPDll, "int", "GdipTranslateTextureTransform", "ptr", $hTexture_Earth, "float", -200, "float", 0, "long", 0)
    	Local $iDiameter = $aDim[0] < $aDim[1] ? $aDim[0] : $aDim[1], _
    		  $iDiameter2 = $iDiameter / 2, _
    		  $fDX = ($iW - $iDiameter) / 2, $fDY = ($iH - $iDiameter) / 2
    	_GDIPlus_PathAddEllipse($hPath, $fDX - 1, $fDY - 1, $iDiameter + 2, $iDiameter + 2)
    	Local Const $hBrush = _GDIPlus_PathBrushCreateFromPath($hPath)
    	_GDIPlus_PathBrushSetCenterColor($hBrush, 0x04000008)
        _GDIPlus_PathBrushSetCenterPoint($hBrush, $fDX + $iDiameter2 + 1, $fDY + $iDiameter2 + 1)
        _GDIPlus_PathBrushSetSurroundColor($hBrush, 0xF0000000)
    	_GDIPlus_PathBrushSetGammaCorrection($hBrush, 1)
    	_GDIPlus_PathBrushSetFocusScales($hBrush, 0.5, 0.5)
    	$iFPS = 0
    	GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit_About")
    	AdlibRegister("CalcFPS", 1000)
    	Local $fScale, $fTmp, $iStep = 2 ;the higher $iStep is the faster the animation & lower the quality.
    	Do
    ;~ 		DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush_Clr, "float", 0, "float", 0, _
    ;~ 				"float", $iW, "float", $iH) ;erase canvas background
    ;~ 		_WinAPI_BitBlt($hDC_backbuffer, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $BLACKNESS)
    		_GDIPlus_GraphicsDrawImageRect($hCanvas, $hImage_Galaxy, 0, 0, $iW, $iH)
    		DllCall($__g_hGDIPDll, "int", "GdipTranslateTextureTransform", "ptr", $hTexture_Earth, "float", 0.75, "float", 0, "long", 0)
    		For $i = 1 To $iDiameter2 Step $iStep
    			$fScale = 1 + $i / $iDiameter2
    			_GDIPlus_MatrixSetElements($hMatrix, 1, 0, 0, 1, 0, 0)
    			_GDIPlus_MatrixTranslate($hMatrix, $fDX + $iDiameter2, $fDY + $iDiameter2)
    			_GDIPlus_MatrixScale($hMatrix, $fScale, $fScale)
    			_GDIPlus_MatrixTranslate($hMatrix, -$iDiameter2, -$iDiameter2)
    			_GDIPlus_GraphicsSetTransform($hCanvas, $hMatrix)
    			DllCall($__g_hGDIPDll, "int", "GdipFillEllipse", "handle", $hCanvas, "handle", $hTexture_Earth, _
    								   "float", $i, "float", $i, "float", $iDiameter - $i * 2, "float", $iDiameter - $i * 2)
    		Next
    		_GDIPlus_MatrixSetElements($hMatrix, 1, 0, 0, 1, 0, 0)
    		_GDIPlus_GraphicsSetTransform($hCanvas, $hMatrix)
    		_GDIPlus_GraphicsFillRect($hCanvas, $fDX, $fDY, $iDiameter, $iDiameter, $hBrush)
    		_GDIPlus_GraphicsDrawStringEx($hCanvas, "FPS: " & $iShowFPS, $hFont_FPS, $tLayout_FPS, $hFormat_FPS, $hBrush_FPS) ;draw background message text
    		_WinAPI_BitBlt($hDC, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY) ;blit drawn bitmap to GUI
    		$iFPS += 1
    		If $bExit Then ExitLoop
    	Until Not Sleep(10)
    	AdlibUnRegister("CalcFPS")
    	;release resources
    	_GDIPlus_BrushDispose($hBrush)
    	_GDIPlus_PathDispose($hPath)
    	_GDIPlus_MatrixDispose($hMatrix)
    	_GDIPlus_ImageDispose($hImage_Earth)
    	_GDIPlus_ImageDispose($hImage_Galaxy)
    	_GDIPlus_BrushDispose($hTexture_Earth)
    	_GDIPlus_FontDispose($hFont_FPS)
    	_GDIPlus_FontFamilyDispose($hFamily_FPS)
    	_GDIPlus_StringFormatDispose($hFormat_FPS)
    	_GDIPlus_BrushDispose($hBrush_Clr)
    	_GDIPlus_BrushDispose($hBrush_FPS)
    	_GDIPlus_GraphicsDispose($hCanvas)
    	_WinAPI_SelectObject($hDC_backbuffer, $DC_obj)
    	_WinAPI_DeleteDC($hDC_backbuffer)
    	_WinAPI_DeleteObject($hHBitmap)
    	_WinAPI_ReleaseDC($hGUI, $hDC)
    	GUIDelete($hGUI)
    EndFunc   ;==>GDIPlus_RotatingEarth
    Func _Exit_About()
    	$bExit = True
    EndFunc   ;==>_Exit_About
    Func CalcFPS() ;display FPS
    	$iShowFPS = $iFPS
    	$iFPS = 0
    EndFunc   ;==>CalcFPS
    ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2016-12-01
    ...
    Alles anzeigen

    Bitte Dateianhang herunterladen!

    Mit der Variable $iStep in Zeile 73 kann man die Geschwindigkeit anpassen. Je höher desto schneller, aber die Qualität wird auch schlechter.

    Dateien

    Rotating Earth.au3 128,94 kB – 469 Downloads Rotating Earth v1.5.au3 465,54 kB – 472 Downloads Rotating Earth v1.6.au3 501,67 kB – 436 Downloads Rotating Earth v1.7.au3 510,76 kB – 490 Downloads
  • Pic in Pic Generator

    • UEZ
    • 13. Februar 2017 um 23:04

    Die Hauptschleife produziert ein Memory Leak, d.h. du öffnest in der Schleife immer wieder neue GDI+ Handles ohne diese wieder freizugeben.

    AutoIt
    For $i = 0 To $iImageHeight - 1 Step 1 ; Y Achse pro Pixel ein Bild generieren!
    		For $j = 0 To $iImageWidth - 1 Step 1 ; X Achse pro Pixel ein Bild generieren!
    ...

    _GDIPlus_BitmapGetPixel ist relativ langsam -> schaue dir mal die _GDIPlus_BitmapLockBits Funktion an und wie man die Pixel Farbe ausliest. Innerhalb dieser Schleife solltest du auch keine Variablen deklarieren, macht keinen Sinn und kostet nur Zeit.

    Ansonsten funzt der Code. :thumbup:

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™