Flashhilfe.de - Flash Community

Raumschiff flüssige rotation [Flash 10]

Forum > ActionScript 3.0 > Raumschiff flüssige rotation

 


AntwortenRegistrieren Seite1  

 22.09.2010, 13:05 
Beiträge: 44
Registriert: Jul 2009

Raumschiff flüssige rotation
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import fl.motion.MotionEvent;

var lastShipFrame:int = 0;
ship_mc.gotoAndStop(0);


this.addEventListener(Event.ENTER_FRAME,renderFrame);



function renderFrame(evt:Event):void
{
 
     var getAngle:Number = Math.atan2(stage.mouseY - ship_mc.y,stage.mouseX - ship_mc.x) * 180 / Math.PI;
     var RoundAngle:int = Math.round(getAngle + 180);
     shipRotation(RoundAngle);
 
}

function shipRotation(Angle:int):void
{
 
     var Rotation:* = Angle % 360;
     lastShipFrame = 32 / 360 * Rotation + 1;
     ship_mc.gotoAndStop(lastShipFrame);
 
}




Hallo !

ich bau mir gerade ein spiel, aber jetzt weis ich nicht mehr so weiter .

Ich möchte das mein schiff , wenn es sich dreht , nicht direkt auf die positon ist.
Also wenn es z.b auf lastShipFrame = 14 ist und zu 32 muss, dass es von 14 auf 15 , 16 , 17 .... 32 bewegt und nicht direkt von 14 auf 32.

Ich möchte halt eine richtige rotation. ^^ danke


*edit
hab ein beispiel von TweenMax ! so sollte es mit der animation dann auch gehen.
TweenMax.to(mc, 1, {shortRotation:{rotation:270}});

aber leider habe ich keine ahnung wie ich da meine frams von shipRotation rein bekomme !
Geändert von Executor am 22.09.10 um 13:15 Uhr

 22.09.2010, 13:17Re1
Beiträge: 188
Registriert: May 2007

den aktuelle frame kriegt man mit mc.currentFrame.
zum nächsten frame gelangst du mit mc.nextFrame()

http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/display/MovieClip.html#nextFrame%28%29

jetzt könntest du eine enterFrameListener starten und vom currentFrame zum nextFrame springen, bis Ziel erreicht.

habs aber nicht ausprobiert...
das könnte auch helfen.
http://www.greensock.com/timelinelite/
 22.09.2010, 13:44Re2
Beiträge: 44
Registriert: Jul 2009

Themenautor/in

ja das ist gut und schön ^^ aber so hab ich jetzt ein neues problem :(


wenn ich z.b auf Frame 28 bin und zu 5 gehen will , soll er wissen wie rumm er sich drehen soll ! also den kürzere weg finden.
 
nicht sichtbar bei eingeloggten Mitgliedern1&1 Webhosting
 22.09.2010, 13:59Re3
Beiträge: 188
Registriert: May 2007

du könntest die differenz bilden?

var start = 28
var end = 5
var max = 32

start -end  = x
(max -start ) + end  = y

if (x>y)
{
mc.nextFrame();
}
else
{
mc.prevFrame();
}

oder so ähnlich.
 22.09.2010, 14:34Re4
Beiträge: 44
Registriert: Jul 2009

Themenautor/in

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import fl.motion.MotionEvent;
import gs.*; 
import gs.easing.*;

var lastShipFrame:int = 0;
ship_mc.gotoAndStop(0);


this.addEventListener(Event.ENTER_FRAME,renderFrame);



function renderFrame(evt:Event):void
{

    var getAngle:Number = Math.atan2(stage.mouseY - ship_mc.y,stage.mouseX - ship_mc.x) * 180 / Math.PI;
    var RoundAngle:int = Math.round(getAngle + 180);
    shipRotation(RoundAngle);

}

function shipRotation(Angle:int):void
{

    var Rotation:* = Angle % 360;
    var teest:*=TweenMax.to(folger, 1, {shortRotation:{rotation:Rotation}});

    var teste:* = teest.target["rotation"];
    var RoundAngle:int = Math.round(teste +360);
    Rotation = RoundAngle % 360;
    lastShipFrame = 32 / 360 * Rotation + 1;
    trace(lastShipFrame)
   
   
    ship_mc.gotoAndStop(lastShipFrame);

}




danke hab es jetzt so hinbekommen ^^ hab mir einfach ein zweites mc genommen und das mit shortRotation rotiren lassen und mit den ergebnixx lass ich mir die frams berechnen. ;)
Geändert von Executor am 22.09.10 um 14:35 Uhr

 
Themen
Ähnliche Beiträge zum Thema
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de