Ich wollte auch mal ein Spiel hochladen.
Mir ist bewusst, dass viele Spiele (oder zumindest die, die ich ausprobiert habe) viel besser als meines sind.
Ziel des Spiels ist es, möglichst lange zu verhindern das sich die Plattform über 180° oder unter -180° dreht. Man muss also mit dem Charakter das Ungleichgewicht ausgleichen, indem man, wenn es z.B. nach links kippt, nach rechts geht. Die Taste "Down" sollte nicht so häufig verwendet werden, da jedes Mal ein Risiko besteht.
Steuerung:
Links = Charakter bewegt sich nach links
Rechts = Charakter bewegt sich nach rechts
Unten = Gibt der Plattform Schwung(wenn der Charakter auf der Linken Seite ist geht der Schwung gegen den Uhrzeigersinn, wenn er rechts steht dann mit dem Uhrzeigersinn).
Spoiler anzeigen
#include<misc.au3>
#include<GDIPlus.au3>
#include<WindowsConstants.au3>
#NoTrayIcon
While 1
Game()
If msgbox(1,"","Noch mal spielen?") =2 Then exit
WEnd
Func Game($lvl = 3)
$GUI = GUICreate("Gleichgewicht",400,200,-1,-1,$WS_POPUPWINDOW)
GUISetBkColor(0x000000,$GUI)
_GDIPlus_Startup()
$Grafik = _GDIPlus_GraphicsCreateFromHWND($GUI)
$pos = 90
$Grad = 0
$MGrad = 0
$RGrad = 0
$WZeit = 50
$Bild1 = _GDIPlus_ImageLoadFromFile(@Scriptdir&"\Game\Bild1.jpg")
$Bild2 = _GDIPlus_ImageLoadFromFile(@Scriptdir&"\Game\Bild2.jpg")
$Bild3 = _GDIPlus_ImageLoadFromFile(@Scriptdir&"\Game\Bild3.jpg")
$Bild4 = _GDIPlus_ImageLoadFromFile(@Scriptdir&"\Game\Bild4.jpg")
GUISetState(1,$GUI)
$matrix = _GDIPlus_MatrixCreate()
_GDIPlus_MatrixTranslate($matrix,200,100)
_GDIPlus_GraphicsSetTransform($Grafik, $matrix)
For $i = 0 to 250 step + 10
_GDIPlus_GraphicsDrawImageRect($Grafik,$Bild3,$i - 300,-50,100,25)
_GDIPlus_GraphicsDrawImageRect($Grafik,$Bild4, 200 -$i,-20,100,25)
sleep(2)
next
sleep(1000)
_GDIPlus_MatrixTranslate($matrix,-200,-100)
_GDIPlus_GraphicsSetTransform($Grafik, $matrix)
For $i = 0 to 150 step +2
_GDIPlus_GraphicsDrawImageRect($Grafik,$Bild3,150 - $i,50 - $i,100,25)
_GDIPlus_GraphicsDrawImageRect($Grafik,$Bild4,150 - $i,80 - $i,100,25)
_GDIPlus_GraphicsDrawImageRect($Grafik,$Bild2,400 - 150 - $i,350 - 150 - $i,200,200)
_GDIPlus_GraphicsDrawImageRect($Grafik,$Bild1,500+ $pos - 100 - 150 - $i,349 - 150 - $i,20,20)
sleep(1)
next
sleep(1000)
_GDIPlus_MatrixTranslate($matrix,200,150)
$RGrad = 0
$HOur = @HOUR
$Min = @Min
$Sec = @SEC
_GDIPlus_GraphicsSetTransform($Grafik, $matrix)
While 1
$Zeit = @HOUR * 60*60*1000 + @MIN * 60*1000+ @SEC *1000 + @MSEC
For $i = 1 to 10
$MGrad = $MGrad + $RGrad + (($pos - 90) * 0.3)
_GDIPlus_MatrixRotate($Matrix,$MGrad-$Grad)
$Grad = $MGrad
$RGrad = $RGrad + $Grad * 0.01
_GDIPlus_GraphicsDrawImageRect($Grafik,$Bild2,100 - 200,50 - 150,200,200)
_GDIPlus_GraphicsSetTransform($Grafik, $matrix)
_GDIPlus_GraphicsDrawImageRect($Grafik,$Bild1, $pos - 100,49-150,20,20)
If _IsPressed(25) and $pos > 30 Then $pos = $pos - 5
If _IsPressed(27) and $pos < 150 Then $pos = $pos + 5
If _IsPressed(28) and $pos < 150 Then $RGrad = $RGrad + (($pos - 90) * 0.05)
If _IsPressed("0D")Then exitloop 2
sleep($WZeit)
$RGrad = $RGrad + Random(-1,1,1)
$RGrad = $RGrad - $RGrad / ($lvl * 10)
If $Grad > 180 or $Grad < -180 Then exitloop 2
next
If @HOUR * 60*60*1000 + @MIN * 60*1000+ @SEC *1000+ @MSEC - $Zeit > 50 * 10 Then $WZeit = $WZeit - 5
If @HOUR * 60*60*1000 + @MIN * 60*1000+ @SEC *1000+ @MSEC - $Zeit - 30 > 50 * 10 Then $WZeit = $WZeit - 30
If @HOUR * 60*60*1000 + @MIN * 60*1000+ @SEC *1000+ @MSEC- $Zeit < 50 * 10 Then $WZeit = $WZeit + 5
If @HOUR * 60*60*1000 + @MIN * 60*1000+ @SEC *1000+ @MSEC - $Zeit + 30 < 50 * 10 Then $WZeit = $WZeit + 30
WinSetTitle($GUI,"","Gleichgewicht (MSEC/R "&(@HOUR * 60*60*1000 + @MIN * 60*1000+ @SEC *1000+ @MSEC- $Zeit)/10&")")
WEnd
_GDIPlus_GraphicsDispose($Bild1)
_GDIPlus_GraphicsDispose($Bild2)
_GDIPlus_GraphicsDispose($Bild3)
_GDIPlus_GraphicsDispose($Bild4)
_GDIPlus_MatrixDispose($matrix)
GUIDelete($GUI)
SoundPlay("")
$Time = (@hour * 60 * 60 + @min * 60 + @sec) - ($HOUR * 60 * 60 + $Min * 60 + $Sec)
msgbox(0,"","Du hast "&$Time&" Sekunden durchgehalten")
_GDIPlus_Shutdown()
Return $Time
EndFunc
Schummeln ist übrigens bei diesem Spiel einfach Blödsinn da man den Script ja eh hat und diesen auch einfach umschreiben kann^^
Für alle die trotzdem ein gutes Ergebnis ohne Arbeit haben wollen können ja diesen Script hier benützen
Spoiler anzeigen
msgbox(0,"","Du hast 246 Sekunden durchgehalten")
Geht sogar ohne Bilder