我是新手!嗨,你可以叫我Bri!在使用'Macromedia Flash Professional 8'制作的游戏中,我需要一些使用Actionscript-2编码的帮助。 (我知道它有点过时了;我很快升级了)!
这是一场引人注目的比赛:我有鸡蛋从天而降。当我的捕手抓到一个鸡蛋时,得分上升一点。我的命中测试有效,我有两种类型的鸡蛋掉落:蓝色和粉红色。 (被抓时他们都值1分)。
我刚为游戏添加了一个计时器。 我需要做的是:当计时器达到零时,游戏进入“游戏结束”屏幕,以便玩家可以重新开始游戏。 问题是,当计时器达到零时,游戏进入“游戏结束”屏幕,但鸡蛋继续下降超过“gameover”屏幕。
我需要他们停止摔倒。
我尝试将 stop(); 代码放在我的时间轴中“gameon”标签的第一帧和最后一帧上。我已经在第一帧和最后一帧的代码的顶部和底部放置 stop(); ,以及在我想要播放器头的新帧(没有代码的其余部分)上放置移动。我也进入了代码本身并尝试“pop”,“shift”,和“拼接”我的数组。我还尝试了基本的 .removeMovieClip 函数来删除每个鸡蛋本身( BlueEgg,PinkEgg,newClip,这个< =我已经尝试了所有这些来回电我的函数,你会看到我的代码中是如何引用它们的。)
我认为我的问题是...... 1)我不知道在代码中,为鸡蛋数组放置函数以停止下降。 ('计时器'的代码应该在顶部,还是应该在'落蛋'代码之后?如果之后,在'计时器'代码中我可以调用函数来停止蛋''堕落“行动?该行动是否应该在'定时'代码中,或者它应该单独坐在另一条线上)? 2)我不知道如何成功地使鸡蛋停止下降(我弹出,移动,拼接,清除,移除等等?我如何编写任何函数代码) ?
这是我目前的代码:
newClip = _root.attachMovie('Uni', 'Uni', -1);
Uni._y = Stage.height-315;
Uni._x = Stage.width-225;
function moveUni() {
if (Uni._x<30) {
Uni._x = 30;
}
if (Uni._x>520) {
Uni._x = 520;
}
if (Key.isDown(Key.RIGHT)) {
dx = 15;
Uni._xscale = -100;
} else if (Key.isDown(Key.LEFT)) {
dx = -15;
Uni._xscale = 100;
} else {
dx = 0;
}
Uni._x += dx;
if (Uni._x<30) {
Uni._x = 30;
}
if (Uni._x>520) {
Uni._x = 520;
}
}
this.onEnterFrame = function() {
moveUni();
};
//
depth = 0;
var score = 0;
var allEggs = new Array();
function makeNewClip() {
clearInterval(ranID);
ran = (Math.random()*4000)+1000;
ranID = setInterval(makeNewClip, ran);
ran = Math.ceil(Math.random()*2);
if (ran == 1) {
newClip = _root.attachMovie('BlueEgg', 'BlueEgg'+depth, depth++);
} else {
newClip = _root.attachMovie('PinkEgg', 'PinkEgg'+depth, depth++);
}
allEggs.push(newClip);
trace("allEggs");
newClip._x = Math.random()*Stage.width;
newClip._y = -50;
newClip.speed = 13;
newClip._xscale = newClip._yscale=50;
newClip.onEnterFrame = function() {
this._y += this.speed;
if (Math.abs(Uni._x-this._x)<=25) {
if (Math.abs(Uni._y-this._y)<=25) {
trace('hit');
this.removeMovieClip();
score++;
score_txt.text = score;
}
}
};
}
//
var intID;
var endTime = getTimer()+(5*1000);
makeTime();
function updateTimer() {
var t = endTime-getTimer();
if (t>0) {
makeTime();
showTime(t);
} else {
stopTimer();
showTime(0);
}
}
function makeTime() {
clearInterval(intID);
intID = setInterval(updateTimer, 100);
gotoAndStop(20);
}
function showTime(t) {
timer_txt.text = (t/1000) >> 0;
}
function stopTimer() {
clearInterval(intID);
}
//
makeNewClip();
//
makeNewClip();
newClip = _root.attachMovie('TallGrassOverlay', 'TallGrassOverlay', 1);
TallGrassOverlay._y = Stage.height-230;
TallGrassOverlay._x = Stage.width-585;
TallGrasssOverlay不做任何事情,只是作为一个额外的图形,以帮助使游戏流行到玩家的眼睛。但它的图形需要放在移动捕手上,Uni。
此外,应该注意的是,我还没有开始编码实际重启游戏的按钮。
提前非常感谢!
-Bri