Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-05-2008, 15:12   #1 (permalink)
XVX
Neuer User
 
Registriert seit: May 2008
Beiträge: 19
Fahrstuhlsimulation

Hallo,

ich bin Actionscript-Anfänger und hab da ein Problem.
Ich möchte meine Figur mittels eines Fahrstuhls in andere Etage bewegen. Die Wahl der Etage funktion über die Taste 1,2 und 3. Dies funktioniert reibungslo, drückt man eine der Tasten fährt der Fahrstuhl mit meiner Figur in die jeweilige Etage.
Mein problem liegt nun darin, dass, wenn ich aus der 1.Etage oder 3. Etage in die 2. Etage fahr, meine Figur nicht mehr "aussteigen" kann.
Ich hab schon vieles versucht, komm leider nicht darauf.
Wenn mir da jemand helfen könnte, wär das cool.

Ich habe im Anhang die .fla-Datei hinzugefügt.

vielen Dank im vorraus

MfG
Sepp(l)

Hier ist das script dazu (Skript befindet sich auf dem MC der Figur):

on (release, keyPress "1")
{aktion_runter=1;
aktion_hoch=0;
aktion_mitte=0;}
on (release, keyPress "2")
{aktion_mitte=1;
aktion_runter=0;
aktion_hoch=0;}
on (release, keyPress "3")
{aktion_hoch=1;
aktion_runter=0;
aktion_mitte=0;}

onClipEvent(enterFrame)
{
//Script für Bewegung der Figur
if(Key.isDown(Key.DOWN))
{this._visible=0;}
else{this._visible=1;}

if(Key.isDown(Key.RIGHT)&&this._x<=500 )
{this.play();
this._xscale=100;
this._x=this._x+15;}
if(this._x>=400 && Key.isDown(Key.RIGHT))
{this.play();}

if(Key.isDown(Key.LEFT)&&this._x>=50 )
{this.play();
this._xscale=-100;
this._x=this._x-15;}
if(this._x<=50 && Key.isDown(Key.LEFT) )
{this.play();}

if(Key.isDown(Key.UP)&& this._y>=300 && this._visible==1 &&beschraenkung==0 && _root.keller._y>=500)
{ this._y=this._y-200;}
else if(this._y<=300)
{this.stop();
this._y=this._y+25;}


//Fahrstuhlsimulation

if(this.hitTest(_root.sinken))
{

if(this._x<=_root.sinken_rechts._x-20 && this._x>=_root.sinken_links._x+20&&aktion_runter== 1)
{

_root.keller._y=_root.keller._y-5;
_root.etage._y=_root.etage._y-5;
_root.etage1._y=_root.etage1._y-5;
_root.etage2._y=_root.etage2._y-5;
_root.etage3._y=_root.etage3._y-5;
_root.schrift1._y=_root.schrift1._y-5;
_root.schrift2._y=_root.schrift2._y-5;
_root.schrift3._y=_root.schrift3._y-5;

this._x=_root.sinken._x;
this.stop();
beschraenkung=1;


}
if(_root.sinken._y>_root.etage1._y)
{aktion_runter=0;}


if(this._x<=_root.sinken_rechts._x-20 && this._x>=_root.sinken_links._x+20&&aktion_hoch==1)
{

_root.keller._y=_root.keller._y+5;
_root.etage._y=_root.etage._y+5;
_root.etage1._y=_root.etage1._y+5;
_root.etage2._y=_root.etage2._y+5;
_root.etage3._y=_root.etage3._y+5;
_root.schrift1._y=_root.schrift1._y+5;
_root.schrift2._y=_root.schrift2._y+5;
_root.schrift3._y=_root.schrift3._y+5;

this._x=_root.sinken._x;
this.stop();
beschraenkung=1;


}
if(_root.sinken._y<=_root.etage3._y)
{aktion_hoch=0;}


if(this._x<=_root.sinken_rechts._x-20 && this._x>=_root.sinken_links._x+20&&aktion_mitte==1 )
{
if(_root.sinken._y>_root.etage2._y)
{_root.keller._y=_root.keller._y+5;
_root.etage._y=_root.etage._y+5;
_root.etage1._y=_root.etage1._y+5;
_root.etage2._y=_root.etage2._y+5;
_root.etage3._y=_root.etage3._y+5;
_root.schrift1._y=_root.schrift1._y+5;
_root.schrift2._y=_root.schrift2._y+5;
_root.schrift3._y=_root.schrift3._y+5;

this._x=_root.sinken._x;
this.stop();
beschraenkung=1;}




if(_root.sinken._y<_root.etage2._y)
{_root.keller._y=_root.keller._y-5;
_root.etage._y=_root.etage._y-5;
_root.etage1._y=_root.etage1._y-5;
_root.etage2._y=_root.etage2._y-5;
_root.etage3._y=_root.etage3._y-5;
_root.schrift1._y=_root.schrift1._y-5;
_root.schrift2._y=_root.schrift2._y-5;
_root.schrift3._y=_root.schrift3._y-5;

this._x=_root.sinken._x;
this.stop();
beschraenkung=1;}










}
if(_root.sinken._y==_root.etage2._y-1)
{aktion_mitte=0;
beschraenkung=0;}



}
else
{beschraenkung=0;
aktion_runter=0;
aktion_hoch=0;
aktion_mitte=0;}
}
Angehängte Dateien
Dateityp: rar fahrstuhl_simulation.rar (6,2 KB, 14x aufgerufen)
XVX ist offline   Mit Zitat antworten
Alt 13-05-2008, 14:34   #2 (permalink)
XVX
Neuer User
 
