[Blockierte Grafik: http://www8.pic-upload.de/14.09.11/g4stv9m7uqh.png]
DOWNLOAD v1.0
DOWNLOAD v1.1
DOWNLOAD v1.2
Beschreibung
ich habe mal versucht das spiel kamakaze race in quickdraw umzusetzen. in dem spiel müsst ihr den autos ausweichen mit der zeit wirst du schneller und dadurch wird das ausweichen schwieriger
Script v1.0
#include <QuickDraw.au3>
#include <GUIConstants.au3>
Dim $Car[4]
Dim $Object[10][4]
Dim $Lanes[6]
Dim $high[10]
$high[0] = 200
$high[1] = 500
$high[2] = 1000
$high[3] = 1500
$high[4] = 2000
$high[5] = 2500
$high[6] = 3000
$high[7] = 5000
$high[8] = 10000
$high[9] = 20000
Global $Title = "Game"
Global $Width = 700
Global $Height = 660
Global $Timer = 0
Global $Speed = 0
_QuickDraw_Enable($Title, $Width, $Height, 0, 0, False)
Dim $Texture[5]
$Texture[0] = _QuickDraw_LoadTexture("car1.png")
$Texture[1] = _QuickDraw_LoadTexture("car2.png")
$Texture[2] = _QuickDraw_LoadTexture("car3.png")
$Texture[3] = _QuickDraw_LoadTexture("car4.png")
$Texture[4] = _QuickDraw_LoadTexture("car5.png")
$Tacho = _QuickDraw_LoadTexture("tacho.png")
WinMove($Title, "", @DesktopWidth / 2 - $Width / 2, @DesktopHeight / 2 - $Height / 2)
_Game()
Func _Game()
Local $Font = _QuickDraw_CreateFont("Courier New")
HotKeySet("{RIGHT}", "_Right")
HotKeySet("{LEFT}", "_Left")
$Car[0] = 6
$Car[1] = $Height - 150
$Car[2] = 39
$Car[3] = 70
$Speed = 2
$Counter = 6
For $i = 0 To UBound($Object) - 1
$Object[$i][0] = Random(0 - $Height, 0)
$Object[$i][2] = $Counter
$Object[$i][3] = $Texture[Round(Random(0, UBound($Texture) - 1))]
$Counter = $Counter + 50
Next
$Positon = 0
For $i = 0 To UBound($Lanes) - 1
$Lanes[$i] = $Positon
$Positon = $Positon + 120
Next
While ( _QuickDraw_Running() And (GUIGetMsg() <> $GUI_EVENT_CLOSE))
_QuickDraw_ClearBuffer(0xFF000000)
AdlibRegister("_Counter", 10)
For $i = 0 To UBound($Object) - 1
$Object[$i][0] = $Object[$i][0] + $Speed
If $Object[$i][0] >= $Height Then
$Object[$i][0] = Random(0 - $Height, 0)
$Object[$i][3] = $Texture[Round(Random(0, UBound($Texture) - 1))]
EndIf
$Object[$i][1] = _QuickDraw_Rect($Object[$i][2], $Object[$i][0], $Car[2], $Car[3], $Object[$i][3], 0xFFFFFFFF)
Next
_QuickDraw_Rect($Car[0], $Car[1], $Car[2], $Car[3], $Texture, 0xFFFF0000)
_Collision($Car[0], $Car[1])
For $i = 0 To UBound($Lanes) - 1
$Lanes[$i] = $Lanes[$i] + $Speed - 1
If $Lanes[$i] >= $Height Then $Lanes[$i] = -60
For $i2 = 1 To 10
_QuickDraw_Rect($i2 * 50, $Lanes[$i], 1, 60, $Draw_Fill, 0xFF999999)
Next
Next
_QuickDraw_Text(1, 20, $Timer, 28, $Font, $Draw_Fill, 0xFFFFFFFF)
_QuickDraw_Rect($Width - 185, $Height - 185, 175, 175, $Tacho, 0xFFFFFFFF)
_QuickDraw_Line($Width - 185 + 88, $Height - 185 + 88, $Width - 185, $Height - 185, 0xFF0000FF)
_QuickDraw_SwapBuffers()
WEnd
_QuickDraw_FreeFont($Font)
For $i = 0 To UBound($Texture) - 1
_QuickDraw_FreeTexture($Texture[$i])
Next
_QuickDraw_FreeTexture($Tacho)
_QuickDraw_Disable()
EndFunc ;==>_Game
Func _Right()
$State = True
For $i = 0 To UBound($Object) - 1
If $Car[1] > Round($Object[$i][0]) - 10 And $Car[1] < Round($Object[$i][0]) + $Car[3] + 10 And $Car[0] + 50 = $Object[$i][2] Then $State = False
Next
If $State = True Then
If $Car[0] <= $Width - $Car[3] - 200 Then
$Car[0] = $Car[0] + 50
EndIf
EndIf
EndFunc ;==>_Right
Func _Left()
$State = True
For $i = 0 To UBound($Object) - 1
If $Car[1] > Round($Object[$i][0]) - 10 And $Car[1] < Round($Object[$i][0]) + $Car[3] + 10 And $Car[0] - 50 = $Object[$i][2] Then $State = False
Next
If $State = True Then
If $Car[0] <> 0 + 6 Then
$Car[0] = $Car[0] - 50
EndIf
EndIf
EndFunc ;==>_Left
Func _Collision($PosX, $PosY)
For $i = 0 To UBound($Object) - 1
If $PosX = $Object[$i][2] And $PosY > Round($Object[$i][0]) + $Car[3] - 7 And $PosY < Round($Object[$i][0]) + $Car[3] + 7 Then
$Speed = 2
$Timer = 0
EndIf
Next
EndFunc ;==>_Collision
Func _Counter()
$Timer = $Timer + 1
For $i = 0 To UBound($high) - 1
If $Timer = $high[$i] Then $Speed = $Speed + 1
Next
EndFunc ;==>_Counter
Script v1.1
#include <QuickDraw.au3>
If Not FileExists("Auto1.png") Then FileInstall("Auto1.png", "Auto1.png")
If Not FileExists("Auto2.png") Then FileInstall("Auto2.png", "Auto2.png")
If Not FileExists("Auto3.png") Then FileInstall("Auto3.png", "Auto3.png")
If Not FileExists("Auto4.png") Then FileInstall("Auto4.png", "Auto4.png")
If Not FileExists("Auto5.png") Then FileInstall("Auto5.png", "Auto5.png")
If Not FileExists("Tachometer.png") Then FileInstall("Tachometer.png", "Tachometer.png")
If Not FileExists("QuickDraw.dll") Then FileInstall("QuickDraw.dll", "QuickDraw.dll")
If Not FileExists("FreeImage.dll") Then FileInstall("FreeImage.dll", "FreeImage.dll")
If Not FileExists("Punkte.ini") Then FileInstall("Punkte.ini", "Punkte.ini")
If Not FileExists("Autobahn.au3") Then FileInstall("Autobahn.au3", "Autobahn.au3")
If Not FileExists("QuickDraw.au3") Then FileInstall("QuickDraw.au3", "QuickDraw.au3")
Global $Titel = "Autobahn"
Global $Breite = 700
Global $Hoehe = 660
Global $Punktestand = 0
Global $Geschwindigkeit = 2
Global $Zaehler = 6
_QuickDraw_Enable($Titel, $Breite, $Hoehe, 0, 0, False)
Dim $Auto[4]
$Auto[0] = 6
$Auto[1] = 510
$Auto[2] = 39
$Auto[3] = 70
Dim $Objekt[10][5]
Dim $Linien[6]
Dim $Punkte[10]
Dim $Textur[5]
$Textur[0] = _QuickDraw_LoadTexture("Auto1.png")
$Textur[1] = _QuickDraw_LoadTexture("Auto2.png")
$Textur[2] = _QuickDraw_LoadTexture("Auto3.png")
$Textur[3] = _QuickDraw_LoadTexture("Auto4.png")
$Textur[4] = _QuickDraw_LoadTexture("Auto5.png")
Global $Tachometer = _QuickDraw_LoadTexture("Tachometer.png")
Global $Schrift = _QuickDraw_CreateFont("Courier New")
WinMove($Titel, "", @DesktopWidth / 2 - $Breite / 2, @DesktopHeight / 2 - $Hoehe / 2)
_Spiel()
Func _Spiel()
_PunkteLesen()
HotKeySet("{RIGHT}", "_Rechts")
HotKeySet("{LEFT}", "_Links")
_ObjektZufall()
$Positon = 0
For $i = 0 To UBound($Linien) - 1
$Linien[$i] = $Positon
$Positon = $Positon + 120
Next
While ( _QuickDraw_Running() And (GUIGetMsg() <> -16))
_QuickDraw_ClearBuffer(0xFF000000)
AdlibRegister("_PunkteZaehler", 10)
For $i = 0 To UBound($Objekt) - 1
$Objekt[$i][0] = $Objekt[$i][0] + $Geschwindigkeit - $Objekt[$i][4]
If $Objekt[$i][0] >= $Hoehe Then
$Objekt[$i][0] = Random(0 - $Hoehe, -$Auto[3])
$Objekt[$i][4] = Round(Random(0, 2))
$Objekt[$i][3] = $Textur[Round(Random(0, UBound($Textur) - 1))]
EndIf
$Objekt[$i][1] = _QuickDraw_Rect($Objekt[$i][2], $Objekt[$i][0], $Auto[2], $Auto[3], $Objekt[$i][3], 0xFFFFFFFF)
Next
_QuickDraw_Rect($Auto[0], $Auto[1], $Auto[2], $Auto[3], $Textur, 0xFFFF0000)
_Kollision($Auto[0], $Auto[1])
For $i = 0 To UBound($Linien) - 1
$Linien[$i] = $Linien[$i] + $Geschwindigkeit + 1
If $Linien[$i] >= $Hoehe Then $Linien[$i] = -60
For $i2 = 1 To 10
_QuickDraw_Rect($i2 * 50, $Linien[$i], 1, 60, $Draw_Fill, 0xFF999999)
Next
Next
_QuickDraw_Text(1, 20, $Punktestand, 28, $Schrift, $Draw_Fill, 0xFFFFFFFF)
_QuickDraw_Rect($Breite - 185, $Hoehe - 185, 175, 175, $Tachometer, 0xFFFFFFFF)
_QuickDraw_RotateNext($Breite - 97, $Hoehe - 97, $Geschwindigkeit * 22)
_QuickDraw_Line($Breite - 97, $Hoehe - 97, 539, 620, 0xFF0000FF)
_ZeigePunkte()
_QuickDraw_SwapBuffers()
WEnd
For $i = 0 To UBound($Textur) - 1
_QuickDraw_FreeTexture($Textur[$i])
Next
_QuickDraw_FreeTexture($Tachometer)
_QuickDraw_FreeFont($Schrift)
_QuickDraw_Disable()
EndFunc ;==>_Spiel
Func _Rechts()
$Status = True
For $i = 0 To UBound($Objekt) - 1
If $Auto[1] > Round($Objekt[$i][0]) - $Auto[3] And $Auto[1] < Round($Objekt[$i][0]) + $Auto[3] + 10 And $Auto[0] + 50 = $Objekt[$i][2] Then $Status = False
Next
If $Status = True Then
If $Auto[0] <= $Breite - $Auto[3] - 200 Then
$Auto[0] = $Auto[0] + 50
EndIf
EndIf
EndFunc ;==>_Rechts
Func _Links()
$Status = True
For $i = 0 To UBound($Objekt) - 1
If $Auto[1] > Round($Objekt[$i][0]) - $Auto[3] And $Auto[1] < Round($Objekt[$i][0]) + $Auto[3] + 10 And $Auto[0] - 50 = $Objekt[$i][2] Then $Status = False
Next
If $Status = True Then
If $Auto[0] <> 0 + 6 Then
$Auto[0] = $Auto[0] - 50
EndIf
EndIf
EndFunc ;==>_Links
Func _Kollision($PosX, $PosY)
For $i = 0 To UBound($Objekt) - 1
If $PosX = $Objekt[$i][2] And $PosY > Round($Objekt[$i][0]) + $Auto[3] - 7 And $PosY < Round($Objekt[$i][0]) + $Auto[3] + 7 Then
_PunktSetzen()
_PunkteSchreiben()
$Geschwindigkeit = 2
$Punktestand = 0
_ObjektZufall()
EndIf
Next
EndFunc ;==>_Kollision
Func _PunkteZaehler()
$Punktestand = $Punktestand + 1
If $Geschwindigkeit <> 12 Then $Geschwindigkeit = $Geschwindigkeit + 0.002
EndFunc ;==>_PunkteZaehler
Func _PunkteLesen()
For $i = 0 To 9
$Punkte[$i] = IniRead("Punkte.ini", "Punkte", $i + 1, 0)
Next
EndFunc ;==>_PunkteLesen
Func _PunkteSchreiben()
For $i = 0 To 9
IniWrite("Punkte.ini", "Punkte", $i + 1, $Punkte[$i])
Next
EndFunc ;==>_PunkteSchreiben
Func _ZeigePunkte()
$Status = 20
For $i = 0 To 9
$Status = $Status + 20
_QuickDraw_Text(540, $Status, $i + 1 & " : " & $Punkte[$i], 20, $Schrift, $Draw_Fill, 0xFFFFFFFF)
Next
EndFunc ;==>_ZeigePunkte
Func _ObjektZufall()
$Zaehler = 6
For $i = 0 To UBound($Objekt) - 1
$Objekt[$i][0] = Random(0 - $Hoehe, -$Auto[3])
$Objekt[$i][2] = $Zaehler
$Objekt[$i][3] = $Textur[Round(Random(0, UBound($Textur) - 1))]
$Objekt[$i][4] = Random(0, 2)
$Zaehler = $Zaehler + 50
Next
EndFunc ;==>_ObjektZufall
Func _PunktSetzen()
$Status = True
For $i = 0 To 9
If $Status <> False Then
If $Punktestand > $Punkte[$i] Then
$Status = 9
Do
$Punkte[$Status] = $Punkte[$Status - 1]
$Status = $Status - 1
Until $Status = $i
$Punkte[$i] = $Punktestand
$Status = False
EndIf
EndIf
Next
EndFunc ;==>_PunktSetzen
Script v1.2
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=Autobahn.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <QuickDraw.au3>
If Not FileExists("Auto1.png") Then FileInstall("Auto1.png", "Auto1.png")
If Not FileExists("Auto2.png") Then FileInstall("Auto2.png", "Auto2.png")
If Not FileExists("Auto3.png") Then FileInstall("Auto3.png", "Auto3.png")
If Not FileExists("Auto4.png") Then FileInstall("Auto4.png", "Auto4.png")
If Not FileExists("Auto5.png") Then FileInstall("Auto5.png", "Auto5.png")
If Not FileExists("Tachometer.png") Then FileInstall("Tachometer.png", "Tachometer.png")
If Not FileExists("QuickDraw.dll") Then FileInstall("QuickDraw.dll", "QuickDraw.dll")
If Not FileExists("FreeImage.dll") Then FileInstall("FreeImage.dll", "FreeImage.dll")
If Not FileExists("Punkte.ini") Then FileInstall("Punkte.ini", "Punkte.ini")
If Not FileExists("Autobahn.au3") Then FileInstall("Autobahn.au3", "Autobahn.au3")
If Not FileExists("QuickDraw.au3") Then FileInstall("QuickDraw.au3", "QuickDraw.au3")
If Not FileExists("Autobahn.ico") Then FileInstall("Autobahn.ico", "Autobahn.ico")
Global $Titel = "Autobahn"
Global $Breite = 700
Global $Hoehe = 660
Global $Punktestand = 0
Global $Geschwindigkeit = 2
Global $Zaehler = 6
_QuickDraw_Enable($Titel, $Breite, $Hoehe, 0, 0, False)
Dim $Auto[4]
$Auto[0] = 6
$Auto[1] = 510
$Auto[2] = 39
$Auto[3] = 70
Dim $Objekt[10][5]
Dim $Linien[6]
Dim $Punkte[10]
Dim $Textur[5]
$Textur[0] = _QuickDraw_LoadTexture("Auto1.png")
$Textur[1] = _QuickDraw_LoadTexture("Auto2.png")
$Textur[2] = _QuickDraw_LoadTexture("Auto3.png")
$Textur[3] = _QuickDraw_LoadTexture("Auto4.png")
$Textur[4] = _QuickDraw_LoadTexture("Auto5.png")
Global $Tachometer = _QuickDraw_LoadTexture("Tachometer.png")
Global $Schrift = _QuickDraw_CreateFont("Courier New")
WinMove($Titel, "", @DesktopWidth / 2 - $Breite / 2, @DesktopHeight / 2 - $Hoehe / 2)
_Spiel()
Func _Spiel()
_PunkteLesen()
HotKeySet("{RIGHT}", "_Rechts")
HotKeySet("{LEFT}", "_Links")
_ObjektZufall()
$Positon = 0
For $i = 0 To UBound($Linien) - 1
$Linien[$i] = $Positon
$Positon = $Positon + 120
Next
While ( _QuickDraw_Running() And (GUIGetMsg() <> -16))
_QuickDraw_ClearBuffer(0xFF000000)
AdlibRegister("_PunkteZaehler", 10)
For $i = 0 To UBound($Objekt) - 1
$Objekt[$i][0] = $Objekt[$i][0] + $Geschwindigkeit - $Objekt[$i][4]
If $Objekt[$i][0] >= $Hoehe Then
$Objekt[$i][0] = Random(0 - $Hoehe, -$Auto[3])
$Objekt[$i][4] = Round(Random(0, 2))
$Objekt[$i][3] = $Textur[Round(Random(0, UBound($Textur) - 1))]
EndIf
$Objekt[$i][1] = _QuickDraw_Rect($Objekt[$i][2], $Objekt[$i][0], $Auto[2], $Auto[3], $Objekt[$i][3], 0xFFFFFFFF)
Next
_QuickDraw_Rect($Auto[0], $Auto[1], $Auto[2], $Auto[3], $Textur, 0xFFFF0000)
_Kollision($Auto[0], $Auto[1])
For $i = 0 To UBound($Linien) - 1
$Linien[$i] = $Linien[$i] + Round($Geschwindigkeit) + 1
If $Linien[$i] >= $Hoehe Then $Linien[$i] = -60
For $i2 = 1 To 10
_QuickDraw_Rect($i2 * 50, $Linien[$i], 1, 60, $Draw_Fill, 0xFF999999)
Next
Next
_QuickDraw_Text(1, 20, $Punktestand, 28, $Schrift, $Draw_Fill, 0xFFFFFFFF)
_QuickDraw_Rect($Breite - 185, $Hoehe - 185, 175, 175, $Tachometer, 0xFFFFFFFF)
_QuickDraw_RotateNext($Breite - 97, $Hoehe - 97, $Geschwindigkeit * 22)
_QuickDraw_Line($Breite - 97, $Hoehe - 97, 539, 620, 0xFF0000FF)
_ZeigePunkte()
_QuickDraw_SwapBuffers()
WEnd
For $i = 0 To UBound($Textur) - 1
_QuickDraw_FreeTexture($Textur[$i])
Next
_QuickDraw_FreeTexture($Tachometer)
_QuickDraw_FreeFont($Schrift)
_QuickDraw_Disable()
EndFunc ;==>_Spiel
Func _Rechts()
$Status = True
For $i = 0 To UBound($Objekt) - 1
If $Auto[1] > Round($Objekt[$i][0]) - $Auto[3] And $Auto[1] < Round($Objekt[$i][0]) + $Auto[3] + 10 And $Auto[0] + 50 = $Objekt[$i][2] Then $Status = False
Next
If $Status = True Then
If $Auto[0] <= $Breite - $Auto[3] - 200 Then
$Auto[0] = $Auto[0] + 50
EndIf
EndIf
EndFunc ;==>_Rechts
Func _Links()
$Status = True
For $i = 0 To UBound($Objekt) - 1
If $Auto[1] > Round($Objekt[$i][0]) - $Auto[3] And $Auto[1] < Round($Objekt[$i][0]) + $Auto[3] + 10 And $Auto[0] - 50 = $Objekt[$i][2] Then $Status = False
Next
If $Status = True Then
If $Auto[0] <> 0 + 6 Then
$Auto[0] = $Auto[0] - 50
EndIf
EndIf
EndFunc ;==>_Links
Func _Kollision($PosX, $PosY)
For $i = 0 To UBound($Objekt) - 1
If $PosX = $Objekt[$i][2] And $PosY > Round($Objekt[$i][0]) + $Auto[3] - 7 And $PosY < Round($Objekt[$i][0]) + $Auto[3] + 7 Then
_PunktSetzen()
_PunkteSchreiben()
$Geschwindigkeit = 2
$Punktestand = 0
$Positon = 0
For $i = 0 To UBound($Linien) - 1
$Linien[$i] = $Positon
$Positon = $Positon + 120
Next
_ObjektZufall()
EndIf
Next
EndFunc ;==>_Kollision
Func _PunkteZaehler()
$Punktestand = $Punktestand + 1
If $Geschwindigkeit <> 12 Then $Geschwindigkeit = $Geschwindigkeit + 0.002
EndFunc ;==>_PunkteZaehler
Func _PunkteLesen()
For $i = 0 To 9
$Punkte[$i] = IniRead("Punkte.ini", "Punkte", $i + 1, 0)
Next
EndFunc ;==>_PunkteLesen
Func _PunkteSchreiben()
For $i = 0 To 9
IniWrite("Punkte.ini", "Punkte", $i + 1, $Punkte[$i])
Next
EndFunc ;==>_PunkteSchreiben
Func _ZeigePunkte()
$Status = 20
For $i = 0 To 9
$Status = $Status + 20
_QuickDraw_Text(540, $Status, $i + 1 & " : " & $Punkte[$i], 20, $Schrift, $Draw_Fill, 0xFFFFFFFF)
Next
EndFunc ;==>_ZeigePunkte
Func _ObjektZufall()
$Zaehler = 6
For $i = 0 To UBound($Objekt) - 1
$Objekt[$i][0] = Random(0 - $Hoehe, -$Auto[3])
$Objekt[$i][2] = $Zaehler
$Objekt[$i][3] = $Textur[Round(Random(0, UBound($Textur) - 1))]
$Objekt[$i][4] = Random(0, 2)
$Zaehler = $Zaehler + 50
Next
EndFunc ;==>_ObjektZufall
Func _PunktSetzen()
$Status = True
For $i = 0 To 9
If $Status <> False Then
If $Punktestand > $Punkte[$i] Then
$Status = 9
Do
$Punkte[$Status] = $Punkte[$Status - 1]
$Status = $Status - 1
Until $Status = $i
$Punkte[$i] = $Punktestand
$Status = False
EndIf
EndIf
Next
EndFunc ;==>_PunktSetzen