Kollisionen? [GELÖST]

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Abenteurer036

Betreff: Kollisionen? [GELÖST]

BeitragMo, Dez 07, 2009 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich habe gerade ein kleines Problem mit Kollisionen, besser gesagt mit EntityCollided. Hier ein kleiner ausschnitt aus meinem Code.
(Mein Code ist ziemlich lang, deswegen habe ich nur diesen Ausschnitt gepostet)

Code: [AUSKLAPPEN]

Const CAM=1,UNS=2
Collisions CAM,UNSICHTBAR,2,3

; Das hier ist in der Hauptschleife!
If EntityCollided(camera,UNSICHTBAR)
 TranslateEntity door,0,-0.03,0,0
Else
 TranslateEntity door,0,0.03,0,0
EndIf
Natürlich habe ich auch schon alle EntityType zugeordnet. Was mache ich falsch?
New Project [4%]
Schinken Maker [100%]
  • Zuletzt bearbeitet von Abenteurer036 am Di, Dez 08, 2009 14:12, insgesamt einmal bearbeitet

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, Dez 07, 2009 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Was denn für ein Problem?

Gehts nicht? Passiert was unerwartetes? Geschieht was falsches? Fällt es einfach durch?

Falls das letztere, dann solltest du beachten, dass eine Kollision nur aus der Bewegung aus geht. Soll heissen, wenn du ein Objekt schon in einem anderem zu kollidierenden erstellst, wird keine Kollision registriert, was auch logisch ist, da es sich sonst nur schwer durch die Grafikkarte ausrechnen lässt.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Abenteurer036

BeitragMo, Dez 07, 2009 21:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, entschuldigung hab ich ganz vergessen^^

Also ich kann mit meiner Kamera auf das Objekt zusteuern aber wenn ich Collisions bla,bla,bla,bla weg lasse kann ich durch das Objekt laufen. Wenn ich es jedoch hinschreibe bleibt er vor meinem Unsichtbaren Cube stehn und die Tür öffnet sich solang ich dagegen renne. Da ich aber durch das unsichtbare durch will und zur Tür muss ich es irgendwie durchlässig machen. Bloß wie wenn noch eine Kollision statt finden soll? Sad
New Project [4%]
Schinken Maker [100%]

NightPhoenix

BeitragMo, Dez 07, 2009 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieso willst du mit diesem unsichtbarem Ding kollidieren wenn du da durch willst? Shocked Das widerspricht sich doch. Wenn du da durch willst dann lass die Kollision für das Objekt weg.

Oder wie war das gemeint? Nochmal zum mitschreiben bitte.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, Dez 07, 2009 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin mir grad nicht so sicher, ob eine Kollisionsabfrage zum türöffnen das richtige ist. Aber gut. Denn auch hier kann man, wenn die Tür dann offen ist, das UNSICHTBAR ja zur Seite schieben, so das der Spieler da durch kann. Dann nach x Sekunden schiebt sich die Tür wieder zu, oder noch besser zum durchlassen die Kollision auf UNSICHTBAR aufheben und nach x Sekunden wieder einschalten.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Abenteurer036

BeitragMo, Dez 07, 2009 22:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will eine Tür öffnen. Um die zu öffnen will ich vor die Tür einen unsichtbaren Cube setzten. Wenn die Kamera mit diesem Cube kollidiert soll die Türe aufgehn. Deswegen brauche ich eine kollision mit einem unsichtbaren Objekt.
New Project [4%]
Schinken Maker [100%]

Nicdel

BeitragMo, Dez 07, 2009 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch mal EntityDistance, ich glaub das ist einfacher...
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Abenteurer036

BeitragMo, Dez 07, 2009 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok ich werds versuchen Very Happy
New Project [4%]
Schinken Maker [100%]

Tankbuster

BeitragMo, Dez 07, 2009 23:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Kollisionen mit unsichtbaren Objekten funktionieren nur mit EntityAlpha Entity,0

Nja, aber um dieses Problem zu lösen ist EntityDistance wirklich sinnvoller Wink
Twitter
Download Jewel Snake!
Windows|Android

Abenteurer036

BeitragDi, Dez 08, 2009 10:33
Antworten mit Zitat
Benutzer-Profile anzeigen
OK Danke^^

Mit EntityDistance klappts wunderwar. Aber funktioniert es nicht wenn man 2 Objekte mit einander kollidieren und durcheinander durch gehn lassen kann wenn sie beide einen EntityType besitzen und mit Collisions geprüft werden? Weil wenn ich Collisions benutzt habe waren die Objekte hinterher nicht mehr durchlässig.
New Project [4%]
Schinken Maker [100%]

NightPhoenix

BeitragDi, Dez 08, 2009 13:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Geht es nur mir so, oder ist seine Ausdrucksweise/Erklärung schon wieder seltsam, sodass ich ihn wieder nicht richtig verstehe?!

Was ich denke:
Du kannst sozusagen "on the fly" den EntityType einzelner Objekte ändern. Somit kannst du während des Programmlaufs das Kollisionsverhalten einzelner Objekte verändern.

Zitat:
wenn sie beide einen EntityType
Meinst du damit den gleichen EntityType oder zwei unterschiedliche?
Zitat:
Weil wenn ich Collisions benutzt habe waren die Objekte hinterher nicht mehr durchlässig.
So soll es doch sein, oder?

Oder meinst du etwa gleichen EntityTypes?
Wenn das so ist kannst du per "Collisions Type1,Type1,x,y" die beiden Objekte gleichen Types miteinander kollidieren lassen.
Voraussetzung für dein Unterfangen ist dann aber, dass ein Objekt dieser beiden bevor du UpdateWorld abfragst still steht, weil das Kollisionssystem in BB nicht 2 bewegende Objhekte miteinander kollidieren kann ohne mehrmals UpdateWorld abzufragen.
So wäre das auch mit z.b. "Collisions Type1,Type2,x,y"

Um zwei sich bewegende Objekte richtig miteinander kollidieren zu lassen brauchst du i.d.R. eine Physikengine.

Abenteurer036

BeitragDi, Dez 08, 2009 13:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah... ich wusste garnicht das man auch 2 gleiche EntityTypes kollidieren lassen kann. Nein das mein ich nicht. Wie oben schon beschreiben versuche ich eine Tür mit Hilfe eines unsichtbaren, davorstehenden Cubes zu öffnen. Sprich, wenn die Kamera durch den Cube durch fährt soll sich die türe öffnen. Das funktioniert bei mir leider nur wenn ich dem unsichtbaren Cube einen EntityType zuordne und ihn dann mit "Collisions KAMERA,CUBE,2,3" abfrage. Jedoch komme ich dann nichtmehr durch den unsichtbaren Cube durch sondern bleibe vor ihm stehn und die Türe öffnet sich. Ich möchte aber gerne durch ihn duch, geht aber mit Collisions bla,bla,bla nicht. Sad

Inzwischen benutze ich EntityDistance. Mit dem klappts auch.
New Project [4%]
Schinken Maker [100%]

NightPhoenix

BeitragDi, Dez 08, 2009 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist auch eleganter Wink also bleib bei EntityDistance.

Du könntest bei der Kollisionsmethode wenn die Tür aufgeht einfach den EntityType des unsichtbaren Cubes davor auf "EntityType Cube,0" oder ne andere Zahl setzen, wenigstens die ist nicht per "Collisions" bereits als Kollisionstyp vergeben. So würde deine Kamera auch durch den Würfel durchkommen

Abenteurer036

BeitragDi, Dez 08, 2009 14:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah ok! Dankeschön^^
New Project [4%]
Schinken Maker [100%]

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group