Registriert seit: May 2008
Beiträge: 19
niemand eine Idee? oder eine andere Lösung?
XVX ist offline   Mit Zitat antworten
Alt 13-05-2008, 15:37   #3 (permalink)
ich versuchs ja
 
Benutzerbild von netterkerl1981
 
Registriert seit: Sep 2007
Ort: Kassel
Beiträge: 281
Zitat:
Zitat von XVX Beitrag anzeigen
niemand eine Idee? oder eine andere Lösung?
Naja... Angeschaut hab ichs mir schon... Der Effekt tritt bei mir auch auf und zwar nur bei Ebene 2.
Du blockst doch während der Fahrt die Bewegung deines Männekens. Und gibts die hinterher wieder frei. Anscheinend haste das bei Ebene 2 vergessen. Löscht du evtl ein onEnterFrame und setzt es nicht neu?!

PS: Es gibt auch eine Funktion hier um Code schöner zu gestalten. Dann kann man das besser lesen und es wird sich noch so manacher finden, der sich die Mühe macht sich da durchzuarbeiten... (evtl.) ;-)
netterkerl1981 ist offline   Mit Zitat antworten
Alt 13-05-2008, 15:42   #4 (permalink)
XVX
Neuer User
 
Registriert seit: May 2008
Beiträge: 19
mh das mit der sperre hat ich schon probiert, und ich hab die sperre ja auch eigentlich wieder aufgehoben, deshalb wundert es mich ja, weil eigentlich müßt es gehen.
Das mit dem onEnterFrame werde ich mal probieren, mal schauen.

sry wegen der hässlichen formatierung des codes, ich bin hier brandneu und muss da erst reinfinden, wie die ansprüche der helfer sind

danke aber für deine antwort.

wenn ich selbst ne lösung noch find, schreib ich sie hier rein, wer weiß wem es wie nutzen kann.

MfG
XVX ist offline   Mit Zitat antworten
Alt 13-05-2008, 15:51   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
nicht persönlich nehmen ;-) man muss nicht alles kosten, was einsteiger kochen.
vermutlich hatte niemand lust, sich durch dieses etagenwirrwarr durch du hangeln?

