Help! Sinus-Animation!
Übersicht

OkyoBetreff: Help! Sinus-Animation! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ich habe ein Problem mit der Animation meiner Waffe! Ich habe eine typische 3D-Shooter Perspektive und eine Waffe and die R-Cameraseite gelinkt!(s.ä.Doom) Damit das alles cooler erscheint, wollte ich beim laufen die Waffe einbißchen animieren! Dazu habe ich folgenden Code! ................................... Zeit#=MilliSecs()/3 Pendeln#=Sin(Zeit)*0.08 If KeyDown(200) Then MoveEntity Weapon,Pendeln,0,0 EndIf ................................. Hierbei pendelt die Waffe in einer angenehmen Geschwindigkeit auf der X-Achse etwas von Rechts nach Links und wieder zurück, wenn die Pfeiltaste (Oben)gedrückt wird! PROBLEM KONKRET: Wenn ich die Pfeiltaste nach kurzem Drücken wieder loslasse, pendelt die Waffe nicht wieder zurück auf ihre Ursprungskoordinaten! Die Waffe bleibt dort liegen, wenn ich die Taste losgelassen habe! Die Waffe hat also nur die halbe Sinuswelle auf der X-Achse animiert und von dort aus startet sie dann die neue Sinus-Animation, wenn ich erneut auf Pfeiltaste (Oben) drücke! D.h. auf blöd ist nach 10 Sekunden Laufen, die Waffe von ganz Rechts nach ganz Links gewandert! Ich möchte aber, dass die Waffe wieder zurück auf ihren Ursprungspunkt geht und nicht mitten stehen bleibt, wenn ich die Taste wieder loslasse! Thanx |
||
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Benutz anstatt Moveentity einfach Positionentity.
Code: [AUSKLAPPEN] Positionentity weapon,x#+Pendeln,y#,z# Musst dann noch ein bischen mit dem Sin-Wert rumprobieren. |
||
aktuelles Projekt: The last day of human being |
Okyo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das funktioniert zwar..aber das Ergebnis ist etwas hässlich, weil sich die Waffe dann ruckartig zurück zu seinem Ursprungspunkt bewegt! Vorher war das geschmeidiger...mit errechneten Zwischenwerten ...
trotzdem danke |
||
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Damit es nicht ruckelt, musst du sin() von 1-360° verwenden. Also eine Variable von 1-360 erhöhen und dann immer wieder auf 1 zurücksetzen. | ||
aktuelles Projekt: The last day of human being |
Okyo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
Meinste mit MOD? Oder wie sollte das genau aussehen? Jedenfalls...ich versuchte öfter "The Last Days of Human Being" downzuloaden..leider hats net gefunzt...haste noch nen anderen Link? |
||
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, der server is mal wieder, wie so oft, down. ![]() ![]() Zu deinem Problem: Code: [AUSKLAPPEN] a = a + 1 if a = 360 then a = 0 positionentity weapon,x#+sin(a)*0.08,y#,z# Musst einfach mal mit den Werten etwas rumprobieren. |
||
aktuelles Projekt: The last day of human being |
![]() |
PowerProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist etwas schneller:
Code: [AUSKLAPPEN] a = (a + 1) Mod 360
|
||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
Okyo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hat gefunzt!
Habs so gelöst.. t#=((t# + 1) +3)Mod 360 Pendeln#=Sin(t#)*0.07 Thanx... Kann man den Code bei deinem Spiel sehen? Oder nur ne exe. zum downloaden? |
||
Okyo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nö,..das funzt auch net..das andere alles auch nicht...nach einer gewissen zeit..ist die waffe ganz woanders...????? | ||
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics3D 640,480,0,2 SetBuffer BackBuffer() camera = CreateCamera() light = CreateLight() RotateEntity light,0,90,0 cube = CreateCube() UpdateNormals cube While Not KeyHit(1) If KeyDown(57) Then a = (a + 5) Mod 360 PositionEntity cube,Sin(a)*2,-3,10 RenderWorld Flip Wend End Also hier funktioniert alles. Der Code von meinem Game ist übrigens net freigegeben. |
||
aktuelles Projekt: The last day of human being |
Okyo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also, die Funktion ist schon richtig, und wenn ich nur die Pfeiltaste drücke, dann passt alles!
Problem ist aber: dass ich manchmal "Oben" und "Rechts"-Pfeiltaste und "Mouse" gleichzeitig bediene...hier kommen 3 verschiedene Dinge zusammen die sich rechnen! |
||
Okyo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
OK, alles passt perfekt! Hatte vergessen sie in die If Keyhit ..schleife zu legen!!
thanx... |
||
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab nochmal n bischen dran rumgespielt, sodass die Waffe, wie bei Quake 4, wieder zu ihrer Ursprungsposition
bewegt wird, wenn man aufhört zu gehen. Code: [AUSKLAPPEN] Graphics3D 640,480,0,2
SetBuffer BackBuffer() camera = CreateCamera() light = CreateLight() RotateEntity light,0,90,0 cube = CreateCube() UpdateNormals cube While Not KeyHit(1) If KeyDown(57) Then a = (a + 5) Mod 360 Else If (360 - a) < a Then If a < 360 Then a = a+5 Else If a > 0 Then a = a-5 End If End If PositionEntity cube,Sin(a),-3,10 RotateEntity cube,EntityPitch(cube),EntityYaw(cube),-Sin(a)*3 RenderWorld Flip Wend End |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group