Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-12-2005, 10:56   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2002
Beiträge: 345
spielfigur steuern

hallo,
hab folgendes script
PHP-Code:
maxTempo 8;
tempoV 0;
player.onEnterFrame = function() {
    if (
Key.isDown(Key.UP) && tempoV>-maxTempo) {
        
tempoV -= 1.0;
    }
}; 
player hüpft aber nicht
flashmaus ist offline   Mit Zitat antworten
Alt 06-12-2005, 11:07   #2 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
PHP-Code:
tempoV>-maxTempo 
das gibts nicht! müsste wohl so heissen:
PHP-Code:
tempoV >= maxTempo 
Des weiteren ist es klar, dass bei dir im Film nix passiert!
Du weisst zwar der Variable ständig einen tiefern Wert zu, allerdings wird einfach immer die Variable verändert! Du müsstest da schon jeweils der x-Position eines MovieClips den Wert zuweisen!
Also so irgendwie:

PHP-Code:
maxTempo 8
tempoV 0
player.onEnterFrame = function() { 
    if (
Key.isDown(Key.UP) && tempoV>=maxTempo) { 
        
tempoV -= 1.0;
        
pfad.zuMC._x tempoV;
    } 
}; 
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 06-12-2005, 11:17   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2002
Beiträge: 345
habs jetzt so gemacht, tut sich aber auch nix
PHP-Code:
maxTempo 8;
tempoV 0;
_root.onEnterFrame = function() {
    if (
Key.isDown(Key.UP) && tempoV>=maxTempo) {
        
tempoV -= 1.0;
        
player._y tempoV;
    }
}; 
ich will einfach dass der player langsam hochspringt und wenn ich die taste loslasse wieder langsam herunterfällt

Geändert von flashmaus (06-12-2005 um 11:25 Uhr)
flashmaus ist offline   Mit Zitat antworten
Alt 06-12-2005, 11:29   #4 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
trace mal irgendwas, wenn er springen sollte... Wenn dann nichts wiedergegeben wird, stimmt die IF-Abfrage so nicht, wenn was geht, muss es an der Zuweisung liegen. Und sonst lege das onEnterFrame mal auf einen MovieClip und nicht auf _root!
Dann mit dem langsamen aufspringen und langsameren runterfallen wirst du dich wohl noch ein bisschen mehr mit Physik auseinandersetzen müssen!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 06-12-2005, 11:29   #5 (permalink)
nekoupour
Gast
 
Beiträge: n/a
naja ist ja klar...tempoV ist ja auch ständig kleiner als maxTempo oder irre ich mich?

Nun ja, ich würde empfehlen mit Listener zu arbeiten.

PHP-Code:
var mKL:Object=new Object();
mKL.onKeyDown=function(){
if (
Key.isDown(Key.UP) && tempoV>=maxTempo) {

_root.onEnterFrame=function(){
tempoV -= 1.0;
        
player._y tempoV;
    

}

}
}
Key.addListener(mKL); 
  Mit Zitat antworten
Alt 06-12-2005, 11:37   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2002
Beiträge: 345
danke erstmal,
geht irgendwie auch nicht
kann man das nicht auch einfacher lösen ?

Geändert von flashmaus (07-12-2005 um 10:55 Uhr)
flashmaus ist offline   Mit Zitat antworten
Alt 06-12-2005, 21:00   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2002
Beiträge: 345
lösungsansatz

PHP-Code:
tempoV 0;
maxTempo 16;
function 
steuern(wen) {
    if (
Key.isDown(Key.UP) && tempoV>-maxTempo) { // beschleunigen
        
tempoV -= 1.0;
        
_y +=tempoV;
        if (
tempoV 0.0tempoV += 0.25//abbremsen
        
    
}
}
_root.onEnterFrame = function() {
    
_root.steuern(player);
}; 
geht auch - nur das ganze funktioniert dann wenn der Key.UP gedrückt wird. sobald er losgelassen wird stoppt die bewegung des players. wie kann ich das ändern ?
flashmaus ist offline   Mit Zitat antworten
Alt 06-12-2005, 21:02   #8 (permalink)
nekoupour
Gast
 
Beiträge: n/a
tempoV>-maxTempo ??? darf man denn sowas als syntax schreiben?
  Mit Zitat antworten
Alt 06-12-2005, 22:02   #9 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
@nekoupour:
PHP-Code:
var 1;
trace(> -a); 
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 06-12-2005, 22:06   #10 (permalink)
Neuer User
 
Registriert seit: Jun 2002
Beiträge: 345
jetzt nochmal so
bewegung nach oben geht aber nach unten NICHT
?????
PHP-Code:
tempoV 0;
maxTempo 8;
function 
steuern(wen) {
    
// beschleunigen
    // Oben OK
    
if (Key.isDown(Key.UP) && tempoV>-maxTempo) {
        
tempoV -= 1.0;
    }
    
// Unten
    
if (Key.isDown(Key.DOWN) && tempoV<maxTempo) {
        
tempoV += 1.0;
    }
    
// Abbremsen
    // Oben OK
    
if (tempoV<0.0) {
        
tempoV += 0.25;
    }
    
// Unten
    
if (tempoV>0.0) {
        
tempoV -= 0.25;
    }
}
_root.onEnterFrame = function() {
    
_root.steuern(player);    
    
//_x += tempoH;
    
_y += tempoV;
}; 
flashmaus ist offline   Mit Zitat antworten
Alt 06-12-2005, 22:34   #11 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Geht doch, ist bloss etwas durcheinander dein Code...

PHP-Code:
var tempoV 0
var 
maxTempo 8
function 
steuernwen )

    
    if (
Key.isDown(Key.UP) && tempoV>-maxTempo) { 
        
tempoV -= 1.0
    } 
   
    if (
Key.isDown(Key.DOWN) && tempoV<maxTempo) { 
        
tempoV += 1.0
    } 
    
    if (
tempoV<0.0) { 
        
tempoV += 0.25
    } 
   
    if (
tempoV>0.0) { 
        
tempoV -= 0.25
    } 