fang mal ganz neu an, sowas ist immer gut.
z.b.
du bewegst alle objekte einzeln. das ist schon mal unfug und wird dich noch in aller grösste beträngnis bringen. angenommen, in den etagen sollen sich 10 gegenstände befinden, die müsstest du dann ja auch alle einzeln bewegen ...

erzeuge ein haus (in diesem movieclip sind dann alle etagen drin)
und je etage ein eigenes movieclip für alles, was in der etage drin sein soll (vorraussichtlich kannst du das etagen-mc mehrfach verwenden).
und auch die figur befindet sich im haus

haus
-- figur
-- aufzug
-- etage0
---- text in etage0 usw.
-- etage1
---- text in etage1 usw.
...

so
bei einem etagenwechsel:
- aufzug geht nach oben
- figur geht nach oben
- haus geht nach unten (und damit auch die figur und der aufzug - die dadurch relativ gesehen stehen bleiben. weil eigentlich wird nicht das haus bewegt sondern die "kamera", also die ansicht auf das ganze.)


nächster punkt:
spaghetticode heissen scripte, die so ewig lang und unübersichtlich wie spaghetti sind. erstelle für jede aufgabe eine funktion und benenne die so, das jeder verstehen kann was da passiert. und nicht mischen was nicht zusammen gehört
z.b.
figur_laufen(rechts);
fahrstuhl_bewegen_etage(2);
haus_ansicht_etage(2);
usw.
kleine einheiten kann man besser auf fehler untersuchen als das komplette ganze.

und wenn möglich, berücksichtige das alles universel gehen sollte (klassen). auch wenn du es hier nicht vor hast. so sollten z.b. deine fahrstuhl-funktionen auch mit mehreren fahrstühlen funktionieren; ohne das man die umprogrammieren muss. sinngemäss alle anderen funktionen.
dazu gehört z.b. auch, das der fahrstuhl automatisch alles mitnimmt, was 'in ihm steht'. also wenn z.b. später mal deine figur etwas trägt, das muss das automatisch mit nach oben/unten genommen werden. muss jetzt noch nicht sein - nur so als denkanstoss.


nächster punkt:
_root.keller._y-5;
vektorisieren. alles in variable schreiben, das erhöht das verständnis und erleichtert änderungen:
fahrstuhl_speed=5;
...
_root.keller._y - fahrstuhl_speed;


etwas logisch korrekt aufbauen ist sinnvoller als in einem haufen nach irgend etwas zu suchen ;-)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (13-05-2008 um 16:21 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 13-05-2008, 15:57   #6 (permalink)
ich versuchs ja
 
Benutzerbild von netterkerl1981
 
Registriert seit: Sep 2007
Ort: Kassel
Beiträge: 281
Dann erstmal willkommen im Flash Forum :-)

Ich werd mir bei Zeiten dein fla mal genauer anschauen... Ist ehrlich gesagt ziemlich durcheinander, was ich da gesehen hab... :-)
netterkerl1981 ist offline   Mit Zitat antworten
Alt 13-05-2008, 16:10   #7 (permalink)
XVX
Neuer User
 
Registriert seit: May 2008
Beiträge: 19
hui und die ist schon ordentlich gehalten, dachte ich

ich versuch beide Versionen mal umzusetzen, mal schauen, an der Ordnung werd ich auch arbeiten

danke für Eure Hilfe
XVX ist offline   Mit Zitat antworten
Alt 14-05-2008, 11:46   #8 (permalink)
XVX
Neuer User
 
Registriert seit: May 2008
Beiträge: 19
konnt es selber lösen, danke an alle die es probiert haben.

Lag daran, dass die Aufhebung der Beschränkung an der falschen Stelle stand.

Wen der jetzt funktionierende Code-Kauderwelsch noch interessiert, kann mir gern schreiben.

MfG
XVX 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 09:32 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele