Probleme mit dem Schuss mit Types?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

bruce85

Betreff: Probleme mit dem Schuss mit Types?

BeitragMo, Jun 19, 2006 22:06
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo leute,
ich bin grad dabei ein Weltraum Shooter zu proggen und wenn ich schieße und Das Raumschiff lenke dann lenkt die Rakete mit, wieso?
hier mal den code für die schüsse:

Code: [AUSKLAPPEN]
Type schuss
  Field schuss_x
  Field schuss_y
  Field schuss_speed
End Type

Repeat
  Cls

If KeyHit(57) Then
    s.schuss = New schuss
    s\schuss_x = ship_x
    s\schuss_y = ship_y
    s\schuss_speed = 4
  EndIf

  For s.schuss = Each schuss
    Rect s\schuss_x,s\schuss_y,16,4,1
    s\schuss_x = s\schuss_x + Cos(winkel)*s\schuss_speed
    s\schuss_y = s\schuss_y + Sin(winkel)*s\schuss_speed
  Next

  Flip
Until KeyHit(1)
End


ich hab jetzt net mein ganze Quelltext koppiert, nur halt für die schüsse.
woran kann das jetzt liegen weil die Rackete mit lenkt?

danke euch schonmal für die hilfe Wink

Gruss Andreas

Hubsi

BeitragMo, Jun 19, 2006 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Verwendest Du die Variable winkel für Dein Raumschiff? Damit berechnest Du nämlich auch die Schüsse:
Code: [AUSKLAPPEN]
s\schuss_x = s\schuss_x + Cos(winkel)*s\schuss_speed
s\schuss_y = s\schuss_y + Sin(winkel)*s\schuss_speed

Was Du also brauchst ist ein Field winkel für die Schüsse welches beim erstellen eines Schusses mit dem Winkel des Raumschiffs belegt wird und dann natürlich mit diesem für jede Rakete individuellen Winkel selbige auch berechnet wird Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Cardonic

BeitragMo, Jun 19, 2006 22:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Mir scheint, dass die Schüsse kein eigenes Feld für den Winkel haben; ich denke, dass sie dann auf die Variabel "winkel" auf den Winkel des Schiffs zugreiffen, und immer mit diesem mitlenken.
Du müsstest wahrscheinlich einfach den Winkel für jeden einzelnen Schuss speichern.

mfg Cardonic

Edit: Mist, ich bin einfach zu lahm Rolling Eyes
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet.
 

bruce85

BeitragMo, Jun 19, 2006 22:38
Antworten mit Zitat
Benutzer-Profile anzeigen
danke euch
das habe ich auch gedacht mit winkel, aba wie mache ich das jetzt?
weil ich habe ein Dim Feld für das Raumschiff das 360 Bilder gezeichnet werden wegen die drehung, wie verbinde ich das mit dem schuss?

Gruss Andreas

sirokuhl

BeitragMo, Jun 19, 2006 22:42
Antworten mit Zitat
Benutzer-Profile anzeigen
einfach bei der schusserstellung:
s\winkel = winkel
(s\winkel muss natürlich erst definiert werden)

und dann beim fliegen lassen statt winkel, s\winkel benutzen
 

bruce85

BeitragMo, Jun 19, 2006 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
sry ich habs hinbekommen, habs so gemacht:

Code: [AUSKLAPPEN]
If KeyHit(57) Then
    s.schuss = New schuss
    s\schuss_x = ship_x
    s\schuss_y = ship_y
    s\schuss_speed = 4
    s\schuss_winkel = winkel
  EndIf


jetzt gehts, ich danke euch für die tips Very Happy

edit: danke dir sirokuhl, hab grad nachgedacht und bin dann selbst drauf gekommen Very Happy

Gruss Andreas
 

bruce85

BeitragDi, Jun 20, 2006 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo nochmal,
also wenn ich jetzt schiesse und ich ein asteroid treffe, dann möchte ich das dieser Asteroid gelöscht wird und der schuss soll gleich mit gelöscht werden, habs so probiert:

Code: [AUSKLAPPEN]
For s.schuss = Each schuss
    For a.asteroid = Each asteroid
      If ImagesCollide(schuss,s\schuss_x,s\schuss_y,0,asteroid,a\asteroid_x,a\asteroid_y,a\asteroid_frames) Then
        Delete a.asteroid
        Delete s.schuss
      EndIf
    Next
  Next


aber dann kommt ein fehler, Object does not exist, wieso?
des is ja so richtig wie ich das gemacht habe, oder

danke euch schonmal Wink

Gruss Andreas

sirokuhl

BeitragDi, Jun 20, 2006 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
das liegt daran, dass du erst a.asteroid löschst aber im gleichen durchlauf noch s.schuss
das geht aber nicht weil ja a.asteroid weg ist und deswegen auch dessen for-schleife nicht mehr funktioniert
also musst du a.asteroid ganz am ende der for-schleife löschen

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group