Schiessen aus der Vogelperspektive - Probleme mit Semantik

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Crossbow

Betreff: Schiessen aus der Vogelperspektive - Probleme mit Semantik

BeitragSo, Jan 06, 2008 4:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Wie bei fast jedem Anfänger ist auch fast jeder Code für den Anfänger den der Anfänger geschrieben hat ein Rätsel da der Anfänger noch ein Anfänger ist Mr. Green . So auch bei mir: Source Code
Ich hoffe ihr könnt mir da weiterhelfen.
Vielen Dank schon mal im Voraus.

MfG Sämi

The_Nici

BeitragSo, Jan 06, 2008 9:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, ich habs mal mit Types gelöst. Wenn du die noch nicht kannst, dann wirds höchste Zeit.

Code: [AUSKLAPPEN]

Type shot
   Field x
   Field y
   Field w
End Type


Graphics 800,600,32,2
SetBuffer BackBuffer()
Global kw=0
Global x#=400, y#=300

While Not KeyHit(1)
   
      If KeyHit(57)
      s.shot=New shot ;Neuen Schuss-Type
      s\x=x ;X übernehmen
      s\y=y ;Y übernehmen
      s\w=kw ;Winkel übernehmen
      EndIf

      Text 10,10,"Winkel: "+w
   
      Oval x#-5,y#-5,10,10,1
     Line x#,y#,x#+20*Cos(kw),y#+20*Sin(kw)


   If KeyDown(205) Then kw=kw+1
   If KeyDown(203) Then kw=kw-1
   If KeyDown(200) Then
      x# = x# + Cos(kw)
      y# = y# + Sin(kw)
      EndIf
      If KeyDown(208) Then
      x# = x# - Cos(kw)
      y# = y# - Sin(kw)
      EndIf
   
   For s.shot=Each shot ;Jeden Schuss abfragen
      s\x=s\x+Cos(s\w)*5 ;Bewegen
      s\y=s\y+Sin(s\w)*5 ;Bewegen
      Oval s\x-1,s\y-1,2,2,1 ;Zeichnen
   Next

      Flip
   
      Cls
Wend
End
 

Crossbow

BeitragSo, Jan 06, 2008 16:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Thx.

Entstanden aber gleich mal weitere Probleme:

Code: [AUSKLAPPEN]
Type shot
Field x
Field y
Field w
End Type


Graphics 800,600,32,2
SetBuffer BackBuffer()
Global kw = 0
Global x# = 400, y # = 300
Global Reichweite% = 0

While Not KeyHit(1)

If KeyHit(57)
s.shot=New shot ;Neuen Schuss-Type
s\x=x ;X übernehmen
s\y=y ;Y übernehmen
s\w=kw ;Winkel übernehmen
EndIf

Text 10,10,"Winkel: "+kw
Text 10,30,"X-Koordinaten: "+x
Text 10,50,"Y-Koordinaten: "+y

Oval x#-5,y#-5,10,10,1
Line x#,y#,x#+20*Cos(kw),y#+20*Sin(kw)


If KeyDown(205) Then kw=kw+1
If KeyDown(203) Then kw=kw-1
If KeyDown(200) Then
x# = x# + Cos(kw)
y# = y# + Sin(kw)
EndIf
If KeyDown(208) Then
x# = x# - Cos(kw)
y# = y# - Sin(kw)
EndIf

For s.shot=Each shot ;Jeden Schuss abfragen
s\x=s\x+Cos(s\w)*5 ;Bewegen
s\y=s\y+Sin(s\w)*5 ;Bewegen
Oval s\x-1,s\y-1,2,2,1 ;Zeichnen
Text 10,90,"X-Shot (Koordinaten): "+s\x
Text 10,110,"Y-Shot (Koordinaten): "+s\y
Text 10,130,"Schusswinkel: "+s\w
Reichweite = Reichweite +1
If Reichweite = 300 Then Exit 

Flip

Cls
Wend
End


Der Schuss darf nun, nur eine bestimmte Reichweite erreichen, zudem sollen während dem Flug des Projektils zusätzlich die Koordinaten der Flugbahn angezeigt werden, jedoch überlager sich die Textausgabe, der Schuss fliegt nicht wie gewollt eine Länge von 300 Pixel (genauer gesagt 299 Pixel). Desweiteren verlangsamt sich das Programm durch die textüberlagerung nach mehrmaligem feuern rapide.
Hoffen kann mir jemand helfen.
Danke schon mal im voraus.

Mfg Sämi

SpionAtom

BeitragSo, Jan 06, 2008 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Da sind auch noch einige Fehlerchen drin.
Die Variable Reichweite gibts nur einmal, sollte aber für jeden Typeeintrag existieren.
Typeeinträge löscht man mit Delete.

Also die eine Schleife sollte folgendermaßen aussehen. Und dein Type sollte um das Field d erweitert werden.

Code: [AUSKLAPPEN]

Type shot
Field x
Field y
Field w
Field d
End Type

.
.
.
.
.


sx$ = "": sy$ = "": sw$ = ""
For s.shot=Each shot ;Jeden Schuss abfragen
s\x=s\x+Cos(s\w)*5 ;Bewegen
s\y=s\y+Sin(s\w)*5 ;Bewegen
s\d = s\d + 5
sx$ = sx$ + s\x + ", "
sy$ = sy$ + s\y + ", "
sw$ = sw$ + s\w + ", "
Oval s\x-1,s\y-1,2,2,1 ;Zeichnen
If s\d > 300 Then Delete s
Next
Text 10,90,"X-Shot (Koordinaten): "+sx
Text 10,110,"Y-Shot (Koordinaten): "+sy
Text 10,130,"Schusswinkel: "+sw
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group