Matrix KameraSichtmodus
Übersicht

![]() |
Black SpiderBetreff: Matrix KameraSichtmodus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eine Seltsame Themaformulierung, aber nun:
Ich (OK, nicht Ich alleine, sondern Ich mit anderen) habe eine Art Weltraumshooter geproggt (in Bearbeitung) allerdings fliegt man auf einem Planeten mit Landschaft usw... so ich hätte es jetzt gerne das man mit der Raumsonde einen Spezialangriff startet, bei dem die Sonde sich drehend nach obenfliegt (nicht besonders Schwer), doch dann soll das ganze Programm angehalten werden, und die Kamera soll sich einmal um die Sonde herumdrehen (wir kennen diese Szene aus dem Film MATRIX, wo Neo den Kugeln ausweicht und die Kamera sich um ihn dreht...) allerdings ist dies im Film einfacher als bei Basic, denn die Kamera soll sich ja um Das Schiff drehen WÄHREND alles andere stillsteht (deshalb funzt Delay nicht)... Die SOnde soll Anschliessend auf den Boden knallen und eine Explosion hervorrufen (das krieg ich aber auchnoch hin ![]() helft mir!!! |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
da die 3D objekte ja nicht nach jedem schleifendurchlauf gelöscht werden, könntest du dann in eine Funktion springen, dort die Camera als child von nem pivot machen, der sich an der sonde befindet und dann einfach den pivot drehen. | ||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank!
doch wie krieg ich dass dann hin das der rest des Progs anhält (wie bei "Matrix")? und noch eine Frage: wie kann man so eine Art "Umstelltaste" einbauen?, man steuert mit den Pfeiltasten, und wenn man leertste gedrückt hat, dann kann man mit den Pfeiltasten die Kamera drehen, oder so... Dankö!!! |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du speicherst die Bewegungen aller Objekte in ein Type/Dim, dann setzt du die Bewegung aller Objekte auf Null, ausser die der Kamera und fliegst mit ihr rum. Nach der Attake passiert was passieren soll und setzt den Rest wieder in Bewegung. Oder was war die Frage?
Allerdiings steht bei Matrix die Zeit nicht still, sondern wird extrem verlangsamt dargestellt. |
||
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wieso so umständlich? In meinen Games benutze ich z.B. immer eine Variable "gameSpeed", die bestimmt, in welcher Geschwindigkeit das Spiel abläuft. Wenn die Variable auf 1.0 gesetzt ist, heisst das normale Geschwindigkeit, bei 2.0 doppelte Geschwindigkeit, bei 0.5 halber Speed usw. Dann kann man jederzeit während dem Spiel die Zeit stufenlos schneller oder langsamer drehen -womit sich tolle Effekte erzeugen lassen.
Ist ganz einfach. Wenn du ein Objekt bewegst, machst du das ja dann normalerweise so: MoveEntity Ship,0,0,shipSpeed oder MoveEntity Ship,0,0,shipSpeed*deltaTime Soweit nichts neues. Und wenn du jetzt zusäzlich noch variablen Gamespeed einbauen möchtest, fügst du einfach hinzu: MoveEntity Ship,0,0, (shipSpeed*gameSpeed) oder MoveEntity Ship,0,0, (shipSpeed*gameSpeed) * delta Um dann den Matrix-Effekt zu erreichen, einfach die Variable gameSpeed kurzzeitig auf 0.25 oder so setzen (Zeitlupe) und die Kamera um das Schiff rotieren. Allerdings dran denken, daß du die Variable gameSpeed- bei allen Bewegungen im Game benutzt, deren Zeit beeinflussbar sein soll. Eine gameSpeed-Variable macht sich auch sehr nützlich zum Debuggen. Ich lasse mein Game immer auf 20-facher Geschwindigkeit durchlaufen, damit ich beim Testen Zeit sparen kann ![]() |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey, das is gut! Danke! An euch beide!!! Also müsste die Variable
gamespeed# = wasserbewegung# + mki\speed# + eigenspeed# + waffenspeed# + alleanderengeschwindigkeiten# sein? Und der CamPivot müsste dann BlitzBasic: [AUSKLAPPEN] ungefähr so aussehen??? Ich glaube, wenn ich das hab, dann hab ich alles ^^ vielen Dank an euch alle !!! ![]() |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum so kompliziert? Du kannst gameSpeed auf jeden beliebigen Wert setzen, dementsprechend läuft dann halt das Spiel. 1.0 ist dabei immer normale Geschwindigkeit. 0.5 halb so schnell, 2.0 doppelt usw.
Also ist es am einfachsten, wenn du einfach in dem Moment, in dem du Zeitlupe willst, die Variable gameSpeed von 1.0 (normal) langsam auf zum Beispiel 0.25 herunterzählst. Du kannst die Variabel auch sofort auf 0.25 setzen, aber es wirkt "cooler", wenn die Zeit in deinem Game fliessend langsamer wird, nicht plötzlich. Ist doch ganz simpel. In deiner Hauptschleife: BlitzBasic: [AUSKLAPPEN]
Und im Rest des Spiels alle Bewegungsgeschwindigkeiten immer mit gameSpeed multiplizieren. Zumindest alle Bewegungen, die von der Zeitlupe beeinflusst werden sollen. |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi x-pressive,
die Idee mit dem Gamespeed ist echt cool, werd ich auch in mein Spiel einbauen! Einen kleinen 'Fehler' habe ich aber bei deinem letztem Eintrag zu bemängeln. Es fehlt die delta -Variable bei der allmählichen Verlangsammung des Spiels... ; ZEITLUPEN-MODUS AKTIV? SPIEL WIRD LANGSAMER If zeitlupe = True Then If gameSpeed > 0.25 Then gameSpeed = gameSpeed - 0.01 * delta End If ; ZEITLAUPE AUS? SPIEL WIRD WIEDER SCHNELLER Else If gameSpeed < 1.0 Then gameSpeed = gameSpeed + 0.01 * delta End If End If Ansonsten braucht ein grottig *1 langsamer Rechner paar Minuten um die Geschwindigkeit zu verlangsamen. *1 - Übertriebener Wert und kann nicht ganz ernst genommen werden. |
||
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke Mann !!! Echt !!! warum hast du dich eigentlich nicht mehr wegen den grafiken gemeldet???
Danke an alle!!! Das wir soooooooo GEIL !!! |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe die Delta-Variable beim Beispiel absichtlich mal weg gelassen, um es einfacher zu machen. Es gibt ja auch hin und wieder Leute, die bei einfachen Games WaitTimer benutzen. Aber stimmt natürlich: wenn man Delta-Timing benutzt, muß die Variable auf jeden Fall mit dazu.
Merke: eine gute Lösung ist niemals kompliziert. ![]() |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
sorry...
Ich wollte den effekt jetzt in nem Neuen Game Anwenden, doch ich hab da son Problem mitm Pivot. Man soll die Kamera immer un das Objekt drehen können (wie bei Splinter Cell), doch die Figur dreht sich jetzt seltsamerweise mit... warum und HILFÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da liegt der Fehler dann aber sich irgendwo anders -vielleicht hast du irgendwie die Figur mit der Kamera bzw. dem Kamerapivot verknüpft (ParentEntity). | ||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja, dass muss ich doch, sonst bleibt der Pivot ja stehen, oder?
und nochwas: beim Weltraum spiel hatte ich das Problem nicht, doch hier schon: Die Kamera hat den gleichen KolliType wie der PLayer (damit man nicht durch die Landschaft gucken kann) das Problem ist, dass sich die Kamera jetzt zwischendurch verschiebt (wenn sie mitm Terrain-Hügel kollidiert), wie krieg ich die wieder normal!? |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group