_root.onEnterFrame = function() { 
    
this.steuern();     
    
this.player._y += this.tempoV
}; 
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 07-12-2005, 02:44   #12 (permalink)
nekoupour
Gast
 
Beiträge: n/a
wenn man sich das genauer anschaut, kann es garnicht funktionieren....

Das würde eine langsame Beschleunigungsbewegung abgeben, ohne Rückkehr..
  Mit Zitat antworten
Alt 07-12-2005, 03:51   #13 (permalink)
nekoupour
Gast
 
Beiträge: n/a
Proebier es mal hiermit....noch nicht getestet:

PHP-Code:
var tempo:Number 10;
var 
GrenzeOben:Number 0;
var 
GrenzeUnten:Number player_mc._y;
var 
jump:Boolean true;
var 
KeyListener:Object = new Object();
KeyListener.onKeyDown = function() {
    if (
Key.isDown(Key.UP) && jump == true) {
        
jumper(player_mc);
    }
};
var 
jumper = function (mc:MovieClip) {
    
jump false;
    
mc.onEnterFrame = function() {
        
this._y -= tempo++;
        if (
this._y<=GrenzeOben) {
            
this._y += tempo++;
            if (
this._y>=GrenzeUnten) {
                
_root.jump true;
                
tempo 10;
                
delete this.onEnterFrame;
            }
        }
    };
};
Key.addListener(KeyListener); 
Ich glaube da gibts ne ständige "Variablenüberschreibung", aber ne Lösung ist schon nahe.

Ich brauche SCHLAAAF...hilft mir!
  Mit Zitat antworten
Alt 07-12-2005, 10:54   #14 (permalink)
Neuer User
 
Registriert seit: Jun 2002
Beiträge: 345
danke erstmal, funktioniert aber nicht
ich häng mein script von oben nochmal an, die (Key.isDown(Key.UP) funktioniert.
Was noch nicht funktioniert ist die (Key.isDown(Key.DOWN)
Warum nicht ???
Was muss ich an meinem Code tun ?
Danke nochmal
Angehängte Dateien
Dateityp: zip jumpTest.fla.zip (5,3 KB, 15x aufgerufen)
flashmaus ist offline   Mit Zitat antworten
Alt 07-12-2005, 11:05   #15 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Also... was du machen musst, ist deiner Funktion sagen, wen du bewegen willst!
Du sagst zwar:
PHP-Code:
_root.steuern(player
in der Funktion verwendest du allerdings den übergebenen Parameter nirgends!!!

deshalb solltest du die beiden Anweisungen entsprechend erweitern:
PHP-Code:
wen._rotation 
Denn du willst ja den übergebenen Film (im Parameter "wen") drehen!
Bei mir hat es nach erfolgter Anpassung problemlos funktioniert.
Er "springt" zwar hin und her beim Auf- bzw. Abfahren, das rührt allerdings von was ganz anderem her:

_rotation beeinflusst die Drehung eines MC's. Gedreht wird der MC um seinen Registrierungspunkt. Liegt dieser in der oberen linken Ecke (wie bei deinem Player), dann wird der MC um die obere Linke ecke gedreht. Damit du also ein Springen verhindern kannst, musst dun ur den Registrierungspunkt deines Players in der Bibliothek in die Mitte des Players bewegen.
(Am besten gehst du also in den MC "jumper" in deiner Bibliothek, wählst alle Elemente aus und verschiebst die x- und y-Werte jeweils auf -28.5. Et voilà)
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha 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 10:04 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele