Start Positionen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ToeB

Betreff: Start Positionen

BeitragMi, Dez 06, 2006 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Frage : -> Unter dem prog Very Happy
Code: [AUSKLAPPEN]

AppTitle "Shooter 2"
Graphics 640,480,0,3
Andy = LoadFont("Andy",100,1,0,0)
AndyKlein = LoadFont("Andy",50,1,0,0)
SetFont Andy
Dim Name$(2)
SetFont AndyKlein

For x = 1 To 2
Locate z,z
Name$(x) = Input("Spieler Nr."+ x +" : ")
z = z + 50
Next
Cls
Graphics 1600,1200,16,1


Spieler1 = CreateImage(50,50)
SetBuffer ImageBuffer(Spieler1)
Oval 0,30,20,20
Rect 0,45,50,50
Text 1,1,Name$(1)


Spieler2 = CreateImage(50,50)
SetBuffer ImageBuffer(Spieler2)
Oval 30,30,20,20
Rect 0,29,50,5
Text 1,1,Name$(2)

Type schuss1
Field sx
Field sy
End Type
Type schuss2
Field sx
Field sy
End Type


Global a.schuss1
Global b.schuss2

SetBuffer BackBuffer()
Repeat
If KeyDown(200) Then y1 = y1 - 10
If KeyDown(208) Then y1 = y1 + 10
If KeyDown(203) Then x1 = x1 - 10
If KeyDown(205) Then x1 = x1 + 10
If x1 < 0 Then x1 = 0
If y1 < 0 Then y1 = 0
If x1 > 1550 Then x1 = 1550
If y1 > 1150 Then y1 = 1150


If KeyDown(17) Then y2 = y2 - 10; W-Taste
If KeyDown(31) Then y2 = y2 + 10; S-Taste
If KeyDown(30) Then x2 = x2 - 10; A-Taste
If KeyDown(32) Then x2 = x2 + 10; D-Taste
If x2 < 0 Then x2 = 0
If y2 < 0 Then y2 = 0
If x2 > 1550 Then x2 = 1550
If y2 > 1150 Then y2 = 1150


If KeyHit(28) Then
a.schuss1 = New schuss1
a\sx = x1+50
a\sy = y1+30
EndIf

If KeyHit(57) Then
b.schuss2 = New schuss2
b\sx = x2
b\sy = y2+30
EndIf

For a.schuss1 = Each schuss1
Color 255,0,0
Line a\sx,a\sy,a\sx+15,a\sy
a\sx = a\sx + 50
If a\sx > 1600 Then Delete a.schuss1
Next 

For b.schuss2 = Each schuss2
Color 255,0,0
Line b\sx,b\sy,b\sx+15,b\sy
b\sx = b\sx - 50
If b\sx < 0 Then Delete b.schuss2
Next 


DrawImage Spieler1,x1,y1
DrawImage Spieler2,x2,y2
Flip
Cls



Until KeyHit(1)

End


Wie kann ich die Start Positionen von dem Image "Spieler1" und "Spieler2" festlegen? Ich will das Spieler1 auf 1,200(x,y) und Spieler2 auf 1550,200(x,y) startet...

Danke im vorraus^^

mfg tobi
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Hagbard

BeitragMi, Dez 06, 2006 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Shocked bei sowas will ich fast gar nicht mehr helfen...

Lege die Koordinaten einfach vor der Hauptschleife fest!

ToeB

BeitragMi, Dez 06, 2006 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
achso...ich hab das imma in der schleife gemacht...Danke^^
Ich hab aba ein neues problem...hier der Code: [AUSKLAPPEN]

AppTitle "Shooter 2"
Graphics 640,480,0,3
Andy = LoadFont("Andy",100,1,0,0)
AndyKlein = LoadFont("Andy",50,1,0,0)
SetFont Andy
Dim Name$(2)
SetFont AndyKlein

For x = 1 To 2
Locate z,z
Name$(x) = Input("Spieler Nr."+ x +" : ")
z = z + 50
Next
Cls
Graphics 1600,1200,16,1


