Guten Tag!
Ich Habe ein Problem: Ich schreibe gerade eine IDE für au3Irr2 und AutoIT IrrKlang. Jetzt bin ich gerade beim interpreter und ich will abfragen, ob der alte Knopf immer noch gedrückt wird. Ich Wähle den anderen Knopf und nichts passiert.
Erst hab ich gedacht ich hätte nen grundliegenden Fehler gemach und hab das Ergebnis mit ner MsgBox gecheckt richtig - also greift das If statement nicht. Kann mir einer helfen?
Hier der Code:
Spoiler anzeigen
Func _AIDKAPI_Interpret2DMenu($strAIDKMENUFile, $iRed = 255, $iGreen = 255, $iBlue = 255, $bRenderScene = False, $strCallbackFunction = "")
Local $strFileText = FileRead($strAIDKMENUFile)
Local $aCommands = StringSplit($strFileText, @CRLF)
Local $aParameters, $aButtonParameters
Local $iWidth, $iHeight, $aTmpTextureInformation
Local $aMousePosition
Local $iSelectedButton = 1, $iOldSelectedButton = 1, $aButtons[1] = [0], $fButtonTopX, $fButtonTopY, $fButtonBottomX, $fButtonBottomY
Local $vButtonClick = False, $vButtonSwitch = False
For $i = 1 To $aCommands[0]
$aParameters = StringSplit($aCommands[$i], "|")
If $aParameters[1] = "ButtonSettings" Then
If Not $aParameters[2] = False Then $vButtonClick = Eval($aParameters[2])
If Not $aParameters[3] = False Then $vButtonSwitch = Eval($aParameters[3])
EndIf
If $aParameters[1] = "Button" Then
_ArrayAdd($aButtons, $aCommands[$i])
$aButtons[0] += 1
EndIf
Next
While True
_IrrGetScreenSize($iWidth, $iHeight)
$aMousePosition = _IrrGetAbsoluteMousePosition()
_IrrBeginScene($iRed, $iGreen, $iBlue)
If $bRenderScene = True Then _IrrDrawScene()
If Not $strCallbackFunction = "" Then Execute($strCallbackFunction)
;[...]
For $i = 0 To $aButtons[0]-1
$aButtonParameters = StringSplit($aButtons[$i+1], "|")
$fButtonTopX = _AIDKAPI_PercentToPixel($aButtonParameters[2], $iWidth)
$fButtonTopY = _AIDKAPI_PercentToPixel($aButtonParameters[3], $iHeight)
$fButtonBottomX = _AIDKAPI_PercentToPixel($aButtonParameters[4], $iWidth)
$fButtonBottomY = _AIDKAPI_PercentToPixel($aButtonParameters[5], $iHeight)
If $aMousePosition[0] >= $fButtonTopX And $aMousePosition[1] >= $fButtonTopY And $aMousePosition[0] <= $fButtonBottomX And $aMousePosition[1] <= $fButtonBottomY Then $iSelectedButton = $i+1
If _IsPressed(25) Or _IsPressed(26) Then
While _IsPressed(25) Or _IsPressed(26)
WEnd
$iSelectedButton -= 1
If $iSelectedButton < 1 Then $iSelectedButton = $aButtons[0]
EndIf
If _IsPressed(27) Or _IsPressed(28) Then
While _IsPressed(27) Or _IsPressed(28)
WEnd
$iSelectedButton += 1
If $iSelectedButton > $aButtons[0] Then $iSelectedButton = 1
EndIf
MsgBox(0,0,$iOldSelectedButton&@LF&$iSelectedButton)
;Check if it the old selected button is not the same as the actual and play the select sound
If Not $iOldSelectedButton = $iSelectedButton Then
MsgBox(0,"","YOLO")
If Not $vButtonClick = False Then _AIK_EnginePlay2DSource($vButtonClick)
If Not $vButtonSwitch = False Then _AIK_EnginePlay2DSource($vButtonSwitch)
EndIf
;Check if it's selected and draw
If $iSelectedButton = $i+1 Then
$aTmpTextureInformation = _IrrGetTextureInformation(Eval($aButtonParameters[6]))
_IrrDraw2DImageElementStretch(Eval($aButtonParameters[6]), $fButtonTopX, $fButtonTopY, $fButtonBottomX, $fButtonBottomY, _AIDKAPI_PercentToPixel($aButtonParameters[7], $aTmpTextureInformation[0]), _AIDKAPI_PercentToPixel($aButtonParameters[8], $aTmpTextureInformation[1]), _AIDKAPI_PercentToPixel($aButtonParameters[9], $aTmpTextureInformation[0]), _AIDKAPI_PercentToPixel($aButtonParameters[10], $aTmpTextureInformation[1]), $aButtonParameters[11])
Else
$aTmpTextureInformation = _IrrGetTextureInformation(Eval($aButtonParameters[12]))
_IrrDraw2DImageElementStretch(Eval($aButtonParameters[12]), $fButtonTopX, $fButtonTopY, $fButtonBottomX, $fButtonBottomY, _AIDKAPI_PercentToPixel($aButtonParameters[13], $aTmpTextureInformation[0]), _AIDKAPI_PercentToPixel($aButtonParameters[14], $aTmpTextureInformation[1]), _AIDKAPI_PercentToPixel($aButtonParameters[15], $aTmpTextureInformation[0]), _AIDKAPI_PercentToPixel($aButtonParameters[16], $aTmpTextureInformation[1]), $aButtonParameters[17])
EndIf
Next
;[...]
$iOldSelectedButton = $iSelectedButton
_IrrEndScene()
WEnd
EndFunc
Sorry, dass der Code so umständlich ist aber ich bin noch mittendrin. Danke schon mal im Vorraus
Euer Grimbizo