Heyho leute,
Ich habe jetzt schon wirkle viel gegoogelt.
aber ich bekomme es einfach nicht hin ein bild mit transparetz zu machen in einer gui.
Aus der hilfe konnte ich was entnehmen.
"Um ein transparentes Bild zu erzeugen, ist es erforderlich, dass das GUI-Fenster mit dem erweiterten Stil WS_EX_LAYERED erzeugt wird. Das oberste linke Pixel wird hierbei als "transparente Farbe" benutzt. Werden mehrere Bilder erzeugt, bestimmt das letzte Bild die "transparente Farbe"."
aber irgendwie klapp das nicht.
Ich hab das schon mit einem normalen jpg probiert wo die ecke oben links weiß ist , aber es geht nicht.
mit einer "gif" grafik hab ich es auch schon probiert geht immer noch ne.
Und ich habe es sogra mit GDI+ probiert aber da habe ich das problem das, dass spiel dann so richtig abkackt mit "wollen sie an microsoft senden".
hier mein script vor den ganzen versuchen ihr muss aber noch die bilder im anhang runterladen
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#Include <File.au3>
#include <Array.au3>
#include <Misc.au3>
#include "GIFAnimation.au3"
#include <GDIPlus.au3>
Global $avArray[100000],$avArray2[100000],$blaa
[/autoit] [autoit][/autoit] [autoit]HotKeySet("{ESC}", "main")
$dll = DllOpen("user32.dll")
$i = 1
$ii = 1
$iii= 3
$size=20
$left=$size
$top=10
$line = 2
$leben = 10
$1234="wall"
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]FileOpen ("world\"&$1234&".txt")
$lines= _FileCountLines("world\"&$1234&".txt")
$GUI = GUICreate ("das ist ein test",1600,800,-1,-1)
$0 = FileReadLine("world\"&$1234&".txt",1)
$0 = StringSplit ($0,",")
$top1=$top
[/autoit] [autoit][/autoit] [autoit]$wall = FileReadLine("world\"&$1234&".txt",$line)
$wall = StringSplit ($wall,"")
$wallnumber=UBound ($wall)
While 1
if $wallnumber > $i then
$var = IniReadSection("ini\"& $1234&".ini", $wall[$i])
If @error Then
$1 = Random(1,$0[0],1)
GUICtrlCreatePic ("images\"& $0[$1],$left,$top1,$size,$size)
$avArray[$iii] = 0
$avArray2[$iii] = 0
Else
if $var[2][1] == 1 then
$1 = Random(1,$0[0],1)
GUICtrlCreatePic ("images\"& $0[$1],$left,$top1,$size,$size)
$avArray[$iii] =0
$avArray2[$iii] =0
$lefts=$left
$tops=$top1
$spieler=$var[1][1]
Else
GUICtrlCreatePic ("images\"& $var[1][1],$left,$top1,$size,$size)
$avArray[$iii] = $var[3][1]
$avArray2[$iii] = $var[4][1]
EndIf
EndIf
$i+=1
$left+=$size
$iii+=1
else
$line +=1
if $line <= $lines then
$wall = FileReadLine("world\"&$1234&".txt",$line)
$wall = StringSplit ($wall,"")
$wallnumber=UBound ($wall)
$i=1
$top1 +=$size
$left=$size
Else
FileClose ("world\"&$1234&".txt")
ExitLoop
EndIf
EndIf
WEnd
$spieler = GUICtrlCreatePic ("images\"& $spieler,$lefts,$tops,$size,$size)
$label = GUICtrlCreateLabel ("Leben:"& $leben,1200,10)
GUISetState(@SW_SHOW)
While 1
If _IsPressed("25", $dll) Then
left()
EndIf
If _IsPressed("26", $dll) Then
up()
EndIf
If _IsPressed("27", $dll) Then
right()
EndIf
If _IsPressed("28", $dll) Then
down()
EndIf
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
func main()
Exit
EndFunc
func left()
$lefts-=$size
$ControlID = _GetControlByPos($gui, $lefts,$tops)
if $avArray[$ControlID] == 0 then
Sleep (50)
GUICtrlSetPos ( $spieler, $lefts, $tops)
ElseIf $avArray[$ControlID] == 3 then
_newworld ($ControlID)
ElseIf $avArray[$ControlID] == 4 then
$leben -= 1
if $leben == 0 Then
MsgBox (0,0,"GAME OVER :-)")
Exit
EndIf
GUICtrlSetData ($label,"Leben:"&$leben)
GUICtrlSetPos ( $spieler, $lefts, $tops)
$pic = GUICtrlCreatePic ("1.jpg",0,0,1600,800)
Sleep (20)
GUICtrlDelete ($pic)
ElseIf $avArray[$ControlID] == 5 then
Sleep (50)
GUICtrlSetPos ( $spieler, $lefts, $tops)
if Random (0,10,1) = 1 Then
_pokemon()
EndIf
ElseIf $avArray[$ControlID] == 10 then
$datei = FileOpen($avArray2[$ControlID] & ".txt", 0)
MsgBox (0,0,FileRead("msg\"&$avArray2[$ControlID]) )
$lefts+=$size
Else
$lefts+=$size
EndIf
EndFunc
func right()
$lefts+=$size
$ControlID = _GetControlByPos($gui, $lefts,$tops)
if $avArray[$ControlID] == 0 then
Sleep (50)
GUICtrlSetPos ( $spieler, $lefts, $tops)
ElseIf $avArray[$ControlID] == 3 then
_newworld ($ControlID)
[/autoit] [autoit][/autoit] [autoit]ElseIf $avArray[$ControlID] == 4 then
$leben -= 1
if $leben == 0 Then
MsgBox (0,0,"GAME OVER :-)")
Exit
EndIf
GUICtrlSetData ($label,"Leben:"&$leben)
GUICtrlSetPos ( $spieler, $lefts, $tops)
$pic = GUICtrlCreatePic ("1.jpg",0,0,1600,800)
Sleep (20)
GUICtrlDelete ($pic)
ElseIf $avArray[$ControlID] == 5 then
Sleep (50)
GUICtrlSetPos ( $spieler, $lefts, $tops)
if Random (0,10,1) = 1 Then
_pokemon()
;MsgBox (0,0,"Hier wehre jetzt ein Pokemon gekommen")
EndIf
ElseIf $avArray[$ControlID] == 10 then
$datei = FileOpen($avArray2[$ControlID] & ".txt", 0)
MsgBox (0,0,FileRead("msg\"&$avArray2[$ControlID]) )
$lefts-=$size
Else
$lefts-=$size
EndIf
EndFunc
func up()
$tops-=$size
$ControlID = _GetControlByPos($gui, $lefts,$tops)
if $avArray[$ControlID] == 0 then
Sleep (50)
GUICtrlSetPos ( $spieler, $lefts, $tops)
ElseIf $avArray[$ControlID] == 3 then
_newworld ($ControlID)
ElseIf $avArray[$ControlID] == 4 then
$leben -= 1
if $leben == 0 Then
MsgBox (0,0,"GAME OVER :-)")
Exit
EndIf
GUICtrlSetData ($label,"Leben:"&$leben)
GUICtrlSetPos ( $spieler, $lefts, $tops)
$pic = GUICtrlCreatePic ("1.jpg",0,0,1600,800)
Sleep (20)
GUICtrlDelete ($pic)
ElseIf $avArray[$ControlID] == 5 then
Sleep (50)
GUICtrlSetPos ( $spieler, $lefts, $tops)
if Random (0,10,1) = 1 Then
_pokemon()
;MsgBox (0,0,"Hier wehre jetzt ein Pokemon gekommen")
EndIf
ElseIf $avArray[$ControlID] == 10 then
$datei = FileOpen($avArray2[$ControlID] & ".txt", 0)
MsgBox (0,0,FileRead("msg\"&$avArray2[$ControlID]) )
$tops+=$size
else
$tops+=$size
EndIf
EndFunc
func down()
$tops+=$size
$ControlID = _GetControlByPos($gui, $lefts,$tops)
if $avArray[$ControlID] == 0 then
Sleep (50)
GUICtrlSetPos ( $spieler, $lefts, $tops)
ElseIf $avArray[$ControlID] == 3 then
_newworld ($ControlID)
ElseIf $avArray[$ControlID] == 4 then
$leben -= 1
if $leben == 0 Then
MsgBox (0,0,"GAME OVER :-)")
Exit
EndIf
GUICtrlSetData ($label,"Leben:"&$leben)
GUICtrlSetPos ( $spieler, $lefts, $tops)
$pic = GUICtrlCreatePic ("1.jpg",0,0,1600,800)
Sleep (20)
GUICtrlDelete ($pic)
ElseIf $avArray[$ControlID] == 5 then
Sleep (50)
GUICtrlSetPos ( $spieler, $lefts, $tops)
if Random (0,10,1) = 1 Then
_pokemon()
;MsgBox (0,0,"Hier wehre jetzt ein Pokemon gekommen")
EndIf
ElseIf $avArray[$ControlID] == 10 then
$datei = FileOpen($avArray2[$ControlID] & ".txt", 0)
MsgBox (0,0,FileRead("msg\"&$avArray2[$ControlID]) )
$tops-=$size
else
$tops-=$size
EndIf
EndFunc
Func _GetControlByPos($hGui, $iX, $iY)
For $i = 1 To 100000
$aPos = ControlGetPos($GUI, "", $i)
If IsArray($aPos) And $iX = $aPos[0] And $iY = $aPos[1] Then Return $i
Next
Return -1
EndFunc
Func _newworld ($ControlID)
[/autoit] [autoit][/autoit] [autoit]GUIDelete ($GUI)
[/autoit] [autoit][/autoit] [autoit]$i = 1
$ii = 1
$iii= 3
$left=$size
$top=10
$line = 2
$blaa = $ControlID
$1234 = $avArray2[$ControlID]
FileOpen ("world\"&$1234&".txt")
$lines= _FileCountLines("world\"&$1234&".txt")
$GUI = GUICreate ("das ist ein test",1600,800,-1,-1)
$0 = FileReadLine("world\"&$1234&".txt",1)
$0 = StringSplit ($0,",")
$top1=$top
[/autoit] [autoit][/autoit] [autoit]$wall = FileReadLine("world\"&$1234&".txt",$line)
$wall = StringSplit ($wall,"")
$wallnumber=UBound ($wall)
While 1
if $wallnumber > $i then
$var = IniReadSection("ini\"& $1234&".ini", $wall[$i])
If @error Then
$1 = Random(1,$0[0],1)
GUICtrlCreatePic ("images\"& $0[$1],$left,$top1,$size,$size)
$avArray[$iii] = 0
$avArray2[$iii] = 0
Else
if $var[2][1] == 1 then
$1 = Random(1,$0[0],1)
GUICtrlCreatePic ("images\"& $0[$1],$left,$top1,$size,$size)
$avArray[$iii] =0
$avArray2[$iii] =0
$lefts=$left
$tops=$top1
$spieler=$var[1][1]
Else
GUICtrlCreatePic ("images\"& $var[1][1],$left,$top1,$size,$size)
$avArray[$iii] = $var[3][1]
$avArray2[$iii] = $var[4][1]
EndIf
EndIf
$i+=1
$left+=$size
$iii+=1
else
$line +=1
if $line <= $lines then
$wall = FileReadLine("world\"&$1234&".txt",$line)
$wall = StringSplit ($wall,"")
$wallnumber=UBound ($wall)
$i=1
$top1 +=$size
$left=$size
Else
FileClose ("world\"&$1234&".txt")
ExitLoop
EndIf
EndIf
WEnd
$spieler = GUICtrlCreatePic ("images\"& $spieler,$lefts,$tops,$size,$size)
$label = GUICtrlCreateLabel ("Leben:"& $leben,1200,10)
GUISetState(@SW_SHOW)
EndFunc
Func _pokemon ()
$fulla=0
$fullb=0
$ka=600
$kb=400
$kc=0
$kd=0
$kea=$ka
$keb=$kb
$sizex=$size
GUIDelete ($GUI)
$GUI = GUICreate ("",600,400,-1,-1)
while 1
$fullao=$fulla
$fullbo=$fullb
GUISetState(@SW_SHOW)
while $fulla<=$ka and $fullb<=$kb
$blink=GUICtrlCreatePic("images\schwarz.jpg", $fulla, $fullb, $size, $size)
if $fulla>=$kea and $fullb<=$keb Then
$fullb=$fullb+$size
Else
$fulla=$fulla+$size
EndIf
WEnd
$fullb=$fullb-$size
while $fulla>=$kc and $fullb>=$kd
$blink=GUICtrlCreatePic("images\schwarz.jpg", $fulla, $fullb, $size, $size)
if $fulla<$size Then
$fullb=$fullb-$size
Else
$fulla=$fulla-$size
EndIf
WEnd
$fulla=$fullao+$size
$fullb=$fullbo+$size
$ka=$ka-$size
$kb=$kb-$size
$kc=$kc+$size
$kd=$kd+$size
$sizex=$sizex+$size
$fullao=$fulla
$fullbo=$fullb
GUISetState(@SW_SHOW)
while $fulla<=$ka and $fullb<=$kb
$blink=GUICtrlCreatePic("images\schwarz.jpg", $fulla, $fullb, $size, $size)
if $fulla>=$ka and $fullb<=$kb Then
$fullb=$fullb+$size
Else
$fulla=$fulla+$size
EndIf
WEnd
$fullb=$fullb-$size
while $fulla>=$kc and $fullb>=$kd
$blink=GUICtrlCreatePic("images\schwarz.jpg", $fulla, $fullb, $size, $size)
if $fulla<$sizex Then
$fullb=$fullb-$size
Else
$fulla=$fulla-$size
EndIf
WEnd
if $fulla>=$ka/2 Then
ExitLoop
EndIf
WEnd
$size=20
msgbox(4096, "Pokemon", "Immer noch keine Pokemon")
Exit
_newworld($blaa)
EndFunc