Wow das ist jetzt ein Bisschen Gruselig
du könntest (alterstechnisch) mein Vater sein xD
Alles gute, und trink nicht zu viel
. In deinem Alter verträgt man das nicht mehr so ![]()
Wow das ist jetzt ein Bisschen Gruselig
du könntest (alterstechnisch) mein Vater sein xD
Alles gute, und trink nicht zu viel
. In deinem Alter verträgt man das nicht mehr so ![]()
Genau das ist der Grundgedanke...in Assembler kenne ich mir leider nun so ziehmlich...gar nicht aus, wollt s mir eigentlich mal letztes Jahr vornehmen, aber ich will kein Durcheinander bekommen (bin seid meiner C++/C#-Zeit ziehmlich anfällig darauf, alle verschiedensten Programmiersprachen miteinander zu vermischen ^^).
Gute Performance wäre ein Plus-Punkt, aber nicht essentiell notwendig. Wenn ich da noch eine maximale Grösse festlege wird das schon klappen, es sollen ja keine HD-Bilder sein die eingelesen werden sondern eher so...halt Zeugs das sich lohnt in Pixel-Art darzustellen.
Ich denke ich nehm deine Lösung...naja sobald ich fertig mit testen bin ![]()
ZitatAlles anzeigen=============== MINX-O-MAT =====================================
- CPU: Intel(R) Core(TM)2 Quad CPU Q9300 @ 2.50GHz (4 x 2504MHz)
- CPU-Cooldown [====================]
+ Test 1: 365555 points.
Failed to select a GLFWFBConfig from the alternatives
Unable to find a usable pixel format
Failed to create GLFW window
!>15:06:47 AutoIT3.exe ended.rc:-1073741819
Was denn nu...ich schwöre ich hab nichts angefasst ![]()
Besten dank, werd ich mir gleich mal anschauen, so wie das hier Aussieht, muss ich dann aber jedes Pixel einzeln überprüfen...so müsste ich aber dann vermutlich irgendwie eine maximale Grösse festlegen, damit die Suche nicht zu lange dauert und vorallem nicht gleich den PC überlastet...wobei das natürlich keine unüberwindbare Hürde ist/wäre. Wenn das so funktioniert, ist das für mich eg. okay, aber ich lasse mal noch offen für den Fall, dass jemand etwas NOCH besseres weiss ![]()
Moinsen
Also 1. mal sorry für den unverständlichen Titel aber ich hatte so keinen Schimmer, wie man diese Frage in einen Sinnvollen Titel verwandeln kann ![]()
Nun zu meiner Frage. Die Ausgangslage ist folgende:
Ich weiss es gäbe da eine Lösung mit PixelGetColor, aber dafür müsste das Bild meines Wissens irgendwie auf dem Bildschirm angezeigt sein und genau das will ich nicht.
Das ganze soll nun also das Bild (Speicherort bekannt) irgendwie im Hintergrund öffnen und dann an der gewünschten Position innerhalb des angegebenen Bereichs diese Prozentual am meisten vorkommende Farbe ausfindig machen, diese Funktion wird dann auf dem gesamten Bild immer mit neuen Koordinaten ausgeführt, bis ich dann für alle einen Farbcode Beispielsweise in einem Array habe.
Ich hoffe das ist mehr oder weniger verständlich geschrieben, ich bin gerade etwas im Stress ![]()
lg Gene
Moin
Für sowas gibt es Suchmaschinen, ich habe über Google so einiges gefunden
Als Beispiel: vielecht hilft dir das irgendwie: http://www.autoit.de/index.php?page=Thread&threadID=19801
Moin zusammen
Hier also mein erstes abgeschlossenes GDI+ Skript, es ist nichts besonderes, einfach ein kleines Geschicklichkeitsspiel.
Besten Dank an gem für die Hilfe zur Geschwindigkeitsoptimierung!
Der Code ist etwas umständlich und könnte durchaus noch mehr optimiert werden, aber ich will nicht zu lange daran rumdoktoren.
Es war eher so eine Art Übungsskript, also hier mal die Endversion meines Schachbrettspiels.
Regeln:
Frei nach dem Motto "wer den Code liest bevor er s gespielt hat ist ein Spielverderber" will ich nun gar nicht mehr lange drumrum reden.
Also: Viel Spass beim spielen!.
Und bitte keine Bemerkungen über den Gewinnerbildschirm im Forum ![]()
lg Gene
Genau
besten dank
Bin heute wohl etwas zerstreut...150 Zeilen in 8h, normalerweise schaff ich mind. 600 ![]()
Moin zusammen
Ich habe gerade angefangen, mit GDI+ zu skripten. Nun hab ich ein etwas komplizierteres Projekt pausiert, um mich mit der Funktion
[autoit]_GDIPlus_GraphicsDrawRect
[/autoit]
auseinander zu setzen und da ich ein Fan von konzentrationsspielen bin, dachte ich mir, ich versuch mal etwas ganz einfaches zu diesem Thema auf die Beine zu stellen.
Nun herausgekommen ist der untenstehende Code, das Programm funktioniert auch grundsätzlich.
Regeln:
- Klickt die erscheinenden Roten Quadrate auf dem Schachbrett an, ihr habt 5 Sekunden Zeit
- Alle 10 Punkte wird die Anzahl der Quadrate auf dem Schachfeld verdoppelt
- Es gibt max. 5 Runden zu spielen (weiter wollte ich aus Zeitgründen nicht gehen)
So...wie gesagt, die Grundfunktionalität ist vorhanden, allerdings werdet ihr bemerken, dass das Schachbrett bereits ab der 3. Stufe nach jedem Punk flackert, auf der letzten Stufe dauert es beinahe 1/2 Sekunde bis das Feld geladen ist.
Ich wäre mir froh, wenn mir jemand helfen könnte, ich glaube ich habe den Buffer irgendwie total seltsam ("schrägstrich" falsch) platziert.
#include <GuiConstants.au3>
#include <GdiPlus.au3>;das include
#include <Misc.au3>
#include <ButtonConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
OnAutoItExitRegister("_end") ; die Funktion _end am Ende des Scriptes ausführen
[/autoit] [autoit][/autoit] [autoit]$size = 80
$score = 0
$Gui = GUICreate("Schachbrett", 800, 800, -1, -1)
GUISetState(@SW_SHOW)
_GDIPlus_Startup() ;Gdi starten
$graphic = _GDIPlus_GraphicsCreateFromHWND($Gui)
$bitmap = _GDIPlus_BitmapCreateFromGraphics(800, 800, $graphic)
$buffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
_drawChess()
$bitmap = _GDIPlus_BitmapCreateFromGraphics(800, 800, $graphic)
$buffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
$timer = TimerInit()
While 1
_drawChess()
While 1
Do
$xRandom = Random(0, 800 - $size, 1)
Until IsInt($xRandom / $size)
Do
$yRandom = Random(0, 800 - $size, 1)
Until IsInt($yRandom / $size)
$redButton = GUICtrlCreateLabel("", $xRandom, $yRandom, $size, $size)
GUICtrlSetBkColor(-1, 0xFF0000)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $redButton
$timer = TimerInit()
GUICtrlDelete($redButton)
$score += 10
If IsInt($score / 100) Then
$size = $size / 2
ExitLoop 2
EndIf
If $score = 500 Then
$return = _win()
If $return =1 Then
Exit
Else
GUIDelete($Gui)
$Gui = GUICreate("Schachbrett", 800, 800, -1, -1)
GUISetState(@SW_SHOW)
$timer = TimerInit()
ExitLoop 2
EndIf
EndIf
_drawChess()
ExitLoop
EndSwitch
If TimerDiff($timer) > 5000 Then
$return = _gameOver($score)
If $return = 1 Then
Exit
Else
GUIDelete($Gui)
$Gui = GUICreate("Schachbrett", 800, 800, -1, -1)
GUISetState(@SW_SHOW)
$timer = TimerInit()
ExitLoop 2
EndIf
EndIf
WEnd
WEnd
WEnd
Func _gameOver($score)
GUICtrlDelete($redButton)
GUIDelete($Gui)
_drawChess()
$Gui = GUICreate("Schachbrett", 800, 800, -1, -1)
GUISetState(@SW_SHOW)
$Label1 = GUICtrlCreateLabel("Game Over!", 80, 120, 589, 122)
GUICtrlSetFont(-1, 72, 400, 0, "MS Reference Sans Serif")
$Label2 = GUICtrlCreateLabel("Your score is: ", 75, 295, 295, 53)
GUICtrlSetFont(-1, 30, 400, 0, "MS Reference Sans Serif")
$Label3 = GUICtrlCreateLabel($score, 380, 295, 295, 53, $SS_RIGHT)
GUICtrlSetFont(-1, 30, 400, 0, "MS Reference Sans Serif")
$Button1 = GUICtrlCreateButton("Replay", 75, 470, 280, 75)
GUICtrlSetFont(-1, 30, 400, 0, "MS Reference Sans Serif")
$Button2 = GUICtrlCreateButton("Quit", 395, 470, 280, 75)
GUICtrlSetFont(-1, 30, 400, 0, "MS Reference Sans Serif")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$return = 0
ExitLoop
Case $Button2
$return = 1
ExitLoop
EndSwitch
WEnd
Return $return
EndFunc
Func _win()
GUICtrlDelete($redButton)
GUIDelete($Gui)
_drawChess()
$Gui = GUICreate("Schachbrett", 800, 800, -1, -1)
GUISetState(@SW_SHOW)
$Label1 = GUICtrlCreateLabel("Congratulations!", 80, 120, 589, 122)
GUICtrlSetFont(-1, 50, 400, 0, "MS Reference Sans Serif")
$Label2 = GUICtrlCreateLabel("You won!!!!!", 75, 295, 295, 53, $SS_CENTER)
GUICtrlSetFont(-1, 30, 400, 0, "MS Reference Sans Serif")
$Button1 = GUICtrlCreateButton("Replay", 75, 470, 280, 75)
GUICtrlSetFont(-1, 30, 400, 0, "MS Reference Sans Serif")
$Button2 = GUICtrlCreateButton("Quit", 395, 470, 280, 75)
GUICtrlSetFont(-1, 30, 400, 0, "MS Reference Sans Serif")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$return = 0
ExitLoop
Case $Button2
$return = 1
ExitLoop
EndSwitch
WEnd
Return $return
EndFunc
Func _drawChess()
$whitePen = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
$blackPen = _GDIPlus_BrushCreateSolid(0xFF000000)
$redPen = _GDIPlus_BrushCreateSolid(0xFFFF0000)
_GDIPlus_GraphicsFillRect($graphic, 0, 0, 800, 800, $whitePen)
For $i = 0 To 800 Step $size * 2
For $j = $size To 800 Step $size * 2
_GDIPlus_GraphicsFillRect($graphic, $j, $i, $size, $size, $blackPen)
_GDIPlus_GraphicsFillRect($graphic, $j - $size, $i - $size, $size, $size, $blackPen)
Next
Next
_GDIPlus_GraphicsDrawImage($graphic, $bitmap, 0, 0)
EndFunc
Func _end();die Exit funktion
_GDIPlus_GraphicsDispose($graphic);Grafik Objekt freigeben
_GDIPlus_GraphicsDispose($buffer)
_GDIPlus_BitmapDispose($bitmap)
_GDIPlus_Shutdown();Ressourcen freigeben
EndFunc ;==>_end
Also ich finde die Version mit überraschung witziger
werds mir aber trotzdem mal ziehen
Musikplayer gibts auf Android keinen Besseren als Power AMP ![]()
Schlage vor das schreibst du ausserhalb des Spoilers, in den Spoiler gehört eg. nur der Code wenn er viele Zeilen hat ![]()
Windows Enterprise 32 bit wärs bei mir. Ich hab dir mal 2 Screens davon angehängt.
Falls du Lust hast GDI+ einzubauen, https://autoit.de/index.php?page=Thread&threadID=20612 ein relativ leicht verständliches Tutorial.
Also ich geb dir mal ein paar Kritikpunkte:
Fazit: aktuell ist es noch so ein Standard-Infotool, keine grossen Besonderheiten. Versuch doch irgendwie gewisse Dinge (z.B. CPU-/RAM-Verlauf) noch Grafisch in einem Diagramm anzuzeigen.
Ich als Design-Fanatiker vermisse natürlich zusätzlich noch die Liebe zum Detail, etwas peppiges keine Ahnung wie genau.
Sieh dir mal Programmie wie z.B. Speccy an da kommst du vieleicht noch Ideen was noch angezeigt werden könnte
Das sollte man so auf gar keinen Fall verwenden. Gerade für solche Fälle gibt es ein Flag in der Funktion GuiGetMsg(), wie im Bsp. von Make-Grafik gezeigt.
Jaa, ich war etwas im Stress und hab nicht gründlich nachgedacht
sorry
Hoppla...mein Fehler
Moment
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("NLT", 105, 116, 192, 133, $GUI_SS_DEFAULT_GUI, BitOR($WS_EX_TOPMOST,$WS_EX_WINDOWEDGE))
$Label1 = GUICtrlCreateLabel("Nova Lüftungstool", 9, 8, 91, 17)
$Label2 = GUICtrlCreateLabel("Status: On/Off", 18, 32, 73, 17)
$Button1 = GUICtrlCreateButton("Tastenbelegung", 5, 72, 83, 17)
$Button2 = GUICtrlCreateButton("Hilfe", 5, 96, 83, 17)
$Label3 = GUICtrlCreateLabel("v.0.4", 40, 48, 28, 17)
GUISetState(@SW_SHOW)
$Form2 = GUICreate("Nova Lüftungstool Tastenbelegung", 540, 230, 666, 394)
$Label1 = GUICtrlCreateLabel("Nova Lüftungstool", 152, 32, 133, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Tastenbelegung", 160, 64, 103, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("Eckig: Kanal=a; Bogen=s; Übergang=ü; Übergang eckig>rund=p; T-Stück=t; Hosenstück=h", 56, 104, 449, 17)
$Label4 = GUICtrlCreateLabel("Rund: Rohr=w; Bogen=r; T-Stück=e; Übergang=u", 56, 144, 456, 17)
$Label5 = GUICtrlCreateLabel("Konstruktionshilfe: Linie=l; K-Linie=k; Verbinder=v; Messen=m; Draggen=d; Drehen=y; Spiegeln=g", 56, 184, 463, 17)
$Label6 = GUICtrlCreateLabel("Textmodus=q; Beenden=Einfg", 144, 200, 371, 17)
GUISetState(@SW_HIDE)
While 1
$nMsg = GUIGetMsg($Form1)
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUISetState(@SW_HIDE, $Form1)
GUISetState(@SW_Show, $Form2)
While 1
$nMsg = GUIGetMsg($Form2)
Switch $nMsg
Case $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE, $Form2)
GUISetState(@SW_Show, $Form1)
ExitLoop
EndSwitch
WEnd
EndSwitch
WEnd
Zu 1. versuch mal:
[autoit]
Case $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE, $Form2)
Anstatt:
Case $GUI_EVENT_CLOSE
Exit
Zu 2.
[autoit]_MouseTrap
[/autoit]Meiner Faulheit schadet das ENORM xD
@miks keine Sorge, ich hab noch nen schlechteren ![]()
[Blockierte Grafik: http://www.fireworks.us/v/vspfiles/photos/FR235-2T.jpg]
-.- wenn ich gewusst hätte, dass hier SQL-Genies rumkursieren. Hätte ich statt mir das alles übers Wochenende einzprügeln, bloss mal hier nachgefragt ![]()
Hab heute ne Abschlussprüfung über SQL...jetzt musste ich 22 Kapitel (ca. 200 Seiten) auswendig lernen, die Prüfung ist Mündlich und beinhaltet 3 FRAGEN! Ich meine wofür lerne ich den ganzen Mist, wenn an der Prüfung genau 3 FRAGEN kommen? ![]()