Hallo zusammen, ich bin derzeit dabei einen Character Editor zu basteln und wollte mal fragen bb Ihr mir vll. helfen könnt ...ich habe schon mit unserem pinken chesstiger geschrieben, er hat mir auch ein kleines Script als Antwort geschickt, (sei mir net bös chess) ich dreh mich immernoch im Kreise
Es geht darum, dass ich wenn ich einen der zwei RadioButtons anklicke zunächst das Bild 1 des jeweiligen Geschlechts der jeweiligen Kategorie (hier nur eine aus testzwecken) gezeichnet wird. Dann kann man mit den weiter/zurück Button alle Bilder die in der Kategorie unter dem ausgewählten Geschlecht sind durchklicken ... Mein problem, ich weiss nicht, wie ich das von mir erstelle Array sinnvoll nutzen kann um an die $hImages zu kommen ... ich bräuchte meiner Meinung nach eine Funktion die im 2D Array die Spalten durchläuft und mir alles was sie gefunden hat zurück gibt.
Ich habe schon mit dem _ArraySearch sowie _Array2DSearch rumgespielt aber komme zu keinem Ziel. Kann mir jemand von euch sagen wie ich das Array mit den Radio Buttons sowie den weiter/zurück Buttons verknüpfen kann?
Spoiler anzeigen
#include <Array.au3>
#include <File.au3>
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
;Creating Pictures (bottom -> top): neck, face (edit), nose, mouth, ears, eyebrows, beard, eyes, tattoo, kemono, hair, glasses
OnAutoItExitRegister("_exit")
_GDIPlus_Startup()
Local $msg
[/autoit] [autoit][/autoit] [autoit];Rectangle Positions
Global $aPos[1][2]
$aPos[0][0] = 10
$aPos[0][1] = 63
;Image/Sex/Slot
Global $aHimages[4][3] = [[_GDIPlus_ImageLoadFromFile(@ScriptDir & "\files\images\female\neck\1.png"), "female", "neck"], _
[_GDIPlus_ImageLoadFromFile(@ScriptDir & "\files\images\female\neck\2.png"), "female", "neck"], _
[_GDIPlus_ImageLoadFromFile(@ScriptDir & "\files\images\male\neck\2.png"), "male", "neck"], _
[_GDIPlus_ImageLoadFromFile(@ScriptDir & "\files\images\male\neck\2.png"), "male", "neck"]]
Global $hGUI = GUICreate("RPG - Character Editor", 200, 200)
Global $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
GUISetState(@SW_SHOW, $hGUI)
;Sex
Global $hLabel_sex = GUICtrlCreateLabel("Geschlecht: ", 10, 10, 50, 20)
Global $hRadio_female = GUICtrlCreateRadio("weiblich", 75, 6)
Global $hRadio_male = GUICtrlCreateRadio("männlich", 140, 6)
;Neck
Global $hLabel_neck = GUICtrlCreateLabel("Hals", 10, 50, 96, 20)
_GDIPlus_GraphicsDrawRect($hGraphic, 10, 63, 96, 96)
Global $hBtn_neckl = GUICtrlCreateButton("<<", 10, 164, 30, 20)
Global $hLabel_necknr = GUICtrlCreateLabel("", 325, 166, 10, 20)
Global $hBtn_neckr = GUICtrlCreateButton(">>", 80, 164, 30, 20)
While 1
$msg = GUIGetMsg()
Switch $msg
Case $hRadio_female
_draw_defaults("female")
Case $hRadio_male
_draw_defaults("male")
Case $hBtn_neckl
Case $hBtn_neckr
[/autoit] [autoit][/autoit] [autoit]Case $GUI_EVENT_CLOSE
_exit()
EndSwitch
WEnd
Func _draw_defaults($sSex)
Local $aSlots[12] = ["neck", "face", "nose", "mouth", "ears", "eyebrows", "beard", "eyes", "tattoo", "kemono", "hair", "glasses"]
For $i = 0 To UBound($aHimages) - 1 Step 1
If $aHimages[$i][1] = $sSex Then
If $aHimages[$i][2] = $aSlots[0] Then
_GDIPlus_GraphicsDrawImageRect($hGraphic, $aHimages[$i][0], $aPos[0][0], $aPos[0][1], 96, 96)
EndIf
EndIf
Next
EndFunc
Func _exit()
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
Exit
EndFunc ;==>_exit
Die Funktion _draw_defaults() funktioniert scheinbar auch noch nicht 100%ig hab ich das Gefühl ... also mein Gedankengang in den Arrays ist folgender:
Bei klick auf einen Radio Button: suche im Array nach male/female, suche nach der kategorie "neck", suche das image des bildes 1, zeichne das.
Wenn nun im Array aber 5 Bilder der Kategorie "neck" unter female sind, soll man dann wenn ich auf die Buttons unter dem kleinen Fenster drücke diese durchgehen können. Das heisst ich muss ein Temporäres Array schreiben, in dem alle Bilder der kategorie female-neck stehen reingeschrieben werden und dann einfach mit einem zähler der hochzählt beim klicken und wenn am letzten Element angekommen, dann setze den einfach auf Anfang. Nur schaffe ich es derzeit nicht sowas umzusetzen
Grüße
#Edit: Anhang mit den Bildern und der Ordnerstruktur hinzugefügt.
#Edit2: Da ich am Script arbeite editiere ich Immer nur den Spoiler!!