Kollisions problem mit Schüsse und Dim Felder?
Übersicht

bruce85Betreff: Kollisions problem mit Schüsse und Dim Felder? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() Ich bin euch sehr dankbar wenn ihr mir weiterhelfen könnt ![]() Gruss Andreas |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Rone |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() Gruss Andreas |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich danke dir bizar98,
ich werds gleich mal ausprobieren, vielen dank ![]() Gruss Andreas |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() Gruss Andreas |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
löööööl
ich habs hinbekommen, Thema ist Gelöst. Ich danke euch für die Hilfe ![]() Gruss Andreas |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group