Treppen steigen

Übersicht BlitzBasic Blitz3D

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Dödel

Betreff: Treppen steigen

BeitragDi, Aug 02, 2005 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
ich habe zwar einen Thread dazu gefunden, in dem hat sich allerdings keine Lösung ergeben.
Ich möchte eine Treppe hochgehen, die Teil eines Turms ist. Hierbei ist zu beachten, dass ich ein Spielermesh habe, dass letztendlich nur dann nach oben bewegt werden darf, wenn die Stufe xx hoch ist. Wie kann ich das realisieren?
Natürlich muss man irgendwie testen, wie hoch die nächste Stufe ist, aber wie mache ich das?

Vielleicht nur gedankliche Blockade vom zu langen Coden... Shocked

Naja, bin für jede Antwort dankbar,
Dödel

Lord_Vader

BeitragDi, Aug 02, 2005 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Schieb irgent ein mesh vor und mach collision. Wenn eine kollision erfolgt dann is die treppe zu hoch.
 

Dödel

BeitragDi, Aug 02, 2005 17:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich vermute mal, ich habe wieder nur ein Brett vorm Kopf. Wie teste ich das Objekt denn dann auf Kollision?

wunderkind

BeitragDi, Aug 02, 2005 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Alle Funktionen zu diesem Thema findest du hier:

http://www.blitzbase.de/menu/3h.htm

Das sollte dir helfen.
 

Dödel

BeitragDi, Aug 02, 2005 17:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, das tut es nicht, da so immer eine Reaktion stattfindet, ich allerdings nur auf Kollision PRÜFEN will (jaja, die alte Krux...)

Denn je nach Reaktion würde dann ja das Objekt verschoben und das will ich ja gerade nicht.

Lord_Vader

BeitragDi, Aug 02, 2005 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann mach stoppen und mach die collision weg man. Sag mal kannst du denn nichts selbst erarbeiten? Was meinste wie ich es gelernt hab ich hatte kein buch, keine tutorials. Natürlich habe ich hier gefragt aber ich habe so weit es ging mit der onlinehilfe selbst gelernt. Und wenn du so kleine fragen hast komm doch in den chat dafür isser da.
 

Dödel

BeitragDi, Aug 02, 2005 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Lord_Vader hat Folgendes geschrieben:
Dann mach stoppen und mach die collision weg man. Sag mal kannst du denn nichts selbst erarbeiten? Was meinste wie ich es gelernt hab ich hatte kein buch, keine tutorials. Natürlich habe ich hier gefragt aber ich habe so weit es ging mit der onlinehilfe selbst gelernt. Und wenn du so kleine fragen hast komm doch in den chat dafür isser da.


1. Wie mache ich denn dann die Collision weg? Sorry, aber diesbezüglich habe ich echt keine Ahnung...

2. Was glaubst du denn, wozu das Forum da ist, doch auch, damit man Fragen stellt. Wenn das jetzt wieder zu anspruchslos ist, dann lass es einen Mod in die BC verschieben!

Lord_Vader

BeitragDi, Aug 02, 2005 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Mhh ja eigentlich schon denn das ist anfänglich ohne collisions kannst du nicht viel in 3D machen.

RESETENTITY Entity

Das brauchst du.
 

Dödel

BeitragDi, Aug 02, 2005 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie gesagt zu lang gecodet, aber:
Wann schalte ich die Collisionsprüfung denn dann wieder ein? Denn z.B. nach einem Schleifendurchlauf oder nach einer Bewegung hieße ja, dass in einer Schleife wieder eine Kollision mit Reaktion stattfindet und somit würde das dann doch zumindest allmählich den gleichen effekt haben, oder?

mfg
Dödel

darth

Betreff: if collisionentity(entity,index)=1 then man rauf-nach vorne

BeitragDi, Aug 02, 2005 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
ich würds so machen:
wenn der spieler mit der treppe kollidiert, dann soll er nahc oben verschoben werden und nach vorne (oder dann lässt du ne animation ablaufen - kommt draufan)

if collisionentity(entity,idex)=1 then
moveentity,0,treppen_höhe,treppen_tiefe
endif

(oder: if collisionentity(entity,index)=1 then
animatemd2 entity,3,startframe,stoppframe
endif)
Diese Signatur ist leer.

Lord_Vader

BeitragDi, Aug 02, 2005 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
genau. Er wird aber nicht nach vorne gesetzt bzw nur ein bisschen schliesslich läuft er ja schon dagegen.
 

Dödel

Betreff: Re: if collisionentity(entity,index)=1 then man rauf-nach vo

BeitragDi, Aug 02, 2005 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
darth gamer hat Folgendes geschrieben:
ich würds so machen:
wenn der spieler mit der treppe kollidiert, dann soll er nahc oben verschoben werden und nach vorne (oder dann lässt du ne animation ablaufen - kommt draufan)

if collisionentity(entity,idex)=1 then
moveentity,0,treppen_höhe,treppen_tiefe
endif

(oder: if collisionentity(entity,index)=1 then
animatemd2 entity,3,startframe,stoppframe
endif)



Lord_Vader hat Folgendes geschrieben:

genau. Er wird aber nicht nach vorne gesetzt bzw nur ein bisschen schliesslich läuft er ja schon dagegen.


Ok, jetzt habt ihr mich so weit... Ich verstehe nun nichts mehr Crying or Very sad

Alsoooo, wie ich ihn bewege ist mir schon klar, bloß muss ich wissen, ob ich ihn bewegen darf. Die Treppe ist Teil eines Gebäude-Meshs und insofern nicht einzeln auf Kollision zu prüfen. Deshalb war ja Lord_Vaders Idee mit einem höher gelegenen, auf Kollision geprüftem Pivot nicht schlecht. Dann habe ich die Frage aufgeworfen, ob ich es schaffen kann, eine Kollision erfolgreich zu erkennen, OHNE dass mein Pivot durch eine reaktion verschoben oder gestoppt wird, wenn ich gegen eine Wand rennen.

Die Antwort war, ich solle Collisions rückgängig machen. Versteh ich nicht:

Pseudo:

Collisions pivot, gebaeude,2,3
Collisions player, gebäude, 2,2

Wenn player berührt gebaeude und nicht pivot berührt gebäude Then
Bewege player um "Treppenstufenwerte"


So wird der pivot in seiner Bewegung aber gestoppt, wenn ich in eine Wand rennen.

Wenn ich im Falle einer Kollision des Pivots die K-Erkennung zwischen Pivot und Gebäude abstelle, muss ich sie ja irgendwann auch wieder anstellen. Damit hätte ich dann bei jedem erneuten Wand berühren eine weitere Verschiebung meines Pivots und das ist ja schädlich für die weitere Kollisionserkennung...

Ich hoffe, das war jetzt verständlich. Desweiteren möchte ich nochmal darauf hinweisen, dass ich kein absoluter Anfänger bin und man mich dementsprechend behandeln muss...

mfg
Dödel

darth

Betreff: meshs trennen ?

BeitragDi, Aug 02, 2005 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
hast du schon mal versucht die meshs zu trennen?
(kA welchen editor du hast...)
ich hab das auch mal gemacht - da hab ich das haus (ganze) geladen - die teppen gelöscht, dann loadmesh(house.3ds) - und dann die treppen noch mals (sind ja an der richtigen position und alles) loadmesh(treppe.3ds)

dann collision bei house = figur stoppen
collision mit treppe = bewegung um treppenwerte

@lord vader: ich dachte irgendwie an sowas wie - einmal dagegenlaufen, dann wird er automatisch die ganze treppe rauf"getragen" (weil er immer wieder mit der stufe kollidiert, wird er immer wieder ne stufe nach oben verschoben) - aber es geht auch dass er nur nach oben und auf die stufe verschoben wird, und dann gegen die nächste laufen kann... (^^ ansichtssache)
Diese Signatur ist leer.
 

Dödel

BeitragDi, Aug 02, 2005 18:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm, wäre ne Möglichkeit, aber gehts nicht auch anders? Denn bei komplexen Gebäuden alle Treppen und Schrägen einzeln?

darth

Betreff: norm sache ^^

BeitragDi, Aug 02, 2005 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn die treppen alle die selben sind, dann kannst du sie auch alle als treppe.3ds (oder so) speichern, und bei allen die selbe reaktion auslösen - ansonsten kenn ich keinen anderen weg...
Diese Signatur ist leer.
 

Dödel

BeitragDi, Aug 02, 2005 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Wird das nie der Fall sein
2. Müsste ich sie trotzdem alle einzeln laden und positionieren...

darth

Betreff: hmmm...

BeitragDi, Aug 02, 2005 21:08
Antworten mit Zitat
Benutzer-Profile anzeigen
nun ja,
1. dann kenn ich leider auch keine andere möglichkeit, sry
2. nein, du könntest das ganze laden (mit dem editor) dann die mauern und den restlichen kram weglöschen und nur die treppen (jetzt aber alle zusammen) als neue mesh einbinden - dann hast du 2 meshs => 1 haus und 1man alle treppen
Diese Signatur ist leer.
 

Dödel

BeitragDi, Aug 02, 2005 22:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Sprich du meinst alle Treppen in einer Map speichern und nochmal drüber legen?
 

sen-me

BeitragMi, Aug 03, 2005 10:10
Antworten mit Zitat
Benutzer-Profile anzeigen
wie wärs damit:
die höhe zwischen boden und entity berechnen (geht das bei blitzbasic überhaupt?)
und dan dementsprechend verhöhen/tiefen
 

Omenaton_2

BeitragMi, Aug 03, 2005 11:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit 3D habe ich nicht viel Erfahrung, aber ich habe schon mal ein kleines Programm gemacht, wo der Spieler aus first person view (eine echte Figur ist nicht da, nicht zu sehen) in Gebäude rein kann und Treppen hoch und runter laufen kann. Das hat bei mir vielleicht zufällig auf Anhieb gut geklappt.
Ich glaube ich hatte Kugel förmige Kollision Check mit dem Gebäude / Treppe und Sliding. In diesem Fall ist es so, daß kleine Höhenunterschiede automatisch durch sliding überwunden werden, was einen Treppenaufstieg ermöglicht.

Spiele einfach mit der Kollisions Arten und der Größe der Kollisionskugel herum.

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group