ClaudiaGlade
Mitglied
Hi,
ich habe ein kleines Spiel erstellt, das für sich selbst auch richtig funktioniert.
Nun wollte ich es auf meine HP stellen und lade es deshalb in eine spiel.swf, das soweit auch funktioniert. Mit einem Button kann man dann wird diese dann geschlossen, was ebenfalls noch funktioniert. Wenn ich jetzt aber die spiel.swf neu starte (weil ich z.B. das Spiel noch mal spielen möchte) läuft die Zeit in dem Spiel selber schon rückwärts, was nicht sein soll und bei dem ersten Start auch nicht passiert. Ich denke es liegt daran das das Intervall nicht gelöscht wird wenn ich das Spiel nicht richtig beende sondern mit dem Button die übergeordnete swf lösche.
Ich probier jetzt schon seit einiger zeit herum und habe da Forum schon durchsucht aber leider noch nichts gefunden. Vielleicht kann mir ja jemand auf die Sprünge helfen...
mein Spiel (seifenblasenjagd.swf) hat 3Labels (wait, start und timeover)
der AS für wait lautet:
der AS für start lautet:
und für timeover:
in der spiel.swf steht der folgende Code:
Hoffentlich ist mein Problem verständlich und mir kann einer helfen...
ich habe ein kleines Spiel erstellt, das für sich selbst auch richtig funktioniert.
Nun wollte ich es auf meine HP stellen und lade es deshalb in eine spiel.swf, das soweit auch funktioniert. Mit einem Button kann man dann wird diese dann geschlossen, was ebenfalls noch funktioniert. Wenn ich jetzt aber die spiel.swf neu starte (weil ich z.B. das Spiel noch mal spielen möchte) läuft die Zeit in dem Spiel selber schon rückwärts, was nicht sein soll und bei dem ersten Start auch nicht passiert. Ich denke es liegt daran das das Intervall nicht gelöscht wird wenn ich das Spiel nicht richtig beende sondern mit dem Button die übergeordnete swf lösche.
Ich probier jetzt schon seit einiger zeit herum und habe da Forum schon durchsucht aber leider noch nichts gefunden. Vielleicht kann mir ja jemand auf die Sprünge helfen...
mein Spiel (seifenblasenjagd.swf) hat 3Labels (wait, start und timeover)
der AS für wait lautet:
Code:
stop();
var game:Object = new Object();
game.punkte = 0;
game.zeit = 90;
game.bedarf = 10;
game.speed = 8;
game.steigerung = 1;
game.pos = 100;
game.highscore = "seifenblasenjagd";
// Zähler
game.aktive = 0;
game.gesamtzaehler = 0;
game.time = game.zeit;
// Blendet den Mauszeiger aus
bg_mc.onRollOver = function() {
Mouse.hide();
}
bg_mc.onRollOut = function() {
this.Mouse.show();
}
// Starten des Spieles
_root.onMouseDown = function()
{
gotoAndStop("start");
}
der AS für start lautet:
Code:
stop();
// Bewegen des Pins
_root.pin_mc.onEnterFrame = function() {
this._x = _root._xmouse;
this._y = _root._ymouse;
};
// Generieren der Start-Ballons
for (var i = 1; i<=game.bedarf; i++) {
var name = "blasen_"+game.gesamtzaehler+"_mc";
// generieren einer zufälligen Position
var xpos = Math.round(Math.random()*500);
var ypos = Math.round(Math.random()*_root._height);
generiereBlasen(name, xpos, ypos);
}
id = setInterval(timer, 1000, id);
// Erneuert die Ballons und stellt den Bedarf zufrieden
_root.onEnterFrame = function() {
if (game.aktive<game.bedarf) {
for (var i = 1; i<=game.bedarf-game.aktive; i++) {
var name = "blasen_"+game.gesamtzaehler+"_mc";
// Zufällige x-Position
var xpos = Math.round(Math.random()*500);
generiereBlasen(name, xpos, _root._height);
}
}
};
function generiereBlasen(blasenname, xpos, ypos) {
// Anhängen des Ballons in die Ballonbox
_root.blasenbox_mc.attachMovie("blasen", blasenname, game.gesamtzaehler);
// Anhängen der Funktionalitäten
_root.blasenbox_mc[blasenname].onEnterFrame = function() {
_root.blasenbox_mc[blasenname]._y -= _root.game.speed;
if (this._y<-game.pos) {
// Ist oben, daher verringert er die aktive Anzahl uns eins
// und entfernt sich selbst
game.aktive--;
this.removeMovieClip();
}
};
_root.blasenbox_mc[blasenname].onMouseDown = function() {
var xpos = _root.pin_mc._x + game.pos;
var ypos = _root.pin_mc._y + game.pos;
if (this.hitTest(xpos, ypos, true)) {
// Spielt die "Platzen-Sequenz"
this.play();
}
};
// Positionierung des neuen Ballons
setProperty(_root.blasenbox_mc[blasenname], _x, xpos);
setProperty(_root.blasenbox_mc[blasenname], _y, ypos);
// Setzt den gesamtzaehler (eindeutige Nummer des Ballons) und auch
// die Nummer der aktiven Ballons
_root.game.gesamtzaehler++;
_root.game.aktive++;
}
function timer() {
// Diese Funktion wird einmal in der Sekunde aufgerufen
game.time--;
// Ausgeben der Zeit
_root.zeitbox_mc.time_txt.text = game.time;
// Zeit abgelaufen?
if (game.time<=0) {
clearInterval(id);
// Spiel ist zuende
_root.gotoAndStop("timeover");
}
// Steigerung der Geschwindigkeit
switch (game.time) {
case 80 :
game.speed += game.steigerung;
break;
case 60 :
game.speed += game.steigerung;
break;
case 40 :
game.speed += game.steigerung;
break;
case 20 :
game.speed += game.steigerung;
break;
}
}
und für timeover:
Code:
stop();
Mouse.show();
_root.punktestand_txt.text = game.punkte;
_root.onEnterFrame = function() {
};
local = SharedObject.getLocal(game.highscore);
// Erster Aufruf muss einen 0-rekord setzen
if (local.data.exist != true) {
local.data.rekord = 0;
local.data.exist = true;
local.flush();
}
if (local.data.rekord<game.punkte) {
local.data.rekord = game.punkte;
local.flush();
}
_root.rekord_txt.text = local.data.rekord;
_root.onMouseDown = function() {
gotoAndPlay(1);
};
in der spiel.swf steht der folgende Code:
Code:
stop();
button.onPress = function() {
//_root.clearInterval(id);?
_root.spiel.unloadMovie();
Mouse.show();
};
//Inhalt laden
inhalte.loadMovie("seifenblasenjagd.swf");
inhalte._x = 100;
inhalte._y = 100;
inhalte._lockroot = true;
Hoffentlich ist mein Problem verständlich und mir kann einer helfen...