Flashhilfe.de - Flash Community

moorhuhn klon - WIP [Flash CS3]

Forum > Flash Entwicklung > moorhuhn klon - WIP

 


AntwortenRegistrieren Seite1  

 22.06.2010, 09:51 
Beiträge: 16
Registriert: Jun 2010

moorhuhn klon - WIP
hallo nochmal.

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.

ist das überhaupt möglich? wenn ja wie?

vielen dank.
Geändert von pdpdpd-2010 am 22.06.10 um 10:33 Uhr

 22.06.2010, 18:06Re1
Benutzerbild von skoda
Beiträge: 1152
Wohnort: Boston MA
Registriert: Feb 2006

naja in ner for schleife




abfragen wo der clip ist dann

immer bischen weiter x plus

je nahere er dem mittelpunkt is detso weniger y
no one died when clinton lied
 22.06.2010, 18:17Re2
Beiträge: 89
Wohnort: CH
Registriert: Jun 2010

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;

element.addEventListener(Event.ENTER_FRAME, myEnterFrameFunction);
function myEnterFrameFunction(e:Event){
  angle += Math.PI / (time * FRAMES_PER_SECOND);
  if(angle >= 2 * Math.PI){
    angle = 0;
  }
  positionX = Math.cos(angle) * radius;
  positionY = Math.sin(angle) * radius;//...
}
 
nicht sichtbar bei eingeloggten Mitgliedern1&1 Webhosting
 23.06.2010, 06:57Re3
Beiträge: 16
Registriert: Jun 2010

Themenautor/in

Hallo Leute!

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

function moveBall(e:Event):void {
   sun_mc.x = startX+Math.cos(winkel)*radiusX;
   sun_mc.y = startY+Math.sin(winkel)*radiusY;
   winkel += 0.15;
}


danke für die hilfe!!

pd
Geändert von pdpdpd-2010 am 23.06.10 um 07:00 Uhr

 23.06.2010, 08:00Re4
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

hi,
nimm anstelle von ENTER_FRAME einen TIMER:


ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var winkel:Number = 0;
var radiusX:Number = 480;
var radiusY:Number = 300;
var startX:Number = 420;
var startY:Number = 300;

var timer:Timer = new Timer(5000); // hier mit dem wert rumspielen...

timer.addEventListener(TimerEvent.TIMER,moveBall);
timer.start();


function moveBall(e:Event):void {
     sun_mc.x = startX+Math.cos(winkel)*radiusX;
     sun_mc.y = startY+Math.sin(winkel)*radiusY;
     winkel += 0.15;
}
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
Geändert von springer am 23.06.10 um 08:01 Uhr

 23.06.2010, 14:13Re5
Beiträge: 89
Wohnort: CH
Registriert: Jun 2010

oder du nimmst ENTER_FRAME und passt den Winkel abhängig von der Framerate und der gewünschten Zeit an --> winkel += GESAMTWINKEL / ZEITINSEKUNDEN / FRAMERATE
 
nicht sichtbar bei eingeloggten Mitgliedern
 23.06.2010, 14:40Re6
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

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...
 23.06.2010, 15:38Re7
Beiträge: 16
Registriert: Jun 2010

Themenautor/in

hallo leute...

erstmal danke für die hilfe mit dem timer.

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?

oder die geschwindigkeit für sun_mc?
Geändert von pdpdpd-2010 am 23.06.10 um 15:45 Uhr

 23.06.2010, 15:43Re8
Beiträge: 89
Wohnort: CH
Registriert: Jun 2010

Auch mit einem timer, passe den Winkel an, nicht einfach die Dauer.
 23.06.2010, 15:52Re9
Beiträge: 16
Registriert: Jun 2010

Themenautor/in

ach...

jetzt kapier ich wie das zusammenspielt...danke! jetzt krieg ich das mit der sonne hin!

ich werde hier im thread bald noch ein paar fragen stellen. ich werde euch selbstverständlich das fertige spiel in spätestens 2 wochen präsentieren.

danke bisher, ahoi

pd
 23.06.2010, 16:47Re10
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

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...
 25.06.2010, 16:10Re11
Beiträge: 16
Registriert: Jun 2010

Themenautor/in

Hallo!

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;
}
Geändert von pdpdpd-2010 am 25.06.10 um 16:21 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