Kleines Kollisionsabfrage Problem << erledigt

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Blitzkrieg Bop

Betreff: Kleines Kollisionsabfrage Problem << erledigt

BeitragMi, Jun 02, 2004 20:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute.
Bei meinem aktuellen Projekt, lasse ich Objekte wie folgt darstellen:
Code: [AUSKLAPPEN]

Function KarteMalen()
For x = 0 To 100
   For y = 0 To 100
   
      If map(x,y) = 2
         DrawImage s2,x*32,y*32
      EndIf
      
      If map(x,y) = 3
         DrawImage s3,x*32,y*32
      EndIf
      
      If map(x,y) = 4
         DrawImage s4,x*32,y*32
      EndIf            
         
   Next
Next
End Function

Es gibt nun eine Figur in dem SPiel mit den Koordinaten xx und yy.
Ich möchte nun auf Kollision zwischen Fiogur und s1 bzw. s2... prüfen. Bei jedem Zusammenprall soll was anderes passieren. Doch ich weiß leider nicht, wie man in solch einem Fall auf Kollision prüft. Das ganze hat vom aufbau her typische ähnlichkeit mit nem Jump'n'run, doch bei mir wird nichts gescrollt oder so. Also, danke im Voraus!
~ Hey Ho Let's Go ~
  • Zuletzt bearbeitet von Blitzkrieg Bop am Mi, Jun 02, 2004 22:24, insgesamt einmal bearbeitet
 

cyby

BeitragMi, Jun 02, 2004 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Blitzkrieg Bop du hast schon 410 Beiträge und fragst sowas leichtes, lies dir mal die ganzen RPG Tutorials durch dann müstest du sowas selber lösen können.... Wink

ps. poste mal bitte den ganzen code , dann können dir wir leicher helfen....
 

zocker2150

BeitragMi, Jun 02, 2004 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe jetzt zwar keine genauen Einzelheiten was deine Spielfigur machen kann/soll aber....

Ich nem einfach mal an du steuerst deine Figur mit den Pfeiltasten.
Dann musst du immer wenn eine Pfeiltaste gedrückt wird schauen ob das Feld in das der Spieler gehen will schon von s2,s3,s4,... belegt ist.
 

Blitzkrieg Bop

BeitragMi, Jun 02, 2004 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
@cyby: Jaja, ich weiß ^^.. Bloß so etwas hab ich noich net gemacht Embarassed und die ganzen Tut'S hab ich mir durchgeackert, keine SOrge! Doch irgendwie will es net klappen!

@zocker2150: Ja, netter ANstaz. so weit war ich auch, doch wie kann man das realisieren?
~ Hey Ho Let's Go ~
 

cyby

BeitragMi, Jun 02, 2004 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
post am besten mal den code dann können wir dir das zeigen, ist ganz einfach....
 

Blitzkrieg Bop

BeitragMi, Jun 02, 2004 21:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hatte eigentlich nciht vor den ganzen COde zu posten!
Du weißt doch die Variablen für den SPieler und du siehst wie die MAp gemalt wird. Das muss doch reichen! MIr würde ja auch nen Pseudocode helfen. Very Happy
~ Hey Ho Let's Go ~
 

Kekskiller

BeitragMi, Jun 02, 2004 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du wirklich vor hast, da eine Kollision reinzubringen, dann
solltest du mal anfangen, Positionen in Dim-Felder einzulesen und
nicht andauern verschwenderisch Rechnerleistung durch sinnlose
Multiplikationen auszunutzen. Allein bei diesem Code wird mir schon
übel...
 

Blitzkrieg Bop

BeitragMi, Jun 02, 2004 21:34
Antworten mit Zitat
Benutzer-Profile anzeigen
naja, es wir dnicht gerade viel dargestellt! und von daher dachte ich das geht in ordnung...naja, mal abwarten, weil mich das allgemein mal interessieren würde.
~ Hey Ho Let's Go ~
 

Kekskiller

BeitragMi, Jun 02, 2004 21:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Na stell dir mal vor, was da (auch bei so einem Bißchen!)
schon an Rechnungen zusammenkommt. 100*100*3*32 und
dass noch aufsteigend...
Zur Hölle was ist in den Coder gefahren. Nehme ein Kollisionsbild,
ist am einfachsten. Es sollte die richtige Größe wie der Chip haben
und dann müsse eine gewisse Bildkollision zu prüfen sein.
 

cyby

BeitragMi, Jun 02, 2004 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
so, da der BlitzKrieger nit den Code geben wollte habe ich für ihn schnell ein beispiel geschreiben ,wenn noch fragen sind dann frage einfach ^^
Code: [AUSKLAPPEN]
Graphics 640,480,16,2
SetBuffer BackBuffer()



;<<<<<<<<<<<<<<<<< map
Global mapx = 10
Global mapy = 10
 
Dim map(mapx,mapy)

Global tilex = 32
Global tiley = 32

; 0 = wand
; 1 = frei
; 2 = Schild
Data 0,0,0,0,0,0,0,0,0,0
Data 0,1,1,1,1,1,1,1,1,0
Data 0,1,1,1,1,1,1,1,1,0
Data 0,1,1,1,1,1,1,1,1,0
Data 0,1,1,1,1,1,1,1,1,0
Data 0,1,1,1,1,2,1,1,1,0
Data 0,1,1,1,1,1,1,1,1,0
Data 0,1,1,1,1,1,1,1,1,0
Data 0,1,1,1,1,1,1,1,1,0
Data 0,0,0,0,0,0,0,0,0,0

For y = 0 To mapy-1
 For x = 0 To mapx-1
  Read map(x,y)
 Next
Next

;<<<<<<<<< player
Global playerx = 2
Global playery = 3

Global player_speed = 1


Repeat
Cls

draw_map()
player()

Flip
Until KeyHit(1)
End
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< draw_map
Function draw_map()

For x = 0 To mapx-1
 For y = 0 To mapy-1
  Select map(x,y)
   Case 0
    Color 255,255,255 : Rect x*tilex,y*tiley,tilex,tiley
   Case 1
    Color 255,0,0 : Rect x*tilex,y*tiley,tilex,tiley
   Case 2
    Color 0,255,0 : Rect x*tilex,y*tiley,tilex,tiley
  End Select
 Next
Next

End Function
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< player
Function player()

; player zeichnen
Color 0,0,255
Rect playerx*tilex,playery*tiley,tilex,tiley

;<<<<<<<<<<<<< tastatur
If KeyHit(200) And map(playerx,playery-1) > 0 Then ;hoch
playery = playery - player_speed
ElseIf KeyHit(203) And map(playerx-1,playery) > 0 Then ;links
playerx = playerx - player_speed
ElseIf KeyHit(205) And map(playerx+1,playery) > 0 Then ;rechts
playerx = playerx + player_speed
ElseIf KeyHit(208) And map(playerx,playery+1) > 0 Then ;runter
playery = playery + player_speed
EndIf

;<<<<<<<<<<<<<<< und nun für dich wenn auf was bestimmten steht
For x = 0 To mapx-1
 For y = 0 To mapy-1
  Select map(playerx,playery)
   Case 2
    Color 255,255,0
    Text 10,400,"test"
  End Select
 Next
Next


End Function


MfG
cyby Very Happy
 

Blitzkrieg Bop

BeitragMi, Jun 02, 2004 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, DAnke erstmal, werde es gleich testenm und mich eventuell per PN melden Wink
~ Hey Ho Let's Go ~

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group