Beiträge von gem
-
-
wie bekomme ich eine Textbreite mit beliebiger schrift und Schriftgröße in Pixel
mit
[autoit]_GUICtrlListView_GetStringWidth()
[/autoit]habe ich es nicht hinbekommen
bräuchte dies für GDI+
-
ich habe mal versucht ein GDI+ Editor zu schreiben
Version 2
[Blockierte Grafik: http://img846.imageshack.us/img846/5754/picof.png]
was immer noch nicht funktioniert
- drawstringex
- farbverlaufkonsolenbefehle (einfach befehl eingeben und enter drücken) z.B. savetofile=test.jpg
title : ändert title
width : ändert breite
height : ändert höhe
color : ändert hintergrundfarbe
graphics : zeigt die grafik array
savetofile : speichert bitmap zu einer datei
run : startet programm
save : speichern
saveas : speichern unter
copy : speichert quelltext in zwischenspeicher
exit : schließt das programm
new : neu
open : öffnenwährend ihr zeichnet könnt ihr mit tastenbefehlen etwas ändern achtet daraufr das ihr die linke maustaste gedrückt haltet
RECHTS = Startwinkel += 1
LINKS = Startwinkel -=1
UNTEN = Pfeilung -=1
OBEN = Pfeilung+=1
STRG = Objekte werden quadratisch wenn möglich
BILD AUF = Striftbreite +=1
BILD RUNTER = Striftbreite -=1 -
-
ich habe auch mal versucht das zu machen allerdings mit quickdraw ist sehr viel leichter als gdi+
du kannst dir das ja einfach mal angucken
DOWNLOAD
//mit linksklick wählst du ein objekt aus mit rechtsklick baust du dieses
//mit gedrückter linker taste werden alle möglichen felder angezeigtzu deinen fragen
speicher alle möglichen baupositionen in einer array und gucke dann ob diese schon besetzt ist oder nciht wenn nicht erstelle dort ein bild
arbeite mit _IsPressed
-
ich denke die leichteste methode wäre es mir richedit zu machen lies dir mal die funktionen in der hilfe durch
-
respekt sieht wirklich gut aus
-
guten tag
da ich viele sachen berechnen will wollte ich fragen was schneller beim berechnen ist, oder ob es gleich schnell ist, oder gibt es eine besser art?
[autoit]1.
[/autoit]
Func _Test($Test)
If $Test = 1 Then
For $i = 0 To 10000
If ... = ... Then Return True
Next
ElseIf $Test = 2 Then
For $i = 0 To 10000
If ... = ... Then Return True
Next
EndIf
EndFunc
2.
Func _Test($Test)
For $i = 0 To 10000
If $Test = 1 Then
If ... = ... Then Return True
ElseIf $Test = 2 Then
If ... = ... Then Return True
EndIf
Next
EndFunc -
[Blockierte Grafik: http://www8.pic-upload.de/14.09.11/wzwbwcha5zxg.png]
DOWNLOAD v1.0Beschreibung
ich weiß das schon fast jeder hier im forum snake gemacht hat nun wollte ich es jetzt auch einmal machen ich glaube erklären brauche ich das spiel nicht
Script v1.0
[autoit]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[/autoit]
#AutoIt3Wrapper_icon=Snake.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <QuickDraw.au3>
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("Snake.au3") Then FileInstall("Snake.au3", "Snake.au3")
If Not FileExists("QuickDraw.au3") Then FileInstall("QuickDraw.au3", "QuickDraw.au3")
If Not FileExists("Snake.ico") Then FileInstall("Snake.ico", "Snake.ico")
Dim $Schlange[1][2]
Dim $Punkt[1][2]
Dim $Status[4][3]
Dim $Punkte[10]
Global $Titel = "Snake"
Global $Breite = 800
Global $Hoehe = 800
Global $Richtung = "Rechts"
Global $Laenge = 2
Global $Schleife = 0
_QuickDraw_Enable($Titel, $Breite, $Hoehe, 0, 0, False)
_QuickDraw_SetLineWidth(2)
Global $Schrift = _QuickDraw_CreateFont("Courier New")
WinMove($Titel, "", @DesktopWidth / 2 - $Breite / 2, @DesktopHeight / 2 - $Hoehe / 2)
_Spiel()
Func _Spiel()
$Status[0][0] = +40
$Status[0][1] = 0
$Status[0][2] = "Links"
$Status[1][0] = -40
$Status[1][1] = 0
$Status[1][2] = "Rechts"
$Status[2][0] = 0
$Status[2][1] = -40
$Status[2][2] = "Unten"
$Status[3][0] = 0
$Status[3][1] = +40
$Status[3][2] = "Oben"
$Schlange[0][0] = 0
$Schlange[0][1] = 0
_PunktZufall()
HotKeySet("{RIGHT}", "_Rechts")
HotKeySet("{LEFT}", "_Links")
HotKeySet("{UP}", "_Oben")
HotKeySet("{DOWN}", "_Unten")
HotKeySet("{n}", "_Neustart")
While ( _QuickDraw_Running() And (GUIGetMsg() <> -16))
_QuickDraw_ClearBuffer(0xFFFFFFFF)
_Hintergrund()
_Kollision()
_Richtung()
_PunktSammeln()
_ZeigeLaenge()
_QuickDraw_Rect($Punkt[0][0], $Punkt[0][1], 40, 40, $Draw_Fill, 0xFF666666)
For $i = 0 To UBound($Schlange) - 1
_QuickDraw_Rect($Schlange[$i][0], $Schlange[$i][1], 40, 40, $Draw_Line, 0xFF666666)
Next
_QuickDraw_SwapBuffers()
Sleep(100)
WEnd
_Ende()
EndFunc ;==>_Spiel
Func _Hintergrund()
$Variable = 20
For $i = 0 To 40
_QuickDraw_Line($Variable, 0, $Variable, $Hoehe, 0xFFCCCCCC)
$Variable = $Variable + 20
Next
$Variable = 20
For $i = 0 To 40
_QuickDraw_Line(0, $Variable, $Breite, $Variable, 0xFFCCCCCC)
$Variable = $Variable + 20
Next
EndFunc ;==>_Hintergrund
Func _Richtung()
If $Richtung = "Rechts" Then $Schlange[0][0] = $Schlange[0][0] + 40
If $Richtung = "Links" Then $Schlange[0][0] = $Schlange[0][0] - 40
If $Richtung = "Oben" Then $Schlange[0][1] = $Schlange[0][1] - 40
If $Richtung = "Unten" Then $Schlange[0][1] = $Schlange[0][1] + 40
If $Schlange[0][0] = -40 Then $Schlange[0][0] = $Breite - 40
If $Schlange[0][0] = $Breite Then $Schlange[0][0] = 0
If $Schlange[0][1] = -40 Then $Schlange[0][1] = $Hoehe - 40
If $Schlange[0][1] = $Hoehe Then $Schlange[0][1] = 0
$i = UBound($Schlange)
If $i <> 1 Then
Do
$i = $i - 1
$Schlange[$i][0] = $Schlange[$i - 1][0]
$Schlange[$i][1] = $Schlange[$i - 1][1]
Until $i = 1
EndIf
EndFunc ;==>_Richtung
Func _Kollision()
For $i = 0 To UBound($Status) - 1
For $i2 = 1 To UBound($Schlange) - 1
If $Richtung = $Status[$i][2] Then
If $Schlange[0][0] = $Schlange[$i2][0] + $Status[$i][0] And $Schlange[0][1] = $Schlange[$i2][1] + $Status[$i][1] Then
$Schleife = 0
_Verloren()
EndIf
EndIf
Next
Next
EndFunc ;==>_Kollision
Func _PunktSammeln()
If $Schlange[0][0] = $Punkt[0][0] And $Schlange[0][1] = $Punkt[0][1] Then
$Laenge = $Laenge + 1
ReDim $Schlange[$Laenge][2]
$Schlange[$Laenge - 1][0] = $Punkt[0][0]
$Schlange[$Laenge - 1][1] = $Punkt[0][1]
_PunktZufall()
EndIf
EndFunc ;==>_PunktSammeln
Func _ZeigeLaenge()
_QuickDraw_Text(3, 15, $Laenge * 10 - 20, 22, $Schrift, $Draw_Fill, 0xFF666666)
EndFunc ;==>_ZeigeLaenge
Func _PunktZufall()
$Punkt[0][0] = Round(Random(0, 19)) * 40
$Punkt[0][1] = Round(Random(0, 19)) * 40
For $i = 0 To UBound($Schlange) - 1
If $Punkt[0][0] = $Schlange[$i][0] And $Punkt[0][1] = $Schlange[$i][1] Then _PunktZufall()
Next
EndFunc ;==>_PunktZufall
Func _Verloren()
_PunkteLesen()
_PunktSetzen()
_PunkteSchreiben()
If $Schleife <> 1 Then
Do
If Not _QuickDraw_Running() And GUIGetMsg() <> -16 Then _Ende()
_QuickDraw_ClearBuffer(0xFFFFFFFF)
_Hintergrund()
_QuickDraw_Text($Breite / 2 - 80, 200, "Verloren", 40, $Schrift, $Draw_Fill, 0xFF666666)
_QuickDraw_Text(3, 15, "'n' drücken zum Neustarten", 22, $Schrift, $Draw_Fill, 0xFF666666)
_ZeigePunkte()
_QuickDraw_SwapBuffers()
Until $Schleife = 1
EndIf
$Richtung = "Rechts"
$Laenge = 2
Dim $Schlange[1][2]
$Schlange[0][0] = 0
$Schlange[0][1] = 0
_PunktZufall()
EndFunc ;==>_Verloren
Func _Rechts()
If $Richtung <> "Links" Or $Laenge = 2 Then $Richtung = "Rechts"
EndFunc ;==>_Rechts
Func _Links()
If $Richtung <> "Rechts" Or $Laenge = 2 Then $Richtung = "Links"
EndFunc ;==>_Links
Func _Oben()
If $Richtung <> "Unten" Or $Laenge = 2 Then $Richtung = "Oben"
EndFunc ;==>_Oben
Func _Unten()
If $Richtung <> "Oben" Or $Laenge = 2 Then $Richtung = "Unten"
EndFunc ;==>_Unten
Func _ZeigePunkte()
$Variable = 217
For $i = 0 To 9
$Variable = $Variable + 40
_QuickDraw_Text($Breite / 2 - 40, $Variable, $i + 1 & " : " & $Punkte[$i], 25, $Schrift, $Draw_Fill, 0xFF666666)
Next
EndFunc ;==>_ZeigePunkte
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 _PunktSetzen()
$Variable = True
For $i = 0 To 9
If $Variable <> False Then
If $Laenge * 10 - 20 > $Punkte[$i] Then
$PunktStatus = 9
Do
$Punkte[$PunktStatus] = $Punkte[$PunktStatus - 1]
$PunktStatus = $PunktStatus - 1
Until $PunktStatus = $i
$Punkte[$i] = $Laenge * 10 - 20
$Variable = False
EndIf
EndIf
Next
EndFunc ;==>_PunktSetzen
Func _Ende()
_QuickDraw_FreeFont($Schrift)
_QuickDraw_Disable()
Exit
EndFunc ;==>_Ende
Func _Neustart()
$Schleife = 1
_Verloren()
EndFunc ;==>_Neustart -
ich habe in der version 1.1 noch ein bug endeckt die straßen verschieben sich nach einiger zeit
die verison 1.2 sollte eigentlich ohne bugs laufen
-spiel hat nun ein icon
-straßenlinie verschiebt sich nicht -
so die version 1.1 sollte ohne probleme laufen
wenn ihr ein bug, problem oder verbessungsvorschläge habt bitte posten
-
habe nun eine neue version leider funktioniert das highscore system noch nicht werde es wahrscheinlich morgen besser machen
@TheShadowAE
als ich mir nochmal die funktionien von quickdraw angeguckt habe, fand ich die funktion _QuickDraw_RotateNext() die habe ich jetzt für den tacho benutzt da sie ein bißchen lecihter ist trozdem danke für deinen vorschlag
das freut mich
vieleicht gefällt ihm die neue version besser:) -
zu den anmerkungen
sachen die sich bis jetzt geändert haben
-andere autos fahren verschieden schnell
-man denkt nicht mehr das die anderen autos rückwärts fahren
-das abbiegen auf ein auto funktioniert nicht mehr
-script und quickdraw.au3 wird angehangen
-tacho funktioniert dank TheShadowAEwerde wenn ich das highscore system eingebaut habe hochladen
-
@TheShadowAE
danke für die vorschläge und die antwort au meine frage hat sehr geholfen
BadBunny
komisch das es bei dir ruckelt bei mir ruckelt es nicht was hast du für ein pc und was für ein betriebsystem? -
[Blockierte Grafik: http://www8.pic-upload.de/14.09.11/g4stv9m7uqh.png]
DOWNLOAD v1.0
DOWNLOAD v1.1
DOWNLOAD v1.2Beschreibung
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
[autoit]#include <QuickDraw.au3>
[/autoit]
#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 ;==>_CounterScript v1.1
[autoit]#include <QuickDraw.au3>
[/autoit]
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 ;==>_PunktSetzenScript v1.2
[autoit]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[/autoit]
#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 -
danke die seiten sind wirklich gut
so will ich es ca. machen nur das die palmen eine textur und das haus auch und der rasen auch etc.
[Blockierte Grafik: http://www.meggieshomepage.de/media/DIR_106813/DIR_204726/Lodge%2420Draufsicht.JPG]
aber wie kann man das selber den machen
ich wüsste garnicht wie ich bei paint anfangen sollte -
ist keine wirkliche lösung aber du könntest die controls in eine array schrieiben und dann alle controls in einer ForNext schelife mit eine schrifft belegen
[autoit]Dim $Control[3]
[/autoit]
$Control[0] = GUICtrlCreateLabel("Test 1:", 55, 168, 55, 20)
$Control[1] = GUICtrlCreateLabel("Test 2:", 55, 192, 55, 20)
$Control[2] = GUICtrlCreateLabel("Test 3:", 55, 216, 55, 20)
For $i = 0 To UBound($Control)-1
GUICtrlSetFont($Control[$i], 8, 800, 0, "MS Sans Serif")
Next -
guten tag
ich suche ein programm um 2d texturen aus der vogelpersopektive zu erstellen z.b.eine straße von oben,ein haus, ein baum etc.oder kennt ihr eine gute seite wo man diese downloaden kann?
danke
-
habe mal eine Frage reicht GDI+ für ein Strategiespiel so wie age of empire oder muss ich dafür eine engine nehmen.
-
danke für die kritik
@manuel6000
klar darfst du