Träge Steuerung

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Pdd

Betreff: Träge Steuerung

BeitragSa, Nov 04, 2006 12:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.
Ich hab seit gestern angefangen, 3D zu machen, und ich muss sagen, es gefällt mir Very Happy
Nun aber zu meinem Problem: Ich will eine "träge" Steuerung haben. D.h. Je nach "Typ" meines Ruamschiffes soll dies Träger zu steuern sein, als ein anderes. Ausserdem kommt hinzu, das die Kamera immer etwas träge nachziehen soll. Beides habe ich schon realisiert und es funktioniert auch. Nur bei der Lenkung habe ich noch einige Probleme:
Code: [AUSKLAPPEN]
      ;; Maus
   
   XTurn = (MouseYSpeed()/Player_Traege_X#)
   ZTurn = (-1 * (MouseXSpeed()/Player_Traege_Y#))
   
   TurnEntity player, XTurn, 0, ZTurn
   
   MoveMouse 400, 300
   


Wie ihr seht, wird die Geschwindigkeit der Maus einfach durch die Trägigkeit (schreibt man das so? Razz) geteilt, je höher die *_Traege_* Variablen, desto träger lässt sich das ding Steuern. Das funktioniert auch ganz gut, nur ist das keine "wirkliche" Trägigkeit, sondern man muss halt einfach mit der Maus eine größere Strecke zurücklegen, um sich zu bewegen... Kennt jemand eine bessere Lösung dafür?

Und 2.: Wie ihr Seht, setze ich die Maus immer zum Mittelpunkt, damit sie in alle Richtungen wieder bewegt werden kann. Dies führt aber dazu, das die Steuerung etwas ruckelig ist, sie ist ein bischen in Stufen, also nicht flüssig. Gibt es hier auch eine bessere Lösung?

mfg Pdd
Lieber Apfel als Birne.

aMul

Sieger des Minimalist Compo 01/13

BeitragSa, Nov 04, 2006 12:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Probier mal sowas in der Art:
Code: [AUSKLAPPEN]
turn# = turn# + MouseYSpeed() * Factor# ;Der Factor muss natürlich vorher festgelegt werden. Er entspricht deinem "Player_Traege_X#"
turn# = turn# * 0.99 ; Hier musst du mit der .99 rumspielen, je nach Code kann da auch mal .7 oder .999 hin müssen ;)
TurnEntity ent, turn, 0, 0


Es gibt zwar noch bessere Lösungen, aber solange die nicht frameunabhängig programmierst reicht diese völlig aus Smile
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

x-pressive

BeitragSa, Nov 04, 2006 12:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutze einfach zwei Variablen für die Soll-Position des Schiffs (dort, wo es sich hinbewegen soll) und zwei für die Ist-Position der Schiffgrafik (dort, wo die Grafik tatsächlich gezeichnet wird). Die Soll-Position steuert man mit den Tasten. Dann gleicht du die Ist-Position des Schiffs mit jedem Frame so an die Soll-Position an, das ein Trägheitseffekt entsteht.

Die Soll-Position ist quasi nur ein unsichtbarer Cursor, auf den das Schiff sich träge zubewegt:

BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,0,2 : SetBuffer BackBuffer()

sollX# = 400
sollY# = 300

istX# = 400
istY# = 300

While Not KeyHit(1)

Cls

; UNSICHTBAREN CURSOR BEWEGEN
If KeyDown(200) sollY = sollY - 4
If KeyDown(208) sollY = sollY + 4
If KeyDown(203) sollX = sollX - 4
If KeyDown(205) sollX = sollX + 4

; SCHIFFPOSITION LANGSAM AUF CURSORPOSITION BEWEGEN
istX = istX + (sollX-istX) / 64 ; <- JE GRÖSSER, DESTO TRÄGER
istY = istY + (sollY-istY) / 64

; SCHIFF ZEICHNEN
Rect istX, istY, 50,50, 1 : Flip

Wend
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

Pdd

BeitragSa, Nov 04, 2006 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm also so wie ich das sehe, bewirkt das doch nur, das das Schiff sich langsamer zu dem "Soll-Punkt" bewegt, oder?
Lieber Apfel als Birne.

Goodjee

BeitragSa, Nov 04, 2006 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
ist das nicht träge?
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Schnittlauch

Unkraut

BeitragSa, Nov 04, 2006 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist so vollkommen richtig PDD.
Ich würde es auch so machen, mit dem soll punkt Wink
Ich wars nicht.

Pdd

BeitragSa, Nov 04, 2006 20:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm jo, nur das ich nen 3D-Soll Punkt habe Wink
Ich habe es jetzt ohne Soll-Punkt gelöst, die Trägheit ist einfach die Geschwindigkeit, also vom Prinzip her fast das selbe. Wink

Mittlerweile dreht sich die Kamera auch träge ^^.

Trotzdem danke an alle Smile
Lieber Apfel als Birne.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group