Kollisions problem mit Schüsse und Dim Felder?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

bruce85

Betreff: Kollisions problem mit Schüsse und Dim Felder?

BeitragDo, Jun 22, 2006 21:48
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo,
also ich bin grad dabei ein Spiel zu schreiben, die Schüsse habe ich mit Types erstellt und für die Map habe ich Dim Felder benutzt, und wie prüfe ich jetzt ob ein Schuss die Mauer berührt?
wenn der Schuss die Mauer berührt dann soll aus die Mauer ein weg entstehen, hier mal die Daten für das Bild:

Code: [AUSKLAPPEN]
Global tile = LoadAnimImage("img/tile.png",30,30,0,3)
MaskImage tile,255,0,255


also:
Frame0 = Weg
Frame1 = Mauer
Frame2 = Mauer2

Code: [AUSKLAPPEN]
Dim map(14,14)

Data 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
Data 2,0,0,0,1,0,0,0,1,0,0,0,0,0,2
Data 2,0,2,2,0,2,2,2,0,2,2,2,2,0,2
Data 2,0,2,2,0,2,2,2,0,2,2,2,2,0,2
Data 2,1,0,0,1,2,2,2,1,0,0,1,0,1,2
Data 2,0,2,2,0,2,2,2,0,2,2,0,2,0,2
Data 2,0,2,2,1,0,0,0,1,0,0,1,2,0,2
Data 2,0,2,2,0,2,2,2,0,2,2,0,2,0,2
Data 2,0,2,2,0,2,2,2,0,2,2,0,2,0,2
Data 2,1,0,0,1,0,0,0,1,0,0,1,0,1,2
Data 2,0,2,2,0,2,2,2,2,0,2,0,2,0,2
Data 2,0,2,2,0,2,2,2,2,0,2,0,2,0,2
Data 2,0,2,2,0,2,2,2,2,0,2,0,2,0,2
Data 2,0,0,0,1,0,0,0,0,1,0,1,0,0,2
Data 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2


und hier dann halt den Schuss wo ich mit Types gemacht habe:

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


und wenn der Schuss dann die Frame Nr 1 trefft, dann möchte ich das aus die eins 0 wird das halt dann der weg kommt.

ich hoffe das ist verständlich wie ich es erklärt habe Laughing
Ich bin euch sehr dankbar wenn ihr mir weiterhelfen könnt Wink

Gruss Andreas

StepTiger

BeitragDo, Jun 22, 2006 22:07
Antworten mit Zitat
Benutzer-Profile anzeigen
du legst doch die dims garnicht fest!?

das musst du doch mit map(x,y)=...
machen
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Rone

BeitragDo, Jun 22, 2006 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

wie wärs wenn du prüfst ob and der position im map, wo der schuss gerade ist ein tile ist:

Code: [AUSKLAPPEN]


tileSize=32

For s.schuss = EACH schuss
   xpos = (s\x) / tilesize
   ypos = (s\y) / tilesize
   If map( xpos , ypos) Then
      map( xpos , ypos) = 0
   EndIf   
Next



mfg
 

bruce85

BeitragDo, Jun 22, 2006 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
danke dir,
das habe ich ja gemacht:

Code: [AUSKLAPPEN]
For y=0 To 14
  For x=0 To 14
    Read map(x,y)
  Next
Next


ich hab ja net mein ganze Quelltext hier rein kopiert, ich wollts ja nur zeigen wie ich es meine, ich weiss jetzt net wie ich das jetzt hinbekomme Crying or Very sad

Gruss Andreas
 

bruce85

BeitragDo, Jun 22, 2006 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
ich danke dir bizar98,
ich werds gleich mal ausprobieren, vielen dank Wink

Gruss Andreas
 

bruce85

BeitragDo, Jun 22, 2006 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
also es funktioniert jetzt, aber wenn ich eine Mauer abgeschossen habe dann kann ich auf einmal dur manche wände gehen, wieso?

Code: [AUSKLAPPEN]
If KeyHit(57) Then
    s.schuss = New schuss
    s\schuss_x = spieler_x + 10
    s\schuss_y = spieler_y + 10
  EndIf

  For s.schuss = Each schuss
    Rect s\schuss_x,s\schuss_y,10,10,1
    s\schuss_x = s\schuss_x + 4

    Feld_x = (s\schuss_x) / 30
    Feld_y = (s\schuss_y) / 30
    If map(Feld_x,Feld_y) Then
      map(Feld_x,Feld_y) = 0
      Delete s.schuss
    EndIf
  Next


ist da vieleicht ein Fehler im Code?

edit:
ich weiss jetzt warum, weil wenn ich schieße dann werden die Felder gezählt, hmmm.... ich probiers einfach mal wie ich das hinbekomme Wink

Gruss Andreas
 

bruce85

BeitragDo, Jun 22, 2006 22:34
Antworten mit Zitat
Benutzer-Profile anzeigen
löööööl
ich habs hinbekommen, Thema ist Gelöst.
Ich danke euch für die Hilfe Very Happy

Gruss Andreas

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group