Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-12-2006, 18:42   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2006
Beiträge: 7
Question MC auf Startposition setzen, dann bewegen

Hallo!
Ich möchte in einem Spiel aufsteigende Luftblasen simulieren.
Man kann einen Fisch bewegen, und die Luftblasen sollen aus seinem Mund kommen.
Also muss ich zuerst einmal die Position auf die _x und _y Koordinaten des Fisches setzen, und dann lass ich sie aufsteigen.

Das Aufsteigen funktioniert soweit ganz gut, auch die X-Achsen Position kann ich zuweisen.
Sobald ich aber die y Position zuweisen möchte, bewegt sich die Blase nicht mehr aufwärts (y-2) sondern nur noch ein Sinus ohne Y Bewegung.

Ich habe es shcon mittels do und while Schleife versucht, jedoch entweder garkein Ergebnis bekommen, oder bin in einer Endlosschleife gelandet.

Könnte mir jemand bei meinem Problem helfen?

Szene 1:
PHP-Code:
MovieClip.prototype.blase = function(x_posy_pos){
    
//Sinusbewegung der Blase und setzen der x-Position - Funktioniert
    
_x Math.sin(getTimer()*0.002)*20+x_pos;
    
//Position setzen - Funktioniert
    
_y y_pos;
    
//Blase aufsteigen lassen - Funktioniert NICHT
    
_y _y-2;

Blase:
PHP-Code:
onClipEvent(enterFrame){
//Bewegung der Blase - x_yos/y_pos
    
blase(200,200);

Vielen Dank im Voraus!

EDIT: Bei Bedarf kann ich auch die .swf bzw .fla hochladen
Sacrifice0 ist offline   Mit Zitat antworten
Alt 13-12-2006, 19:03   #2 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Naja, dieser Code im onEnterFrame ausgeführt

ActionScript:
  1. _y = y_pos;
  2. //
  3. _y = _y-2;

setzt _y auf Startwert 200, dann auf _y -= 2 und dann wieder
_y auf 200. Kann ja gar nicht klappen ...

ActionScript:
  1. MovieClip.prototype.blase = function(x_pos, yspeed){
  2.     //Sinusbewegung der Blase und setzen der x-Position - Funktioniert
  3.     _x = Math.sin(getTimer()*0.002)*20+x_pos;
  4.     //Position setzen - Funktioniert
  5.     _y += yspeed;
  6. }

--pp

Geändert von ~pyropete~ (13-12-2006 um 19:07 Uhr)
~pyropete~ ist offline   Mit Zitat antworten
Alt 13-12-2006, 19:24   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2006
Beiträge: 7
So wie dein Code ist, hab ichs zu beginn auch gehabt, nur ich möchte ja die Startposition setzen können.

Also die Blase steigt schön auf, durch das
_x = Math.sin(getTimer()*0.002)*20+x_pos;
kann ich ja die x Position setzen, nur eine y Startposition muss ich auch setzen.
Sacrifice0 ist offline   Mit Zitat antworten
Alt 15-12-2006, 10:49   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2006
Beiträge: 7
Es muss hier doch den einen oder anderen Acrionscriptcoder geben?
Danke
Sacrifice0 ist offline   Mit Zitat antworten
Alt 15-12-2006, 11:09   #5 (permalink)
liebt Skorpionin
 
Benutzerbild von Skorpion
 
Registriert seit: Apr 2003
Beiträge: 1.258
hallo Sacrifice0

willkommen im Forum.
So wie es ~pyropete~ vorschlägt ist es schon richtig. Klar, du möchtest auch die Y-Position setzen können. Aber das erstmalige Setzen der Y-Position sollte natürlich ausserhalb deiner onClipEvent(enterFrame) - Methode passieren:

ActionScript:
  1. _y = irgendwas;
  2. onClipEvent(enterFrame){
  3. //Bewegung der Blase - x_yos/y_speed
  4.     blase(200,-2);
  5. }
Skorpion ist offline   Mit Zitat antworten
Alt 15-12-2006, 20:05   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2006
Beiträge: 7
Also da ich am Verzweifeln bin lade ich mal die swf hoch. Ich hoffe mir kann jemand helfen!
Ich möchte die Blase vom Fisch aus Aufsteigen lassen

http://files.to/get/302222/19346/Fisch.rar
Sacrifice0 ist offline   Mit Zitat antworten
Alt 16-12-2006, 09:26   #7 (permalink)
liebt Skorpionin
 
Benutzerbild von Skorpion
 
Registriert seit: Apr 2003
Beiträge: 1.258
Ich denke, am besten schmeisst du die blase-prototype-Funktion raus und ergänzt dein onClipEvent(enterFrame) bei der Blase wie folgt:

PHP-Code:
onClipEvent(enterFrame)
{
    if(
this.init == undefined)
    {
        
this._x _root.fish._x;
        
this._y _root.fish._y;
        
this.xpos this._x;
        
this.init true;
    }
    
    
//Sinusbewegung der Blase und setzen der x-Position - Funktioniert 
   
this._x Math.sin(getTimer()*0.002)*20this.xpos;
   
//Blase aufsteigen lassen, Neustart wenn oberer Rand erreicht
   
if(--this._y<0this.init undefined;

Skorpion ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele