ich bin ein weiterer neuling in AS 3.0 und mir fehlt noch ein bisschen die vorstellungskraft beim logischen denken, das man vorm eigentlichen programmieren braucht.
ich werde noch eine weile am spiel arbeiten und möchte nicht das forum mit etlichen threads vermüllen, deshalb habe ich das mal als WorkInProgress gekennzeichnet.
ich möchte dass in den 45 Sekunden Spielzeit die Sonne in einem Bogen von links nach rechts (wie in echt eben) wandert und dann quasi untergeht. das würde ich aber gern mit actionscript statt einer zeitleistenanmimation umsetzen.
In einer For-Schleife geht das eigentlich nicht, denn dann wird gleich die gesamte Laufbahn gezeichnet, aber mit einem Timeout oder bei enterFrame immer den Winkel etwas erhöhen wär ne Möglichkeit:
ActionScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
var angle:Number, radius:Number, time:Number, positionX:Number, positionY:Number;
time = 45; // seconds for 180°
angle = 0;
radius = 200;
Danke für die Antworten. In der Zwischenzeit bin ich auf eine andere ganz praktikable Lösung gekommen, indem ich der Sonne eine elliptische Bahn zugewiesen habe. Nur bewegt diese sich jetzt unheimlich schnell.
Wie kann ich also im folgenden Code (wie bei Dir, jomac) die Zeit für das Event ändern?
var winkel:Number = 0;
var radiusX:Number = 480;
var radiusY:Number = 300;
var startX:Number = 420;
var startY:Number = 300;
sun_mc.addEventListener(Event.ENTER_FRAME,moveBall);//Sonnenlaufbahn als Ellipse
oder du nimmst ENTER_FRAME und passt den Winkel abhängig von der Framerate und der gewünschten Zeit an --> winkel += GESAMTWINKEL / ZEITINSEKUNDEN / FRAMERATE
ginge auch, enterframe frisst aber mehr performance... daher würde ich eher zum timer tendieren...lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
das problem ist, je höher ich den wert setze, desto mehr ruckelt die animation dann auch. d.h. irgendwie wird nicht die dauer festgelegt sondern scheinbar nach wieviel frames er die aktuelle position wieder anzeigt.
oder verstehe ich da was falsch?
kann man denn nicht die time wie bei jomac einfach festlegen für diese funktion?
je höher ich den wert setze, desto mehr ruckelt die animation
das ist ja klar, weil du mit dem wert den zeitabstand festlegst, wann die funktion aufgerufen wird.. je kleiner desto öfter, je grösser desto seltener ;-)lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
Ich verzweifle total an der Funktion für das abschießen der Viecher. Ich kann KEINE Movieclips auf der Bühne anklicken. Ich wollte mir austracen lassen obs klappt, auch anhand eines Beispielrechteckes, aber es spuckt nichts aus.
was kann denn das verursachen?
EDIT:
okay ich habs. es liegt daran, dass ich einen MC als cursor hab. das hab ich erstmal auskommentiert.
aber wie kann ich dann sagen, dass der MC wie ein normaler cursor funktionieren soll? hab es so gemacht:
function showCrossHairCursor():void
{
//Mouse.hide();
//crossHairCursor_mc.visible = true;
//stage.addEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove);
}
function handleMouseMove(event:MouseEvent):void
{
moveCrossHairCursor();
}
function moveCrossHairCursor():void
{
crossHairCursor_mc.x = stage.mouseX;
crossHairCursor_mc.y = stage.mouseY;
}