Egoshooter mit mehreren Ebenen. Wie laufen??
Übersicht

Gehe zu Seite Zurück 1, 2, 3 Weiter
Affje |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
eben, ich laube wir blicken nicht, wie es geht, aber andere verstehen nicht, was wir wollen *fg*.
wenn der level nur eine ebene hat is das ja easy, nur wenn der level eben mehrere ebenen hat (z.b. rampen oder treppen), dann is das etwas kompliziert ![]() |
||
www.drachengarde.tk
Guckst da Hier |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nein wirds nicht weil das kollisions system das vollständig übernimmt
das is das was ihr definitiv net geblickt habt |
||
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das vorangegangene Beispiel erklärt einleuchtend die Funktion von Collisions, und man kann sich damit auch wunderbar auf einer Treppe oder so auf eine zweite Ebene hinaufbewegen.
Das Problem ist aber trotzdem, dass es in diesem Level dann nichts wie eine Schwerkraft gibt. Man brauch bis zur zweiten Ebene nicht hochlaufen, sondern kann hochfliegen. Wie realisiert man denn sowas wie eine Schwerkraft? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was macht die echte schwerkraft? sie wirkt ständig auf dich ein und zieht dich richtung Erdmittelpunkt. also entlang einer y-Koordinate.
Du musst nur dasselbe machen, in jedem Hauptschleifendurchgang deinen player nach unten ziehen. wenn boden im weg ist, gehts nit, andernfalls beginnt er zu fallen. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja klar logisch.
Werde mich mal an die technische Umsetzung machen. Für ein paar konstruktive Zwischenrufe sind wir natürlich dankbar. [Edit] So, habs leider immer noch nicht geschafft. Entweder ist die Wirkung meiner Versuche = 0, oder ich bleibe wie angetackert aufm Boden kleben. |
||
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es ist zum wahnsinnig werden.
Ich habe echt probiert und probiert, bei Linepick bin ich ja erstmal überhaupt nicht durchgestiegen. Ich poste hier trotzdem mal vorsichtig einen Beispielcode. Wäre nett wenn den eventuell einer von Euch vervollständigen könnte, ich weiss echt nicht mehr weiter. Bitte, Bitte, Bitte Global x = 1024 Global y = 768 Graphics3D x, y, 32, 1 SetBuffer BackBuffer() Level = LoadMesh("map-schräg-text.b3d") Kamera = CreateCamera() licht = CreateLight(2) EntityType Kamera,1 EntityType Level, 2 Collisions 1,2,2,3 PositionEntity licht, 0, 30, 0 PositionEntity Level, 0, -15, 0 PositionEntity Kamera, 0, 3, -50 CameraRange Kamera, 0.1, 100000 MoveMouse x / 2, y / 2 HidePointer() While Not KeyHit(1) If KeyDown(17) = 1 Then MoveEntity Kamera, 0, 0, 0.3 If KeyDown(31) = 1 Then MoveEntity Kamera, 0, 0, -0.1 If KeyDown(30) = 1 Then MoveEntity Kamera, -0.1, 0, 0 If KeyDown(32) = 1 Then MoveEntity Kamera, 0.1, 0, 0 If KeyDown(16) = 1 Then TurnEntity Kamera, 0, 1, 0 If KeyDown(18) = 1 Then TurnEntity Kamera, 0, -1, 0 mxspd=MouseXSpeed()*0.25 myspd=MouseYSpeed()*0.25 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 pitch=pitch+myspd yaw=yaw-mxspd If pitch<-90 Then pitch=-90 If pitch>90 Then pitch=90 RotateEntity Kamera,pitch,yaw,0 RenderWorld UpdateWorld Flip Wend End Danke |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich seh da keine gravity
arbeit dich erst ma richtig ins thema ein bitte |
||
blitzblaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi !
Für die Schwerkraft schau Dir mal den Befehl TranslateEntity an. Und dann befolge das, was BladeRunner gesagt hat. Und nur mal so am Rande...es gibt nicht nur 0, 1, 2 sondern auch Zwischenwerte. Etwas mehr Feingefühl Peak7810. ![]() |
||
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe ja auch aus dem Quellcode meine hoffnungslosen Versuche rausgenommen.
Sollte nur die momentane Steuerung verdeutlichen. Okay, ich probier mal mit TranslateEntity rum. Schade das mir keiner ein direktes Beispiel zeigen will. Naja, dann versuch ichs erstmal selbst. Wird schon irgendwie gehen. @blitzblaster: was für Werte meintest du, bzw. für welchen Befehl (TranslateEntity)? Oder meinst du das insgesamt. (Das mit dem Feingefühl hab ich nicht so ganz verstanden) |
||
BB-Fan |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
bin neu hier, und hab dasselbe Problem mit diesem Laufen inner Map.
habs in nem englischen Forum versucht, aber da es nicht so weit her ist mit meinem englisch....naja wäre nett wenn jemand mal hilft..... bin ja nicht der einzige der es nicht rafft |
||
HOT-BITGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hoi !
Ich raff's auch nicht, denn ich hab's noch nicht mal probiert ! ![]() Aber wehe, wenn ich mal anfange .. Toni |
||
BB-Fan |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
scheint ja keiner hier zu sein, der einem mal mit ´nem Fetzen Code auf die Sprünge helfen will.
Hab mir den ganzen Thread mal durchgelesen, und wundere mich. Jungs und Mädels ist es denn echt so schwer mal wirklich zu helfen. |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Global x = 1024
Global y = 768 Graphics3D x, y, 32, 1 SetBuffer BackBuffer() Level = LoadMesh("map-schräg-text.b3d") Kamera = CreateCamera() licht = CreateLight(2) EntityType Kamera,1 EntityType Level, 2 Collisions 1,2,2,3 PositionEntity licht, 0, 30, 0 PositionEntity Level, 0, -15, 0 PositionEntity Kamera, 0, 3, -50 CameraRange Kamera, 0.1, 100000 MoveMouse x / 2, y / 2 HidePointer() While Not KeyHit(1) ;--------------------------------------------- ;-----------------Tanstatur---------------------------- ;--------------------------------------------- If KeyDown(17) = 1 Then MoveEntity Kamera, 0, 0, 0.3 If KeyDown(31) = 1 Then MoveEntity Kamera, 0, 0, -0.1 If KeyDown(30) = 1 Then MoveEntity Kamera, -0.1, 0, 0 If KeyDown(32) = 1 Then MoveEntity Kamera, 0.1, 0, 0 If KeyDown(16) = 1 Then TurnEntity Kamera, 0, 1, 0 If KeyDown(18) = 1 Then TurnEntity Kamera, 0, -1, 0 ;--------------------------------------------- ;-------------------Maus-------------------------- ;--------------------------------------------- mxspd=MouseXSpeed()*0.25 myspd=MouseYSpeed()*0.25 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 pitch=pitch+myspd yaw=yaw-mxspd If pitch<-90 Then pitch=-90 If pitch>90 Then pitch=90 RotateEntity Kamera,pitch,yaw,0 ;--------------------------------------------- ;--------------------Updates------------------------- ;--------------------------------------------- translateentity cam,0,-0.5,0 ; dank BB korigiert RenderWorld UpdateWorld Flip ;--------------------------------------------- Wend End |
||
between angels and insects |
- Zuletzt bearbeitet von Jan_ am Di, Mai 25, 2004 8:25, insgesamt einmal bearbeitet
blitzblaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ Jan: In diesem Fall hängt er an der Decke.
@ Peak7810: Nimm mal den Wert TranslateEntity Kamera,0,-.7,0. Da ist dann die Gavitation nicht ganz so stark nach unten gesetzt. Je kleiner die Zahl (-.7) desto stärker zieht er nach unten. Wenn Du den Wert dann umdrehst, dann gehts logischer Weise nach oben. Sollte doch durch Jans Code jetzt nicht mehr so schwer sein es nachzuvollziehen, oder ? Und das mit dem Feingefühl bezieht sich auf TranslateEntity. Aber auch für andere Befehle gilt nicht immer nur 1, 2, 3. Gruß Blitzblaster |
||
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jopp, danke für die Hilfe.
Bin aber wider Erwarten gestern sogar selbst noch drauf gekommen. Thx |
||
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kann man jetzt noch irgendwie die Bodenhöhe verändern.
Das also die Kamera durch die Gravitation nicht ganz auf den Boden gezogen wird, bis die Kollision eintritt, sondern dass sie immer etwas über dem Boden bleibt. Man schleicht sonst immer aufm Boden rum. Ich habs schon mit verschiedenen Arten probiert, aber entweder die Graviation geht dann nicht mehr, oder ich hab Probleme mit der Kollision. (ich hoffe, das ist jetzt keine blöde Frage) |
||
![]() |
Henry |
![]() Antworten mit Zitat ![]() |
---|---|---|
Erstelle einen Pivot [kameraPivot = createpivot()], welcher auf dem Boden ist und über einen Kollisionstyp verfügt.
Erstelle dann die Kamera, die Child von diesem Pivot ist [kamera = createCamera(kameraPivot)] und setze die Kamera auf die gewünschte Höhe. Da sie Child des Pivots ist, kannst Du den Pivot bewegen und die Kamera geht mit, die Kollision findet aber mit dem Pivot am Boden statt. |
||
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! |
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für die Hilfe.
Ich werde zwar an der Umsetzung zu knabbern haben, aber ich werds schon schaffen. Thx [edit] Da kann ich doch dem Pivot gleich eine Spielfigur zuweisen, korrekt? |
||
IonPainter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
man könnte sich auch in den projekte thread bemühen, den YaD - Yet Another Deathmatch thread suchen und dann die source meines multiplayershooters aufbröseln ![]() |
||
Gast |
![]() Antworten mit Zitat |
|
---|---|---|
Noch ma zu dem Beispiel von Jan_.
Bei dem Beispiel is es so das ma da sliden kann. Was bedeutet des?? Falls sliden einfach nur die Wände hoch laufen (sliden) is dann giltet des ja für den ganzen Raum und net speziel für Treppen. Leider hab ich kein BlitzBasic3D (wills mir aber bald kaufen) also kann ich des Beispiel net ausprobieren. Und die Onlinehilfe über Collisionen hab ich gelesen. |
||
Gehe zu Seite Zurück 1, 2, 3 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group