Spieler1 = CreateImage(50,50)
SetBuffer ImageBuffer(Spieler1)
Color 160,200,240
Oval 0,30,20,20
Rect 0,45,50,50
Text 1,1,Name$(1)


Spieler2 = CreateImage(50,50)
SetBuffer ImageBuffer(Spieler2)
Oval 30,30,20,20
Rect 0,29,50,5
Text 1,1,Name$(2)

Hide = CreateImage(100,500)
SetBuffer ImageBuffer(Hide)
Color 200,160,240
Rect 0,0,100,500

Type schuss1
Field sx
Field sy
End Type
Type schuss2
Field sx
Field sy
End Type


Global a.schuss1
Global b.schuss2

SetBuffer BackBuffer()
x1 = 1
x2 = 1550
y1 = 600
y2 = 600

Repeat
OldX1 = x1
OldX2 = x2
OldY1 = y1
OldY2 = y2
If KeyDown(17) Then y1 = y1 - 10
If KeyDown(31) Then y1 = y1 + 10
If KeyDown(30) Then x1 = x1 - 10
If KeyDown(32) Then x1 = x1 + 10
If x1 < 0 Then x1 = 0
If y1 < 0 Then y1 = 0
If x1 > 1550 Then x1 = 1550
If y1 > 1150 Then y1 = 1150


If KeyDown(200) Then y2 = y2 - 10; W-Taste
If KeyDown(208) Then y2 = y2 + 10; S-Taste
If KeyDown(203) Then x2 = x2 - 10; A-Taste
If KeyDown(205) Then x2 = x2 + 10; D-Taste
If x2 < 0 Then x2 = 0
If y2 < 0 Then y2 = 0
If x2 > 1550 Then x2 = 1550
If y2 > 1150 Then y2 = 1150

DrawImage Hide,700,0
DrawImage Hide,700,700
DrawImage Spieler1,x1,y1
DrawImage Spieler2,x2,y2

If KeyHit(57) Then
a.schuss1 = New schuss1
a\sx = x1+50
a\sy = y1+30
EndIf

If KeyHit(28) Then
b.schuss2 = New schuss2
b\sx = x2
b\sy = y2+30
EndIf

For a.schuss1 = Each schuss1
Color 255,0,0
Line a\sx,a\sy,a\sx+15,a\sy
If a\sx > 1600 Then Delete a.schuss1
If ImageRectOverlap(Hide,700,700,a\sx,a\sy,1,10) Or ImageRectOverlap(Hide,700,0,a\sx,a\sy,1,10)Then
Delete a.schuss1
ElseIf ImageRectOverlap(Spieler1,x1,y1,a\sx,a\sy,1,10) Then
Delete a.schuss1
Points1 = Points1 + 1
Else
a\sx = a\sx + 50
EndIf

Next 

For b.schuss2 = Each schuss2
Color 255,0,0
Line b\sx,b\sy,b\sx+15,b\sy
If b\sx < 0 Then Delete b.schuss2
If ImageRectOverlap(Hide,700,700,b\sx,b\sy,1,10) Or ImageRectOverlap(Hide,700,0,b\sx,b\sy,1,10) Then
Delete b.schuss2
ElseIf ImageRectOverlap(Spieler2,x1,y1,b\sx,b\sy,1,10) Then
Delete b.schuss2
Points2 = Points2 + 1
Else
b\sx = b\sx - 50
EndIf
Next 

If ImagesOverlap(Hide,700,700,Spieler1,x1,y1)Then
x1 = OldX1
y1 = OldY1
EndIf

If ImagesOverlap(Hide,700,0,Spieler1,x1,y1)Then
x1 = OldX1
y1 = OldY1
EndIf

If ImagesOverlap(Hide,700,700,Spieler1,x2,y2)Then
x2 = OldX2
y2 = OldY2
EndIf

If ImagesOverlap(Hide,700,0,Spieler1,x1,y1)Then
x2 = OldX2
y2 = OldY2
EndIf

Text 1,1,Points1
Text 1,15,Points2

Flip
Cls



Until KeyHit(1)

End


Der macht da immer ne fehlermaldung bei der Collisionabfrage von den schüssen und den Männchen...

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group