Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-01-2012, 14:11   #16 (permalink)
Neuer User
 
Registriert seit: Sep 2011
Beiträge: 22
Man kann alles noch besser machen schätze ich mal

Momentan will ich veruschen dass man nicht ein Auto sondern drei zur auswahl hat.

Ich hab also drei Buttons die jeweils das jeweilige Auto per attachMovie aus der Bibliothek laden.

Sieht dann so aus:

Code:
on (release)
{
	gotoAndPlay(2);	

	_root.attachMovie("car2", "car", _root .getNextHighestDepth());
	_root.car._x = 63.8;
	_root.car._y = 358.6;
	
	_root.car._height = 26.1;
	_root.car._width = 13.2;
}
So Funktuniert auch ganz Prima, das Auto wird mir genau vor die Startlinie gesetzt.
In der bibliothek liegt auf dem Auto folgender Code:

Code:
onClipEvent (load)
{
    
    speed = new Number(0);
    this.swapDepths(_root.drawing);
    _root.clearBtn.swapDepths(this);
    hi = Math.sin(_rotation * 1.745329E-002) * 10;
    ip = Math.cos(_rotation * 1.745329E-002) * 10;
    iks = _x - ip;
    ips = _y - hi;
    iks2 = _x + ip;
    ips2 = _y + hi;
	
	
}

		
// Fahrzeugbewegung \\
   
   if (Key.isDown(38) & !Key.isDown(17))
	
    {	
		//Oben
        speed = speed + 1.500000E+000/4;

    } 
// end if \\

    if (Key.isDown(40) & !Key.isDown(17))
    {
		//Unten
        speed = speed - 7.500000E-001/4;

    }
// end if

    if (Key.isDown(17))
    {
        speed = speed - speed / 10;
        if (Key.isDown(39))
        {	
			//Rechts
            setProperty("", _rotation, _rotation + speed / 2.5);
        } 
// end if
		
        if (Key.isDown(37))
        {	
			//Links
            setProperty("", _rotation, _rotation - speed / 2.5);
        } 
// end if
		
    } // end if
    if (Key.isDown(39))
    {	//Rechts
        if (speed < 5 && speed >= 0)
        {
            setProperty("", _rotation, _rotation + 2 * speed);
        }
        else if (speed < 0)
        {
            setProperty("", _rotation, _rotation + 5.500000E+000 * speed / 15);
        }
        else
        {
            setProperty("", _rotation, _rotation + 5.500000E+000);
        } // end else if
        speed = speed * 9.500000E-001;
    } // end if
    if (Key.isDown(37))
    {	//Links
        if (speed < 5 && speed >= 0)
        {
            setProperty("", _rotation, _rotation - 2 * speed);
        }
        else if (speed < 0)
        {
            setProperty("", _rotation, _rotation - 5.500000E+000 * speed / 15);
        }
        else
        {
            setProperty("", _rotation, _rotation - 5.500000E+000);
        } // end else if
        speed = speed * 9.500000E-001;
    } // end if
    if (Math.abs(speed) > 20)
    {
        speed = 20;
    } // end if
    if (speed < -10)
    {
        speed = -10;
    } // end if
    speed = speed * 9.800000E-001;
    g = Math.sin(_rotation * 1.745329E-002) * speed;
    m = Math.cos(_rotation * 1.745329E-002) * -speed;
    setProperty("", _x, _x + g);
    setProperty("", _y, _y + m);
    hi = Math.sin(_rotation * 1.745329E-002) * 10;
    ip = Math.cos(_rotation * 1.745329E-002) * 10;
    _root.k1 = hi;
    _root.k2 = ip;
    if (Key.isDown(17))
    {
        _root.drawing.lineStyle(3, 14540253, 100);
    }
    else
    {
        _root.drawing.lineStyle(3, 15658734, 100);
    } // end else if
    _root.drawing.moveTo(iks, ips);
    _root.drawing.lineTo(_x - ip, _y - hi);
    _root.drawing.moveTo(iks2, ips2);
    _root.drawing.lineTo(_x + ip, _y + hi);
    iks = _x - ip;
    ips = _y - hi;
    iks2 = _x + ip;
    ips2 = _y + hi;
	

}
Den Code müsst ihr jetzt nicht extra durchlesen, er geht ja auch wenn Ich den Movieclip auf der Bühne platziere, nur nicht wenn er in der Bibliothek ist.

Dann bekomm ich die Meldung, dass ein onClipEvent nur bei gültigen Instanzen klappt, womit er ja auch recht hat also dacht ich mir ersetz ich das duch eine Funktion.

