Egoshooter mit mehreren Ebenen. Wie laufen??
Übersicht

kolloffnikoff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sorry...hab auf letztes posting der ersten seite geantwortet...lass trotzdem mal stehen...cya
ich post euch einfach mal den anfang der player.bb meines 3d shooters den ich grad bastel...X-Treme-Bauern-Shooter(merkt euch diesen namen...der wird mal GROOOS werden.. ![]() da fehlt noch einiges aber genau das hier beschriebene problem wird da gelöst...glaub ich mal Code: Include "collisions.bb" Type T_Player Field pivot Field camera Field yspeed# Field movespeed End Type Global player.T_Player Function Init_Player() ;Setup player player.T_Player = New T_Player ;Base player\pivot=CreatePivot() EntityRadius player\pivot,32 EntityType player\pivot,col_player ;Camera player\camera=CreateCamera( player\pivot ) MoveEntity player\camera,0,64,0 ;Jump player\yspeed#=0.0 player\movespeed=8 ;Setup collisions Collisions col_player,col_environment,2,3 ;Ins level etwas über den boden PositionEntity player\pivot,0,100,0 MoveMouse 400,300 End Function Function Update_Player() ;Look around mys = MouseYSpeed()/2 If Abs(EntityPitch(player\camera)+mys)<89 Then TurnEntity player\camera,mys,0,0 EndIf TurnEntity player\pivot,0,-MouseXSpeed()/2,0 ;Movement If KeyDown(17) MoveEntity player\pivot,0,0,player\movespeed If KeyDown(31) MoveEntity player\pivot,0,0,-player\movespeed If KeyDown(30) MoveEntity player\pivot,-player\movespeed,0,0 If KeyDown(32) MoveEntity player\pivot,player\movespeed,0,0 ;Es lebe die schwerkraft player\yspeed=player\yspeed-2 MoveEntity player\pivot,0,player\yspeed,0 ;Collisions col=CountCollisions(player\pivot) For i=1 To col If CollisionNY(player\pivot,i) Then ;Baby,wenn ich down bin player\yspeed=0 If KeyDown(57) player\yspeed=20 ;dann flieg ich nur so dahin(Jump),muha End If Next MoveMouse 400,300 End Function hier wird einfach ausgenutzt das das pivot einen radius von 32 hat und so treppenstufen mit 16 units einfach hochslidet. auf dem boden wird der spieler durch eine art schwerkraft berechnung gehalten ...hoffe es hilft cya |
||
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also cih würde die figur bewegen un dann die camera immerwider hinter die figur setzten.......... | ||
Dödel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ist zwar Uralt Thema, aber trotzdem:
Kollisionen helfen doch nicht! Wenn man eine Kollision einbaut, dann bleibt man an Treppen hängen... |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Er ist uralt, und wenn du die nächsten minuten, noch so einen Uralten ausgräbst, gibts par aufs maul! | ||
between angels and insects |
Dödel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es ist aber doch schade, wenn ein nicht beendeter Thread im Nichts versinkt, oder? | ||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es ist schade, das du den alten dinger ausgräbst,
wer sucht, der findet, aber du bringst die Zeitliche Reinfolge durcheinander. |
||
between angels and insects |
Dödel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hast du mal gesucht? All diese Treppenthreads haben nur lose Enden. Nirgendwo wird ein Lösungsweg zu Ende gebracht, niemlas ein Thread beendet. Als Seoman meinen eigenen Treppenthread wieder ausgegraben hat, war das für mich nochmal ein Anstoß, selber zu suchen...
Wenn du einen Thread weißt, in dem eine wirklich funktionierende Lösung gefunden wurde, könntest du ihn mir dann sagen? Ich nämlich nicht, und ich kann es nicht nachvollziehen, da gerade "Experten" (wie du, Jan_) sowas doch bestimmt schonmal gelöst haben müssen... |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wo ist den Das Problem, beim Treppen Steigen?
Die Collisionen, auf modus, 3, großgenuge Collisionssphere und alles funktiooniert, Testet es doch einfach. |
||
between angels and insects |
Dödel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn der Radius groß genug sein soll, dann kann man (ich??) ja nicht mehr bis zum Anschlag an die Wand ran (nun habe ich allerdings auch Figuren Perspektive und nicht Ego) | ||
![]() |
Klip |
![]() Antworten mit Zitat ![]() |
---|---|---|
Prüfe auf eine Kollision mit einem Entity mit voller Transparenz (beispielsweise einer Box), die vor und hinter der Treppe steht. Wenn berührt wird, dann stelle die Collisions um. | ||
Dödel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann müsste ich ja die Treppe komplett einrahmen, mit solchen Boxen. Ohne Reaktion--> Meshsintersect--> 1. Bei vielen Treppen zum einen sehr langsam, bei Wendeltreppen zusätzlich unmöglich^^ | ||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
du bist ein Dödel! | ||
between angels and insects |
![]() |
Henry |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dödel hat Folgendes geschrieben: Dann müsste ich ja die Treppe komplett einrahmen, mit solchen Boxen. Ohne Reaktion--> Meshsintersect--> 1. Bei vielen Treppen zum einen sehr langsam, bei Wendeltreppen zusätzlich unmöglich^^
Was ist bei Wendeltreppen unmöglich? Wie bereits vor ein paar Monaten erwähnt, weiss wohl immer noch niemand, was genau Dein Problem hier ist...und Jan muss ich recht geben. In Bezug auf Treppen in B3D habe ich Dir eine Lösung gegeben und somit ist das Thema eigentlich beendet...wenn Du aus den Vorschlägen nichts machst, ist das Dein Ding. Hier nochmal eine Lösung für eine Wendeltreppe (sofern man rechts und links nicht runterfallen können soll): Die Treppe: ![]() Rechts und links neben die Treppe werden Hilfsobjekte (Dummies) gesetzt, die im Spiel unsichtbar sind, die aber auf Kollision geprüft werden. Der einfachen Bewegung halber legt man auf die Treppe ebenfalls ein solches Hilfsobjekt, auf welchem man die Treppe hochgehen kann...es findet also keine Kollision mit den Stufen, sondern mit dem Plane statt, das nach oben führt. Diese Vorgehensweise findet man in vielen Spielen: ![]() ![]() ![]() Bei gleich grossen Stufen und einem gleichmässigen Walkcycle fällt es in der Regel nicht auf, dass man nicht über die Stufen, sondern über ein Plane nach oben geht. Da die Dummies alle aneinanderstossen, fällt man auch nicht durch sie hindurch bzw. die Treppe runter. Mit dieser Methode kommen durch die drei Dummies genau 27 Polygone hinzu, die man über ein View oder Distance Culling mit HideEntity komplett ausblenden kann, wenn der Spieler davon weit entfernt ist. Wo wird denn da etwas langsam oder raubt Performance?? |
||
Aiya Eärendil Elenion Ancalima!
All you have to decide is what to do with the time that is given to you. • Robsite.de ist eine Anlaufstelle für Tutorials und Tools, die Noobs das Leben leichter machen! • Forensuche ist nicht nur als Lückenfüller in den oberen Links gedacht! |
Dödel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich verstehs immernoch nicht. Man müsste den Kollisionstyp auf nur raufsliden setzen, für den Rest des Levels aber sliden. Also müssen die Schrägen BlitzIntern erstellt werden (oder als einzelnes Objekt geladen und über die Treppe gelegt).
Zu Möglichkeit 1: Ich persönlich habe keine Lust, bei einer Wendeltreppe Blitz Intern mit den Normals eine Schräge drüberzulegen... Zu Möglichkeit 2: Für jede Treppe nochmal eine Hilfsschräge als externes Mesh?? Unübersichtlich und Speicher fressend... Ich weiß nicht, wo meine Denkblockade liegt, aber was mache ich denn falsch???? |
||
![]() |
Henry |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dödel hat Folgendes geschrieben: Ich weiß nicht, wo meine Denkblockade liegt, aber was mache ich denn falsch????
Was Du falsch machst, kann ich Dir sagen...Du atmest. "Ich persönlich habe keine Lust"? - Nun, programmieren ist mit Arbeit verbunden...wenn Du darauf keinen Bock hast, dann kauf Dir ein Drag&Drop Toolkit wie GameStudio. "Methode 2" ist unübersichtlich und Speicherfressend? Für die Unübersichtlichkeit sorgst Du selbst und Speicherverbrauch? Huch, eine weitere Datei mit einem Objekt welches an die 30 Polygone hat zwingt Deinen Rechner in die Knie...und FreeEntity ist ein Fremdwort. Mit Deiner Einstellung brauchst Du keine weitere Hilfe erwarten. |
||
Aiya Eärendil Elenion Ancalima!
All you have to decide is what to do with the time that is given to you. • Robsite.de ist eine Anlaufstelle für Tutorials und Tools, die Noobs das Leben leichter machen! • Forensuche ist nicht nur als Lückenfüller in den oberen Links gedacht! |
Dödel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was du falsch machst, ist mich für einen idiotischen kleinen Typen zu halten, der denkt, Quake Programmieren wäre in 10 mins getan... Das bin ich nicht!!
Ich persönlich habe keine Lust, nein! Für sagen wir 50 Treppen solche Schrägen erstellen... Also, Koordinaten, Größe gehen vielleicht noch, aber Wendeltreppen? Mit Normals ist es da ja nicht getan... Dann müsste ich für eine Wendeltreppe ja die einzelnen Ecken mit ihren Koordinaten herausfinden und danach dann die Schräge erstellen. Das dauert doch und ist eine nervtötende Arbeit. Vllt. Kennst du Enter the Matrix... Da gibts eine Map, heißt Vertigo/China Town... Die besteht fast nur aus Treppen. Würde man die alle per "Hand" mit Schrägen versehen, dann würde man sich dämlich klicken. Ich kann mir das einfach nicht vorstellen. Methode 2: Von arbeitsspeicher habe ich nie gesrpochen... Methode 2 war, die Treppenschrägen individuell für jede Treppe im Modeller zu erstellen und zu speichern. Das ist unübersichtlich (GFX-->Treppen-->Map1-->Treppe1.b3d, Treppe2.b3D... Und dann Map2-->Treppe1.b3D...) und verbraucht unnötigen Festplattenspeicher. Diese Idee war außerdem nicht ernst gemeint, sondern eher eine fiktive Ironie auf meine Hilflosigkeit... |
||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
worüber diskutiert ihr hier eigentlich nochmal die ganze zeit?
für die kollision einer figur, die auf beinen steht, mit dem level nutzt man übrigens am besten linepick ^^. |
||
MrKeks.net |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja, wenn du keine Lust hast,
nimm einfach Line intersect, das du radial von der Figur nummst, (so, ca. 260 Grad * die Höhe der Figur, auf Treppen höhe.) +meshintersect. --> du weißt, wann sie kollidiert und du weißt, wo sie überhaupt hinlaufen kann. dann berechnest du noch die Neue Position. Das ist viel schneller und übersichtlicher. |
||
between angels and insects |
Dödel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
... und jetzt nochmal für Laien??
Line Intersect ![]() radial von der Figut nummst? ![]() 260 Grad * die Höhe der Figur, auf Treppen höhe ![]() Also, sorry, aberr ich versteh das nicht ![]() |
||
Dödel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Juhuu, jetzt funktioniert alles, wie gewollt! Gilt natürlich auch für alle restlichen Threads zu Treppen in denen ich schändlicherweise gepostet habe. Entschuldigung! ![]() Naja, vielen Dank für all die vielen Posts (auch die negativen XD Die haben in mir den Drang hervorgerufen, (mir selbst?) zu beweisen, dass ich kein Dödel bin)... Ich mach mich dann mal wieder ans Programmieren... Vielen Dank ihr alle (Juhuuuu ![]() mfg Dödel |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group