Kleines Kollisionsabfrage Problem << erledigt
Übersicht

Blitzkrieg BopBetreff: Kleines Kollisionsabfrage Problem << erledigt |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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.... ![]() ps. poste mal bitte den ganzen code , dann können dir wir leicher helfen.... |
||
zocker2150 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@cyby: Jaja, ich weiß ^^.. Bloß so etwas hab ich noich net gemacht ![]() @zocker2150: Ja, netter ANstaz. so weit war ich auch, doch wie kann man das realisieren? |
||
~ Hey Ho Let's Go ~ |
cyby |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
post am besten mal den code dann können wir dir das zeigen, ist ganz einfach.... | ||
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. ![]() |
||
~ Hey Ho Let's Go ~ |
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() |
||
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok, DAnke erstmal, werde es gleich testenm und mich eventuell per PN melden ![]() |
||
~ Hey Ho Let's Go ~ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group