Люди!Помогите,пожалуйста!Есть игра,довольно простая.Писалась под руководством преподавателя.А когда стала дорабатывать одна-сплошные неполадки!Может кто-нибудь знает,почему счётчик на -- иногда срабатывает по несколько раз сразу,а иногда не срабатывает вообще?(с counter++ вроде всё в порядке).Игра такая-ловля всякой фигни,летящей сверху.
Это код,написанный в первом верхнем фрейме.

Код AS1/AS2:
stop();
function initGame(){
firstRock = 1;
lastRock = 0;
spills = 0;
totalRocks = 50;
timeSinceLastRock = 0;
attachMovie("Bear","bear",99999)
bear._x=275;
bear._y=330;
riverSpeed = -1;
counter=0;
}
function moveBear() {
if (bear._currentFrame > 4) {
// if during a spill, don't look at keys
dx = 0;
} else if (Key.isDown(Key.RIGHT)) {
// bear rows right
dx = riverSpeed;
bear.gotoAndStop("left");
} else if (Key.isDown(Key.LEFT)) {
// bear rows left
dx = -riverSpeed;
bear.gotoAndStop("right");
} else {
// no key
dx = 0;
bear.gotoAndStop("still");
}
// move the bear and limit that movement
bear._x += dx;
if (bear._x <= 50) bear._x = 50;
if (bear._x >= 500) bear._x = 500;
// go a little faster
if (riverSpeed <20) riverSpeed += 5;
}
function newRock() {
if (timeSinceLastRock > 5) {
if (lastRock < totalRocks) {
if (Math.random() < .1) {
lastRock++;
attachMovie( "rocks", "rock"+lastRock, lastRock );
_root["rock"+lastRock]._x = Math.random()*250+150;
_root["rock"+lastRock]._y = 0;
f = int(Math.random()*_root["rock"+lastRock]._totalFrames) + 1;
_root["rock"+lastRock].gotoAndStop(f);
timeSinceLastRock = 0;
_root["rock"+i].hit = false;
}
}
}
timeSinceLastRock++;
}
function moveRocks() {
for (i=firstRock;i<=lastRock;i++) {
x = _root["rock"+i]._x;
y = _root["rock"+i]._y +riverSpeed;
if (y >430) {
removeRock(i);
}
else if ((_root["rock"+i]).hitTest(_root.bear)){
_root["rock"+i]._x=3000;
_root.counter++;
riverSpeed =0;
if (_root.counter > 15) {
removeAll();
gotoAndPlay("win");
}
}
// continue to move rock
_root["rock"+i]._y =y;
if ((_root["rock"+i]).hitTest(_root.www)){
_root.counter--;
riverSpeed =0;
if (_root.counter < -15) {
removeAll();
gotoAndPlay("los");
}}
}
function removeRock(n) {
// take away rock movie clip
_root["rock"+n].removeMovieClip();
// reset range of rocks to move
firstRock = n+1;
}
if (n == totalRocks) {
removeAll();
gotoAndPlay("win");
}
}
function removeAll() {
// take away all remaining rocks
for (i=firstRock;i<=lastRock;i++) {
_root["rock"+i].removeMovieClip();
}
bear.removeMovieClip();
}
Спасибо!
Добавлено через 16 часов 32 минуты
Разобралась...