Code:
  this.onEnterFrame = function()
{ //weitere Code }
Das Auto bewegt sich dann mit der geschwindikkeit von 0.375 die Sich aus der Berechnung von Oben zusammensetzt wenn ich die Pfeil nach Oben Taste drück. Aber mir scheint die variable "speed" setzt er immer auf 0 bzw es addiert sich nicht.

Worban kann das liegen? Oder mach ich was Grundlegendes flasch?

Danke schonmal Ihr seid Super
DonLuzin ist offline   Mit Zitat antworten
Alt 18-01-2012, 14:23   #17 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
onClipEvent (load)
und noch einiges andere ist urälteste syntax. bitte unbedingt überarbeiten !!!!!!!!!!!
prüfe mit trace-anweissungen, ob auch wirklich alles aufgerufen wird. speziel eben ob das event onClipEvent (load) geworfen wird.


speed = speed + 1.500000E+000/4;
was ist den das ?????????????

speed += 1.5/4;
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (18-01-2012 um 14:25 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 19-01-2012, 08:14   #18 (permalink)
Neuer User
 
Registriert seit: Sep 2011
Beiträge: 22
Zitat:
Zitat von hgseib Beitrag anzeigen
onClipEvent (load)
und noch einiges andere ist urälteste syntax. bitte unbedingt überarbeiten !!!!!!!!!!!
Ja das ist eben des. Ich hab den Code von einem bekannten übernommen, er hat ihn vor einiger Zeit erstellt.
Ich hab allerdings keinerlei Ahnung durch was ich es ersetzen müsste.

Mit Trace Anweisung komme ich nicht in die onClipEvent() weil es keine gültige Instanz ist.
Ersetze ich das durch eine Funktion kommt er in eine Endlosschleife rein.
Aber Er greift dann nicht auf den weiteren Code zu.
Wie müsste ich es denn abändern damit er den kompletten Code übernimmt und sich nicht in einer Endlosschleife verankert ?

_global.speed = new Number(0); => Das steht in der Endlosschlefie, daher (denke ich) setzt er die variable speed immer wieder auf Null und des Auto macht so kein mucks... bin echt ratlos

Danke für deine schnellen Antwroten.
DonLuzin ist offline   Mit Zitat antworten
Alt 19-01-2012, 09:44   #19 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Zitat:
Zitat von DonLuzin Beitrag anzeigen
Ja das ist eben des. Ich hab den Code von einem bekannten übernommen, er hat ihn vor einiger Zeit erstellt.
ja das kommt davon. programmiere dein zeugs selbst, dann weisst du um was es geht ;-)
es ist sinnlos in der schule vom nachbarn ab zu schreiben. man bekommt davon nur einen dicken hals.

Zitat:
Zitat von DonLuzin Beitrag anzeigen
Ich hab allerdings keinerlei Ahnung durch was ich es ersetzen müsste.
durch garnichts!
schreibe den script aus onClipEvent(load) direkt in die zeitleiste.
wenn das mc auf die bühne gebracht wird, dann wird einmalig der script der zeitspur abgearbeitet.
du kannst das mit einfachen trace-befehlen überprüfen (und natürlich mit dem debugger)
trace("ich bin hier 13");
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (19-01-2012 um 09:47 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 19-01-2012, 12:20   #20 (permalink)
Neuer User
 
Registriert seit: Sep 2011
Beiträge: 22
glaub mir das nächste Programm das ich schrieb besteht zu 100% von mir xD

OK es ist nun keine Endlosschleife mehr.
Das AC das auf dem Auto in der bibiliothek liegt, da gehts noch nicht.
Wenn ich in die erste Zeile ein trace(); mach, gibt er es mir aus aber nicht auf die If anwendungen wie zum beispiel:

Code:
if (Key.isDown(40) & !Key.isDown(17))
    {
		//Unten
        _global.speed -= 7.5/4;
       trace("hallo2");
    }
Da greift er nicht drauf zu. Woran kann des liegen?
Ich hab wie du gesgat hast den Inhalt wo _global.speed = new Number(0);
steht, direkt in die Zeitleiste, da greift er mir ja auch rein, einmalig.
DonLuzin ist offline   Mit Zitat antworten
Alt 19-01-2012, 12:50   #21 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
wo befindet sich dieser scriptteil?
der muss in einer funktion liegen, die per event ausgelöst wird. entweder ein keyevent oder enterframe. ersteres wird ausgelöst, wenn man ein key drückt, letzteres (hierfür ungeeigneter) wird ständig aufgerufen.

weil wenn das nur in der zeitspur liegt, dann wird's nur einmal aufgerufen (siehe bemerkung zu onClipEvent(load)) aber gewiss nicht, wenn du auf eine tastatur klickst.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 19-01-2012, 13:05   #22 (permalink)
Neuer User
 
Registriert seit: Sep 2011
Beiträge: 22
DU BIST EIN GENIE

Es geht tatsächlich

Ich könnt mich tausendmal bedanken

Der Scriptteil lag auf dem MC und hat mit " this.onEnterFrame = function()" dann auch Funktuniert.
DonLuzin 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Rennspiel - Denkanstoss JackJones Flash MX 3 22-11-2007 16:59
rennspiel able Am Rande 3 15-05-2007 09:22
cacheAsBitmap bei Rennspiel McSodbrenner Spielkonzepte und Spieleprogrammierung 7 12-12-2005 13:46
Rennspiel - Tutorial Ernschd Flash 4 und Flash 5 2 16-01-2005 19:31
positionsanzeige im rennspiel nalin Spielkonzepte und Spieleprogrammierung 1 08-11-2004 12:07


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:35 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele