| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #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;
} 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;
} 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 } Worban kann das liegen? Oder mach ich was Grundlegendes flasch? Danke schonmal Ihr seid Super |
| | |
| | #17 (permalink) |
| Techniker 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) |
| | |
| | #18 (permalink) | |
| Neuer User Registriert seit: Sep 2011
Beiträge: 22
| Zitat:
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. | |
| | |
| | #19 (permalink) | |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
| Zitat:
es ist sinnlos in der schule vom nachbarn ab zu schreiben. man bekommt davon nur einen dicken hals. 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) | |
| | |
| | #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");
} 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. |
| | |
| | #21 (permalink) |
| Techniker 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 |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ä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 |