Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-12-2008, 17:09   #1 (permalink)
<°)))><
 
Benutzerbild von Goldesel
 
Registriert seit: Apr 2008
Beiträge: 38
Hilfe bei Steuerung in einem Spiel

Hallo, ich bastel gerade an einem kleinen Knobelspiel in dem man einen Schlitten mit Hilfe von richtig gesetzten Kurven um Hindernisse ins Ziel navigieren muss.

Das Spielfeld kacheln, Kurven platzieren und diese drehen klappt wunderbar. Jetzt bin ich gerade dabei die Schlittensteuerung zu basteln stoße da aber auf ein paar Probleme.

Hab einen Screenshot angehängt um euch mal einen optischen Eindruck zu geben. Das Problem ist das ich abfragen muss, aus welcher Richtung der Schlitten kommt, wie die Kurve rotiert ist und wohin die Reise weitergehen soll. Ich hab da was geschrieben das irgendwie schon funktioniert, aber fehlerbehaftet ist und irgendwie viel zu kompliziert aussieht. Kann mir da einer helfen?

Hier mal mein Script der Schlittensteuerung bisher:
PHP-Code:
t.onEnterFrame = function() {
        if (
kurven_mc[this._name].hitTest(_root.schlitten.hit)) {
            if (
kurven_mc[this._name]._rotation == && yadd == (speed * (-1)) && xadd == 0) {
                    
trace("von unten nach Rechts");
                    
xadd speed;
                    
yadd 0;
                    
TweenLite.to(schlitten,schlittenDrehSpeed,{_rotation:schlitten._rotation 90ease:Sine.easeInOutoverwrite:1});

            } else if (
kurven_mc[this._name]._rotation == 90 && yadd == (speed * (-1)) && xadd == 0) {
                    
trace("von unten nach Links");
                    
xadd speed * (-1);
                    
yadd 0;
                    
TweenLite.to(schlitten,schlittenDrehSpeed,{_rotation:schlitten._rotation 90ease:Sine.easeInOutoverwrite:1});

            } else if (
kurven_mc[this._name]._rotation == 180 && yadd == && xadd == speed) {
                    
trace("von Links nach Oben");
                    
xadd 0;
                    
yadd speed * (-1);
                    
TweenLite.to(schlitten,schlittenDrehSpeed,{_rotation:schlitten._rotation 90ease:Sine.easeInOutoverwrite:1});

            } else if (
kurven_mc[this._name]._rotation == 90 && yadd == && xadd == speed) {
                    
trace("von Links nach Unten");
                    
xadd 0;
                    
yadd speed;
                    
TweenLite.to(schlitten,schlittenDrehSpeed,{_rotation:schlitten._rotation 90ease:Sine.easeInOutoverwrite:1});
                    
            } else if (
kurven_mc[this._name]._rotation == 180 && yadd == speed && xadd == 0) {
                    
trace("von Oben nach Links");
                    
xadd speed * (-1);
                    
yadd 0;
                    
TweenLite.to(schlitten,schlittenDrehSpeed,{_rotation:schlitten._rotation 90ease:Sine.easeInOutoverwrite:1});

            } else if (
kurven_mc[this._name]._rotation == -90 && yadd == speed && xadd == 0) {
                    
trace("von Oben nach Rechts");
                    
xadd speed;
                    
yadd 0;
                    
TweenLite.to(schlitten,schlittenDrehSpeed,{_rotation:schlitten._rotation 90ease:Sine.easeInOutoverwrite:1});

            } else if (
kurven_mc[this._name]._rotation == -90 && yadd == && xadd == (speed*(-1))) {
                    
trace("von Rechts nach Oben");
                    
xadd 0;
                    
yadd speed * (-1);
                    
TweenLite.to(schlitten,schlittenDrehSpeed,{_rotation:schlitten._rotation 90ease:Sine.easeInOutoverwrite:1});

            } else if (
kurven_mc[this._name]._rotation == && yadd == && xadd == (speed*(-1))) {
                    
trace("von Rechts nach Unten");
                    
xadd 0;
                    
yadd speed;
                    
TweenLite.to(schlitten,schlittenDrehSpeed,{_rotation:schlitten._rotation 90ease:Sine.easeInOutoverwrite:1});

        }
    }
}; 
Vielen Dank im Voraus.
Goldesel ist offline   Mit Zitat antworten
Alt 18-12-2008, 17:24   #2 (permalink)
<°)))><
 
Benutzerbild von Goldesel
 
Registriert seit: Apr 2008
Beiträge: 38
Screenshot vergessen...
Angehängte Grafiken
Dateityp: gif schlitten.gif (129,6 KB, 14x aufgerufen)
Goldesel ist offline   Mit Zitat antworten
Alt 18-12-2008, 18:47   #3 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Zitat:
Zitat von Goldesel Beitrag anzeigen
Das Problem ist das ich abfragen muss, aus welcher Richtung der Schlitten kommt
immer die aktuelle position in variablen festhalten.
if (altX!=neuX || altY!=neuY) {
// z.b. hat sich bewegt
}
// für die nächste abfrage
altX=neuX;
altY=neuY;

Zitat:
Zitat von Goldesel Beitrag anzeigen
wie die Kurve rotiert ist und wohin die Reise weitergehen soll.
".. Das Spielfeld kacheln.."
hast du kein array des spielplans angelegt?
var plan = [];
plan.push([0,0,1,1,2,0]);
plan.push([0,0,4,0,2,0]);
z.b. 1 für rechts, 3 für links, 2 für runter, 4 für hoch ...
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (18-12-2008 um 18:49 Uhr)
hgseib 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 19:00 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele