ja? mit gdi+! die winkel berechnen und was weiss ich was alles noch! war harte arbeit aber ist fertig! habe ich aber auf meiner alten festplatte und kann deswegen nicht zeigen. habe aber eine kleine 2D engine erstellt für 2D games (wie z.b mein 2D GTA xD)!
#include-once
Func _Up($PixelsToMoveToDirection,$PlayerXcoords,$Playe rYcoords)
$PlayerYcoords=$PlayerYcoords-$PixelsToMoveToDirection
$returnedcoords=$PlayerYcoords
Return $returnedcoords
EndFunc
Func _Down($PixelsToMoveToDirection,$PlayerXcoords,$Pla yerYcoords)
$PlayerYcoords=$PlayerYcoords+$PixelsToMoveToDirec tion
$returnedcoords=$PlayerYcoords
Return $returnedcoords
EndFunc
Func _Left($PixelsToMoveToDirection,$PlayerXcoords,$Pla yerYcoords)
$PlayerXcoords=$PlayerXcoords-$PixelsToMoveToDirection
$returnedcoords=$PlayerXcoords
Return $returnedcoords
EndFunc
Func _Right($PixelsToMoveToDirection,$PlayerXcoords,$Pl ayerYcoords)
$PlayerXcoords=$PlayerXcoords+$PixelsToMoveToDirec tion
$returnedcoords=$PlayerXcoords
Return $returnedcoords
EndFunc
Func _UpdatePlayer($PlayerToUpdate,$PictureName,$Xcoord sOfPlayer,$YcoordsOfPlayer,$WidthOfPlayer,$HeightO fPlayer)
GUICtrlDelete($PlayerToUpdate)
$PlayerToUpdate=GUICtrlCreatePic($PictureName,$Xco ordsOfPlayer,$YcoordsOfPlayer,$WidthOfPlayer,$Heig htOfPlayer)
EndFunc
Func _Shoot($PlayerXcoords,$PlayerYcoords,$ShootDirecti on,$BulletPictureFilename,$BulletPictureWidth,$Bul letPictureHeight,$PlayerWidth,$PlayerHeight,$GameW indowWidth,$GamewindowHeight,$BulletSpeed,$Xenemy1 ,$Yenemy1,$EnemyWidth,$EnemyHeight)
If $ShootDirection="Up" Then
$bulletx=$PlayerXcoords
$bullety=$PlayerYcoords
For $i=0 To $PlayerYcoords Step 1
$Shot=GUICtrlCreatePic($BulletPictureFilename,$Pla yerXcoords,$PlayerYcoords,$BulletPictureWidth,$Bul letPictureHeight)
$bullety=$bullety-$BulletSpeed
If $bullety>$Yenemy1-$EnemyHeight And $bullety<$Yenemy1+$EnemyHeight And $bulletx>$Xenemy1-$EnemyWidth And $bulletx<$Xenemy1+$EnemyWidth Then
GUICtrlDelete($Shot)
Return
EndIf
GUICtrlDelete($Shot)
Next
ElseIf $ShootDirection="Down" Then
$bulletx=$PlayerXcoords
$bullety=$PlayerYcoords
For $GamewindowHeight=$GamewindowHeight To $PlayerYcoords Step 1
$Shot=GUICtrlCreatePic($BulletPictureFilename,$Pla yerXcoords,$PlayerYcoords,$BulletPictureWidth,$Bul letPictureHeight)
$bullety=$bullety+$BulletSpeed
If $bullety>$Yenemy1-$PlayerWidth And $bullety<$Yenemy1+$PlayerHeight And $bulletx>$Xenemy1-$PlayerWidth And $bulletx<$Xenemy1+$PlayerHeight Then
GUICtrlDelete($Shot)
Return "Enemy1"
EndIf
GUICtrlDelete($Shot)
Next
ElseIf $ShootDirection="Left" Then
$bulletx=$PlayerXcoords
$bullety=$PlayerYcoords
For $i=0 To $PlayerXcoords Step 1
$Shot=GUICtrlCreatePic($BulletPictureFilename,$Pla yerXcoords,$PlayerYcoords,$BulletPictureWidth,$Bul letPictureHeight)
$bulletx=$bulletx-$BulletSpeed
If $bulletx>$Xenemy1 And $bulletx<$Xenemy1+$PlayerWidth Then
GUICtrlDelete($Shot)
Return "Enemy1"
EndIf
Next
ElseIf $ShootDirection="Right" Then
$bulletx=$PlayerXcoords
$bullety=$PlayerYcoords
For $PlayerXcoords=$PlayerXcoords To $GameWindowWidth Step 1
$Shot=GUICtrlCreatePic($BulletPictureFilename,$Pla yerXcoords,$PlayerYcoords,$BulletPictureWidth,$Bul letPictureHeight)
$bulletx=$bulletx+$BulletSpeed
If $bulletx>$Xenemy1 And $bulletx<$Xenemy1+$EnemyWidth And $bullety>$Yenemy1 And $bullety<$Yenemy1+$EnemyHeight Then
GUICtrlDelete($Shot)
MsgBox(0,"","WIN")
Return "Enemy1"
EndIf
GUICtrlDelete($Shot)
Next
EndIf
EndFunc
2D Game (auch ohne gdi+ aber mit bots und schussfunktion munibegrenzung e.t.c (ist net copyrightgeschützt also könnt ihr verbessern e.t.c))
#include <winapi.au3>
#include <String.au3>
#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("2D Spiel", @DesktopWidth, @DesktopHeight, 0, 0)
GUISetState(@SW_SHOW)
$x= @DesktopWidth / 2
$y= @DesktopHeight / 2
$xgegner=Random(@DesktopWidth * 0.5,@DesktopWidth / 1.5)
$ygegner=Random(@DesktopHeight * 0.5,@DesktopHeight / 1.5)
$xgegner2=Random(@DesktopWidth * 0.5,@DesktopWidth / 1.5)
$ygegner2=Random(@DesktopHeight * 0.5,@DesktopHeight / 1.5)
$Player=GUICtrlCreatePic("Player.bmp",$x,$y,32,64)
$Gegner=GUICtrlCreatePic("Gegner.bmp",$xgegner,$yg egner,32,64)
$Gegner2=GUICtrlCreatePic("Gegner.bmp",$xgegner2,$ ygegner2,32,64)
;$hintergrund=GUICtrlCreatePic("Hintergrund.bmp",0 ,0,@DesktopWidth,@DesktopHeight)
;WinSetTrans("2D Spiel","",0)
$Clipammo=10
$Spareammo=20
$Speed=1*2
$Speed2=$Speed*1.5
$left=""
$right=""
#EndRegion ### END Koda GUI section ###
HotKeySet("{Esc}","_Exit")
HotKeySet("{w}","UP")
HotKeySet("{s}","Down")
HotKeySet("{a}","Left")
HotKeySet("{d}","Right")
HotKeySet("{up}","UP")
HotKeySet("{down}","Down")
HotKeySet("{left}","Left")
HotKeySet("{right}","Right")
HotKeySet("{1}","Walkmode")
HotKeySet("{2}","FasterWalkmode")
HotKeySet("{3}","Runmode")
$0=0
$LRUD=""
$LRUD2=""
$tot=0
$tot2=0
$lebenSpieler=100
$lebenGegner=100
$lebenGegner2=100
$LebenanzeigeB1=""
$LebenanzeigeB2=""
$name1="Bot1"
$name2="Bot2"
$TI=TimerInit()
AdlibRegister("_Zurueck",1)
AdlibRegister("_Char",1)
;AdlibRegister("_Move",1)
;AdlibRegister("_Bot2",500)
AdlibRegister("_Bot1",50)
While 1
WEnd
Func _Bot1()
$Move = Random(0,5,1)
$Direction = Random(1,4,1)
$lenght = Random(100,100000,1)
If Not $Move = 0 Then
For $lenght= 0 To $0 Step -0.25
_Move()
_Bot2()
GUICtrlDelete($Gegner)
GUICtrlDelete($LebenanzeigeB1)
If $Direction = 1 Then
$ygegner=$ygegner - 5.0
$LOR="U"
ElseIf $Direction = 2 Then
$xgegner=$xgegner + 5.0
$LOR="R"
ElseIf $Direction = 3 Then
$ygegner=$ygegner + 5.0
$LOR="NOR"
ElseIf $Direction = 4 Then
$xgegner=$xgegner - 5.0
$LOR="L"
EndIf
If $tot=0 Then
If $LOR="NOR" Then
$LebenanzeigeB1=GUICtrlCreateProgress($xgegner,$yg egner-10,32,10)
GUICtrlSetData(-1,$lebenGegner)
$Gegner=GUICtrlCreatePic("Gegner.bmp",$xgegner,$yg egner,32,64)
ElseIf $LOR="R" Then
$LebenanzeigeB1=GUICtrlCreateProgress($xgegner,$yg egner-10,32,10)
GUICtrlSetData(-1,$lebenGegner)
$Gegner=GUICtrlCreatePic("GegnerR.bmp",$xgegner,$y gegner,32,64)
ElseIf $LOR="L" Then
$LebenanzeigeB1=GUICtrlCreateProgress($xgegner,$yg egner-10,32,10)
GUICtrlSetData(-1,$lebenGegner)
$Gegner=GUICtrlCreatePic("GegnerR.bmp",$xgegner,$y gegner,32,64)
ElseIf $LOR="U" Then
$LebenanzeigeB1=GUICtrlCreateProgress($xgegner,$yg egner-10,32,10)
GUICtrlSetData(-1,$lebenGegner)
$Gegner=GUICtrlCreatePic("GegnerU.bmp",$xgegner,$y gegner,32,64)
ElseIf $LOR="LU" Then
$LebenanzeigeB1=GUICtrlCreateProgress($xgegner,$yg egner-10,32,10)
GUICtrlSetData(-1,$lebenGegner)
$Gegner=GUICtrlCreatePic("GegnerLU.bmp",$xgegner,$ ygegner,32,64)
ElseIf $LOR="RU" Then
$LebenanzeigeB1=GUICtrlCreateProgress($xgegner,$yg egner-10,32,10)
GUICtrlSetData(-1,$lebenGegner)
$Gegner=GUICtrlCreatePic("GegnerRU.bmp",$xgegner,$ ygegner,32,64)
ElseIf $LOR="LD" Then
$LebenanzeigeB1=GUICtrlCreateProgress($xgegner,$yg egner-10,32,10)
GUICtrlSetData(-1,$lebenGegner)
$Gegner=GUICtrlCreatePic("GegnerLD.bmp",$xgegner,$ ygegner,32,64)
ElseIf $LOR="RD" Then
$LebenanzeigeB1=GUICtrlCreateProgress($xgegner,$yg egner-10,32,10)
GUICtrlSetData(-1,$lebenGegner)
$Gegner=GUICtrlCreatePic("GegnerRD.bmp",$xgegner,$ ygegner,32,64)
EndIf
EndIf
Next
Else
EndIf
EndFunc
Func _Move()
If Not _IsPressed(_StringToHex("A")) And Not _IsPressed(_StringToHex("D")) Then
If _IsPressed(_StringToHex("W")) Then
;If $left = "" And $right = "" Then
UP()
;EndIf
EndIf
EndIf
If _IsPressed(_StringToHex("A")) Then
If Not _IsPressed(_StringToHex("W")) And Not _IsPressed(_StringToHex("S")) Then
;If $left = "" And $right = "" Then
LEFT()
;EndIf
EndIf
EndIf
If Not _IsPressed(_StringToHex("W")) And Not _IsPressed(_StringToHex("S")) Then
If _IsPressed(_StringToHex("D")) Then
;If $left = "" And $right = "" Then
RIGHT()
;EndIf
EndIf
EndIf
If Not _IsPressed(_StringToHex("a")) And Not _IsPressed(_StringToHex("D")) Then
If _IsPressed(_StringToHex("S")) Then
;If $left = "" And $right = "" Then
DOWN()
;EndIf
EndIf
EndIf
If _IsPressed(20) Then
If TimerDiff($TI)>100 Then
$TI=TimerInit()
$Clipammo=$Clipammo-1
If $Clipammo=0 Then
If not $Spareammo=0 Then
$Clipammo=10
$Spareammo=$Spareammo-10
EndIf
EndIf
If $LRUD = "U" Then
$schussy=$y
For $i=0 To $y Step 1
$schussy=$schussy-1
$schuss=GUICtrlCreatePic("Schuss.bmp",$x+8,$schuss y,5,50)
If $schussy>$ygegner-32 And $schussy<$ygegner+64 And $x>$xgegner-32 And $x<$xgegner+64 Then
$lebenGegner=$lebenGegner-12.5
$schussy=$schussy+64
If $lebenGegner=0 Then
$blut=GUICtrlCreatePic("Blut.bmp",$xgegner-16,$ygegner-32,64,128)
$tot=1
EndIf
ElseIf $schussy>$ygegner2-32 And $schussy<$ygegner2+64 And $x>$xgegner2-32 And $x<$xgegner2+64 Then
$lebenGegner2=$lebenGegner2-12.5
$schussy=$schussy+64
If $lebenGegner2=0 Then
$blut=GUICtrlCreatePic("Blut.bmp",$xgegner2-16,$ygegner2-3,64,128)
$tot2=1
EndIf
GUICtrlDelete($schuss)
ExitLoop
EndIf
GUICtrlDelete($schuss)
Next
ElseIf $LRUD = "R" Then
$schussx=$x
$desktopwidth=@DesktopWidth
For $desktopwidth=$desktopwidth To 0 Step -1
$schussx=$schussx+1
$schuss=GUICtrlCreatePic("Schuss.bmp",$schussx,$y+ 16,20,5)
If $schussx>$xgegner-16 And $schussx<$xgegner+32 And $y>$ygegner-32 And $y<$ygegner+64 Then
$lebenGegner=$lebenGegner-12.5
$schussx=$schussx+32
If $lebenGegner=0 Then
$blut=GUICtrlCreatePic("Blut.bmp",$xgegner-16,$ygegner-32,64,128)
$tot=1
EndIf
ElseIf $schussx>$xgegner2-16 And $schussx<$xgegner2+32 And $y>$ygegner2 And $y<$ygegner2+64 Then
$lebenGegner=$lebenGegner-12.5
$schussx=$schussx-32
If $lebenGegner=0 Then
$blut=GUICtrlCreatePic("Blut.bmp",$xgegner2-16,$ygegner2-32,64,128)
$tot2=1
EndIf
GUICtrlDelete($schuss)
ExitLoop
EndIf
GUICtrlDelete($schuss)
Next
ElseIf $LRUD = "" Then
$schussy=$y
$desktopheight=@DesktopHeight
For $y=$y To $desktopheight Step 1
$schussy=$schussy+1
$schuss=GUICtrlCreatePic("Schuss.bmp",$x+8,$schuss y,5,50)
If $schussy>$ygegner-32 And $schussy<$ygegner+64 And $x>$xgegner-16 And $x<$xgegner+32 Then
$lebenGegner=$lebenGegner-12.5
$schussy=$schussy+64
If $lebenGegner=0 Then
$blut=GUICtrlCreatePic("Blut.bmp",$xgegner-16,$ygegner-32,64,128)
$tot=1
EndIf
ElseIf $schussy>$ygegner2-32 And $schussy<$ygegner2+64 And $x>$xgegner2-16 And $x<$xgegner2+32 Then
$lebenGegner2=$lebenGegner2-12.5
$schussy=$schussy+64
If $lebenGegner2=0 Then
$blut=GUICtrlCreatePic("Blut.bmp",$xgegner2-16,$ygegner2-32,64,128)
$tot2=1
EndIf
GUICtrlDelete($schuss)
ExitLoop
EndIf
GUICtrlDelete($schuss)
Next
ElseIf $LRUD = "L" Then
$schussx=$x
For $i=0 To $x Step 1
$schussx=$schussx-1
$schuss=GUICtrlCreatePic("Schuss.bmp",$schussx,$y+ 16,20,5)
If $schussx>$xgegner And $schussx<$xgegner+32 And $y>$ygegner-32 And $y<$ygegner+64 Then
$lebenGegner=$lebenGegner-12.5
$schussx=$schussx-32
If $lebenGegner=0 Then
$blut=GUICtrlCreatePic("Blut.bmp",$xgegner-16,$ygegner-32,64,128)
$tot=1
EndIf
ElseIf $schussx>$xgegner2 And $schussx<$xgegner2+32 And $y>$ygegner2-32 And $y<$ygegner2+64 Then
$lebenGegner2=$lebenGegner2-12.5
$schussx=$schussx+32
If $lebenGegner2=0 Then
$blut=GUICtrlCreatePic("Blut.bmp",$xgegner2-16,$ygegner2-32,64,128)
$tot2=1
EndIf
GUICtrlDelete($schuss)
ExitLoop
EndIf
GUICtrlDelete($schuss)
Next
EndIf
EndIf
EndIf
;$left=""
;$right=""
;If _IsPressed(_StringToHex("S")) And _IsPressed(_StringToHex("a")) Then
; LEFTDOWN()
; $left="down"
;ElseIf _IsPressed(_StringToHex("S")) And _IsPressed(_StringToHex("D")) Then
; RIGHTDOWN()
; $right="down"
;EndIf
;If _IsPressed(_StringToHex("W")) And _IsPressed(_StringToHex("A")) Then
; LEFTUP()
; $left="up"
;EndIf
;If _IsPressed(_StringToHex("W")) And _IsPressed(_StringToHex("D")) Then
; RIGHTUP()
; $right="up"
;EndIf
EndFunc
Func _Char()
GUICtrlDelete($Player)
$Player=GUICtrlCreatePic("Player"&$LRUD&".bmp",$x, $y, 32,64)
EndFunc
Func _Zurueck()
$DW=@DesktopWidth-32
$DH=@DesktopHeight-94
$Null=0
If $xgegner > $DW Then
$xgegner=$DW
$lenght=1
ElseIf $ygegner > $DH Then
$ygegner=$DH
$lenght=1
ElseIf $xgegner < $Null Then
$xgegner=0
$lenght=1
ElseIf $ygegner < $Null Then
$ygegner=0
$lenght=1
EndIf
If $x > $DW Then
$x=$DW
ElseIf $y > $DH Then
$y=$DH
ElseIf $x < $Null Then
$x=0
ElseIf $y < $Null Then
$y=0
EndIf
EndFunc
Func _Exit()
Exit 0
EndFunc
Func UP()
$y=$y-$Speed
$LRUD="U"
;GUICtrlDelete($Player)
;$Player=GUICtrlCreatePic("PlayerU.bmp",$x,$y, 32,64)
EndFunc
Func Down()
$y=$y+$Speed
$LRUD=""
;GUICtrlDelete($Player)
;$Player=GUICtrlCreatePic("Player.bmp",$x,$y, 32,64)
EndFunc
Func Left()
$x=$x-$Speed
$LRUD="L"
;GUICtrlDelete($Player)
;$Player=GUICtrlCreatePic("PlayerL.bmp",$x,$y, 32,64)
EndFunc
Func Right()
$x=$x+$Speed
$LRUD="R"
;GUICtrlDelete($Player)
;$Player=GUICtrlCreatePic("PlayerR.bmp",$x,$y, 32,64)
EndFunc
Func RIGHTUP()
$x=$x+$Speed2/2
$y=$y-$Speed2/2
$LRUD="RU"
EndFunc
Func LEFTUP()
$x=$x-$Speed2/2
$y=$y-$Speed2/2
$LRUD="LU"
EndFunc
Func RIGHTDOWN()
$x=$x+$Speed2/2
$y=$y+$Speed2/2
$LRUD="RD"
EndFunc
Func LEFTDOWN()
$x=$x-$Speed2/2
$y=$y+$Speed2/2
$LRUD="LD"
EndFunc
Func Walkmode()
$Speed=1
$Speed2=$Speed*1.5
EndFunc
Func FasterWalkmode()
$Speed=1*2
$Speed2=$Speed*1.5
EndFunc
Func Runmode()
$Speed=1*4
$Speed2=$Speed*1.5
EndFunc
Func _Bot2()
$Move2 = Random(0,5,1)
$Direction2 = Random(1,4,1)
$lenght2 = Random(100,100000,1)
If Not $Move2 = 0 Then
For $lenght2= 0 To $0 Step -0.5
If $tot2=0 Then
GUICtrlDelete($LebenanzeigeB2)
GUICtrlDelete($Gegner2)
GUICtrlDelete($name2)
If $Direction2 = 1 Then
$ygegner2=$ygegner2 - 5.0
$LOR2="U"
ElseIf $Direction2 = 2 Then
$xgegner2=$xgegner2 + 5.0
$LOR2="R"
ElseIf $Direction2 = 3 Then
$ygegner2=$ygegner2 + 5.0
$LOR2="NOR"
ElseIf $Direction2 = 4 Then
$xgegner2=$xgegner2 - 5.0
$LOR2="L"
EndIf
If $LOR2="NOR" Then
$LebenanzeigeB2=GUICtrlCreateProgress($xgegner2,$y gegner2-10,32,10)
GUICtrlSetData($LebenanzeigeB2,$lebenGegner2)
$name2=GUICtrlCreateLabel("Bot2",$xgegner2,$ygegne r2-25,32,15)
$Gegner2=GUICtrlCreatePic("Gegner.bmp",$xgegner2,$ ygegner2,32,64)
ElseIf $LOR2="R" Then
$LebenanzeigeB2=GUICtrlCreateProgress($xgegner2,$y gegner2-10,32,10)
GUICtrlSetData($LebenanzeigeB2,$lebenGegner2)
$name2=GUICtrlCreateLabel("Bot2",$xgegner2,$ygegne r2-25,32,15)
$Gegner2=GUICtrlCreatePic("GegnerR.bmp",$xgegner2, $ygegner2,32,64)
ElseIf $LOR2="L" Then
$LebenanzeigeB2=GUICtrlCreateProgress($xgegner2,$y gegner2-10,32,10)
GUICtrlSetData($LebenanzeigeB2,$lebenGegner2)
$name2=GUICtrlCreateLabel("Bot2",$xgegner2,$ygegne r2-25,32,15)
$Gegner2=GUICtrlCreatePic("GegnerL.bmp",$xgegner2, $ygegner2,32,64)
ElseIf $LOR2="U" Then
$LebenanzeigeB2=GUICtrlCreateProgress($xgegner2,$y gegner2-10,32,10)
GUICtrlSetData($LebenanzeigeB2,$lebenGegner2)
$name2=GUICtrlCreateLabel("Bot2",$xgegner2,$ygegne r2-25,32,15)
$Gegner2=GUICtrlCreatePic("GegnerU.bmp",$xgegner2, $ygegner2,32,64)
ElseIf $LOR2="LU" Then
$LebenanzeigeB2=GUICtrlCreateProgress($xgegner2,$y gegner2-10,32,10)
GUICtrlSetData($LebenanzeigeB2,$lebenGegner2)
$name2=GUICtrlCreateLabel("Bot2",$xgegner2,$ygegne r2-25,32,15)
$Gegner2=GUICtrlCreatePic("GegnerLU.bmp",$xgegner2 ,$ygegner2,32,64)
ElseIf $LOR2="RU" Then
$LebenanzeigeB2=GUICtrlCreateProgress($xgegner2,$y gegner2-10,32,10)
GUICtrlSetData($LebenanzeigeB2,$lebenGegner2)
$name2=GUICtrlCreateLabel("Bot2",$xgegner2,$ygegne r2-25,32,15)
$Gegner2=GUICtrlCreatePic("GegnerRU.bmp",$xgegner2 ,$ygegner2,32,64)
ElseIf $LOR2="LD" Then
$LebenanzeigeB2=GUICtrlCreateProgress($xgegner2,$y gegner2-10,32,10)
GUICtrlSetData($LebenanzeigeB2,$lebenGegner2)
$name2=GUICtrlCreateLabel("Bot2",$xgegner2,$ygegne r2-25,32,15)
$Gegner2=GUICtrlCreatePic("GegnerLD.bmp",$xgegner2 ,$ygegner2,32,64)
ElseIf $LOR2="RD" Then
$LebenanzeigeB2=GUICtrlCreateProgress($xgegner2,$y gegner2-10,32,10)
GUICtrlSetData($LebenanzeigeB2,$lebenGegner2)
$name2=GUICtrlCreateLabel("Bot2",$xgegner2,$ygegne r2-25,32,15)
$Gegner2=GUICtrlCreatePic("GegnerRD.bmp",$xgegner2 ,$ygegner2,32,64)
EndIf
Else
EndIf
Next
Else
EndIf
EndFunc