sanfte kameraführung
Übersicht

.erazerBetreff: sanfte kameraführung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hatte vor jahren mal so nen einfachen code gemacht, aber find ihn net, oder gelöscht, und komm grad nicht drauf.
und zwar hab ich im moment die kamera nur an meine spielfigur in diesem fall ein auto gepappt. hätts aber gern, dass die kamera immer so ein bisschen smoother nachschwenkt, also nicht so starr. läßt sich das auf die schnelle realisieren? |
||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm, die am schnellsten zu realisierende Variante wäre vermutlich, wenn du statt der Kamera einen Pivot hinter dem Auto befestigst und die Kamera dann mit sowas wie
Code: [AUSKLAPPEN] Local kameratempo#=.5 ; 0 bis 1
hinterherfliegen lässt.
TranslateEntity kamera,kameratempo*(EntityX(pivot,1)-EntityX(kamera)),kameratempo*(EntityY(pivot,1)-EntityY(kamera)),kameratempo*(EntityZ(pivot,1)-EntityZ(kamera)) AlignToVector kamera,EntityX(auto),EntityY(auto),EntityZ(auto),3,kameratempo Gibt aber unzählige und sehr viel bessere Varianten, sowas zu lösen (besonders, wenn es für die Kamera auch noch Hindernisse gibt). |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
ChaosCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn du weißt wo und wann du gestartet bist und du weißt wo du und wann sein musst, folgendermaßen:
Code: [AUSKLAPPEN] Global StartZeit = 0, StartX# = 50, StartY# = 50, ZielX# = 150, ZielY# = 100, ZielZeit = 1000, CamX#, CamY#
Graphics(400,300,32,2) SetBuffer BackBuffer() While Not KeyHit(27) Cls CamX = StartX + (1 - ((Cos((MilliSecs() - StartZeit) / Float((ZielZeit - StartZeit)) * 180)) + 1) / 2) * (ZielX - StartX) CamY = StartY + (1 - ((Cos((MilliSecs() - StartZeit) / Float((ZielZeit - StartZeit)) * 180)) + 1) / 2) * (ZielY - StartY) If ZielZeit < MilliSecs() newRND() Rect StartX - 2, StartY - 2, 4, 4 Rect ZielX - 2, ZielY - 2, 4, 4 Oval CamX - 5, CamY - 5, 10, 10 Flip Wend Function newRND() StartZeit = MilliSecs() StartX = CamX StartY = CamY ZielX = Rand(0, 400) ZielY = Rand(0, 300) ZielZeit = Rand(MilliSecs() + 1000, MilliSecs() + 4000) End Function Teste, schau, vollziehe nach, verstehe, wende an, hab Spaß. (Boah hab ich lange nix mehr mit Blitz3D/2D gecodet. Ich saß grad 5 minuten vor meinem Code und wunderte mich warum alles so hakt und scheiße aussieht, bis ich drauf kam, dass ich SetBuffer BackBuffer() vergessen hatte -.-) |
||
Projekte: Geolaria | aNemy
Webseite: chaosspace.de |
.erazer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ööööhm ja da werd ich erstmal schauen wie das funktioniert, sieht wahrscheinlich komplizierter aus als es ist.
mal sehen wie lange ich brauche, bis sich mir die funktionsweise erschliesst.... danke dir.... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group