Beste Kollision?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Ironstorm

Erstklassiger Contest-Veranstalter

Betreff: Beste Kollision?

BeitragSo, Dez 12, 2004 15:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi @ all!

Ich rede mal nicht drumherum und fange gleich mal an! Ich habe folgendes Prob.

Ich hab ein Bild von einem Haus das jetzt mal die koordinaten 200,200 hat. So der Spieler ist in der Mitte des Bidschirm also 512,384. Jetzt hab ich noch Px und Py für das scrolling. Wie mache ich es jetzt das man eine Kollison zwischen Haus und Spieler hat?

Zuerst hab ich alles mit imagescollide gemacht aber da läuft der spieler trotzdem auf das Haus und sobald er drauf ist kommt man nicht mehr runter.

Dann wollt ich die Welt einfach mit Data zeichnen aber da hab ich dann "Dim map(127,95)". Aber das wirkt dich auf die geschwindigkeit aus.

Wie mache ich es jetzt? Helft mir bitte. THX im vorraus
..:: blackbird design : blackbird photography : Futuro Verde : X-Commander ::..
MacBook | Intel Core 2 Duo 2,1 GHz | 2048 MB RAM | 80 GB HDD | Mac OS X 10.6.2 (Snow Leopard) | Adobe CS4 Design Premium
 

noir

BeitragSo, Dez 12, 2004 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
poste ma den code.....

gibt zu viele möglichkeiten

z.b bewegst du den bildschirm, spieler bleibt fest oder......

allgemein kann ich dir ma scroll karten nur den tipp geben, 2 verschiedene koordinaten zu nehmen
1. die koordinaten für die grafikausgabe auf dem bildschirm z.b von 0-600 und 0-800
2. die tatsächlichen koordinaten also z.b wenn man 2 bildschirmseiten nach links gescrollt ist wäre die tatsächlich pos z.b 2000

Jan_

Ehemaliger Admin

BeitragMo, Dez 13, 2004 8:19
Antworten mit Zitat
Benutzer-Profile anzeigen
hm, ich verwende, berechnete Kollisionen, bei 2D games.

da nimmt man einfach ne gedachte "Linie", einfalls winkel --> austrittwinkel, und voila, man hats.
between angels and insects

Mattis_the_brain

BeitragMo, Dez 13, 2004 16:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal schnell ein Beispiel von mir für die aller simpelste Form der SlideKollision:

BlitzBasic: [AUSKLAPPEN]

Global GFX_Rx = 1024
Global GFX_Ry = 768

Graphics(GFX_Rx, GFX_Ry, 16, 1)

Global PLAYER_PosX#, PLAYER_PosY#

Type Box
Field PosX, PosY
Field Width, Height
End Type
Global b.Box

Function DrawBox()
For b = Each Box
Rect(b\PosX + GFX_Rx / 2 - 16 - PLAYER_PosX, b\PosY + GFX_Ry / 2 - 16 - PLAYER_PosY, b\Width, b\Height, 1)
Next
End Function

Function CheckCollision()
For b = Each Box
If(RectsOverlap(b\PosX, b\PosY, b\Width, b\Height, PLAYER_PosX, PLAYER_PosY, 32, 32)) Return(True)
Next
End Function

b = New Box
b\PosX = 64
b\PosY = 0
b\Width = 200
b\Height = 100

b = New Box
b\PosX = 300
b\PosY = 200
b\Width = 100
b\Height = 150

SetBuffer(BackBuffer())
While(KeyDown(1) = False)

OLD_PosX = PLAYER_PosX
OLD_PosY = PLAYER_PosY

If(KeyDown(205)) PLAYER_PosX = PLAYER_PosX + 1
If(KeyDown(203)) PLAYER_PosX = PLAYER_PosX - 1
If(KeyDown(208)) PLAYER_PosY = PLAYER_PosY + 1
If(KeyDown(200)) PLAYER_PosY = PLAYER_PosY - 1

If(CheckCollision())
SAVE_PosX = PLAYER_PosX
PLAYER_PosX = OLD_PosX
EndIf

If(CheckCollision())
PLAYER_PosX = SAVE_PosX
PLAYER_PosY = OLD_PosY
EndIf

Cls

DrawBox()
Rect(GFX_Rx / 2 - 16, GFX_Ry / 2 - 16, 32, 32, 1)

Flip(True)
Wend
End

Ironstorm

Erstklassiger Contest-Veranstalter

BeitragDi, Dez 14, 2004 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
hey Leute danke für eure Hilfe. Ich habe nun eine lösung! Also es ist erledigt. THX
..:: blackbird design : blackbird photography : Futuro Verde : X-Commander ::..
MacBook | Intel Core 2 Duo 2,1 GHz | 2048 MB RAM | 80 GB HDD | Mac OS X 10.6.2 (Snow Leopard) | Adobe CS4 Design Premium

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group