y-collisionen
Übersicht

pupserBetreff: y-collisionen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tach!
ich machs kurz und knapp (nach langen ausprobieren): wie kann man feststellen ob ein Objekt auf dem Boden steht. Also in einer Map auf dem boden steht und nicht drunter klebt, oder irgentwie seitlcih an wänden dranklebt, sondern auf dem boden steht. Wie überprfüfe ich solche Kollisionen? Ich erwarte jetzt (will ich auch eigentl. gar nicht) irgenteinen Script. Nur mal anregungen, das heist blitz3d-funktionen die weiterhelfen könnten oder so. Danke |
||
![]() |
Xalon |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn ich deine frage richtig verstanden hab:
BlitzBasic: [AUSKLAPPEN] CollisionY Xalon |
||
pupser |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ích bin mir nicht sicher.
bisher hab ichs mit collisionNY ausprobiert... Nimm mal Stellungname |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
CollisionY() stimmt schon. Nur geht das davon aus, dass bei deinem Model der 0,0,0 punkt unten an den füssen ist. Ansonsten musst du noch eine entsprechendes +- machen, da du mit dem 0,0,0 vergleichst, nicht mit "Füssen" oder sonstwas. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
pupser |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hatte och erwähnt das ich entityradius benutze?!
wie meinteste das jetzt mit +-? edit: vielleicht sollte ich noch ein kollisionsobjekt für die füße machen, was meint ihr? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du mit EntityRadius arbeitest, muss der 0, 0, 0 Punkt innerhalb des Objektes genau in der Mitte des Objektes sein ( zumindest in der vertikalen Mitte ), da sonst die Kugel unten sehr weit überragt und sie schwebt oder nicht ganz nach unten reicht und darum die Füsse im Boden versinken.
Wo ist denn das genaue Problem? Ich vermute mal du hast die entsprechenden Collisionstypen gesetzt, auch beim Level und du machst eine Sphere to polygon kollisionsprüfung zwischen dem Spieler und dem Level Kollisionstyp oder? |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
pupser |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
yepp!
so siehts aus. Kollisionstyp 2. Ich poste mal meinen Code: BlitzBasic: [AUSKLAPPEN]
Es geht hat darum wie der die variable "i" setzten soll, im falle einen Falles ![]() |
||
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
die ausrichtung des Objektes stellt man über die collisionsNormale fest.
collisionY sagt ja nur in welcher höhe er Kolidiert ist, nicht in welcher Ausrichtung. |
||
pupser |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ausrichtung?
collisionnormals?-steht auch nicht in der OH |
||
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die Kollisionsnormale besteht aus:
CollisionNX CollisionNY CollisionNZ Das ist die Ausrichtung des Polygons auf das das Objekt aufgeschlagen ist. Damit kannst du feststellen ob das Poly eine Wand,Decke oder Boden ist. |
||
pupser |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Soweit war ich eigentlich auch schon.
Code: [AUSKLAPPEN] If EntityCollided(p\player, c_map) Then
For col=1 To colss dump = CollisionNY(p\player, col) Next If dump<EntityY(p\player) Then ;hiermit kann ich das jetz eigentl. abfragen oder? sprung=0 i=0 EndIf EndIf .... Ist die Grundidee denn richtig? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nein ist es nicht
dumb muss CollisionY() sein und wenn es auf der richtigen höhe ist kannst du es mit collisionny() richtig ausrichten |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
pupser |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Besonders ausführliche Hilfe bekommt man von euch ja nich...
Ich würde doch so nen thread nicht aufmachen, wenn ich nur befehle ohen gute Beschreibung wissen wollte, die kann ich auch in der OH nachlesen. Geht's nicht ein bischen ausführlciher als wenn jeder einen Satz schreibt. Z.B. mal ne idee reinbringen wie man das Lösen kann oder so. Nicht nur schreiben "falsch" wenn ich nen code poste, sondern dazu mal richtig stellungnehmen. Ich muss euch alles aus der Nase ziehen. nenenenenene ![]() ps: was soll ich denn ausrichten? Ich will doch garnichts ausrichten?! ich will doch nur überprüfen ob er auf dem boden steht oder nicht. |
||
hot-bitGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hoi.
Hmmm... Zitat von >Die Wurst< : Zitat: mag sein... aber da ich nichts zu hören bekomme, ist es einfacher sich 3 stunden damit auseinander zu setzen, als 5 tage lang vollgemeckert zu werden....
Der hat es wenigstens schon kapiert ![]() Du bist leider ein hartnäckigerer Fall, oder einfach nur .... (zu faul) ![]() Toni |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habs dir oben ja wohl ausführlich erklärt, aber nochmal falls du nicht lesen kannst / willst:
Zuerst erstellst du die Kollisionstypen für die verschiedenen Objekte. Da die Figur ja SphereCollision hat ( entityRadius ) einfach den EntityRadius auf halbe meshhöhe setzen: entity, meshheight( entity ) / 2 Danach musst du lediglich in der Mainloop eine Kollision zwischen diesen 2 Kollisionstypen testen ( Collisions FigurTyp, LevelTyp, 2, 2 ) sowie UpdateWorld benutzen. Um danach das Mesh richtig zu positionieren einfach im Falle einer Kollision die Entity an position: positionentity entity, entityx(entity), collisiony( ... ) + entityheight(entity)/2, entityz(entity) setzen das sollts schon gewesen sein. PS: teils nur pseudocode verwendet, da ich selbst die blitz interne kollision nicht benutze |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group