Kollisionen allgemein

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

Geeecko

Betreff: Kollisionen allgemein

BeitragDi, Jul 10, 2007 2:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wieder mit meinen allgemein Problemen Very Happy
Naja... Ich habe mich mal daran gemacht, an kollisionen. toller deutscher satz Wink
Hier ist ein Bild: user posted image
Das ist jedoch sehr langsam. Wie könnte man solch eine methode schneller machen? (Die weißen balken sind die kollisions-stellen, und der rote klotz der spieler)
wenn man überprüft, ob sich der spieler und der kolli-balken in der nähe befinden (So wie bei tiles, wo man nur die um den spieler herumprüft), kann man auch gleich rechnen, ob sie kolidieren, oder?
....

Jan_

Ehemaliger Admin

BeitragDi, Jul 10, 2007 7:45
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe dazu immer diesen quelltext von TheShadow herrangezogen.
ist auf blitzbase.de zu finden.
http://www.blitzbase.de/quellc...reuzung.bb
between angels and insects

D2006

Administrator

BeitragDi, Jul 10, 2007 9:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, diese Vektorkollission kann man nutzen, aber da in diesem Fall hier sowohl Spieler als auch Kollissionsobjekte rechtwinklig sind, kann ich mir gar nicht vorstellen, was in dem Fall überhaupt lange dauern soll.

Aber natürlich kann man erst Mal alle Rechtecke ausschließen, die mehr als 10 Pixel oder so entfernt sind.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

Dreamora

BeitragDi, Jul 10, 2007 10:02
Antworten mit Zitat
Benutzer-Profile anzeigen
SAT Kollisionssystem implementieren könnt hier beträchtlich helfen Smile

Falls du BM hast gehts allerdings noch einfacher: Spieler nur Collision Read, Blöcke nur Collision Write
Und nie ClearCollisions und schon wirds EXTREM schnell sein Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Geeecko

BeitragDi, Jul 10, 2007 10:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, ich habe BMAX. Aber mit den Kollisionen dort habe ich mich noch nicht auseinander gesetzt. also schon aber ich wusste nicht das es sowas da gibt O.o
Ich werde mir das mal anschauen und das von Robsite.
Thx
....
 

Dreamora

BeitragDi, Jul 10, 2007 10:36
Antworten mit Zitat
Benutzer-Profile anzeigen
BM Collision -> Assari Tutorials ansehen.
Extrem empfehlenswert die 3 Teile Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Geeecko

BeitragDi, Jul 10, 2007 10:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich verstehe das nicht mit diesem
Code: [AUSKLAPPEN]

Local p:Object[]=CollideRect(MouseX()-w,MouseY()-h,100,100,1,0)
 For Local i:TImage=EachIn p
   If ImagesCollide(i,150,200,0,SpaceShip,MouseX(),MouseY(),0)
        SetClsColor 255,0,0
    Else
        SetClsColor 0,0,0
    EndIf
 Next

nicht. (Part 3).
Was liefert er denn wenn ich gar kein bild habe?
....
 

Dreamora

BeitragDi, Jul 10, 2007 11:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du wo kein Bild hast?
Bei dem?
Dann loopt er ganz einfach nicht.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Horst der Biber

BeitragDi, Jul 10, 2007 12:13
Antworten mit Zitat
Benutzer-Profile anzeigen
meister_dieb:
mit colliderect kannst du erst ma ganz grob überprüfen mit welchen objekten dein spaceship kollidieren könnte. es gibt dir nämlich ein array zurück das alle objekte enthält die das rechteck überlappt. dann kannst du noch ma pixelgenau mit imagescollide prüfen.

Geeecko

BeitragDi, Jul 10, 2007 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber ich habe ja keine Bilder. Nur Rechtecke.
....

Horst der Biber

BeitragDi, Jul 10, 2007 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
ja dann schreib am besten gleich anfang deine map auf ne kollisionsmaske
Code: [AUSKLAPPEN]
colliderect(x,y,w,h,0,1)

und prüf dann ob dein spieler damit kollidiert
Code: [AUSKLAPPEN]
if colliderect(playerx,playery,playerw,playerh,1,0) then playerx=oldx;playery=oldy


wie dreamora eig schon ganz am anfang gesagt hat...

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group