Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Неправильно работает счётчик в игре. (http://www.flasher.ru/forum/showthread.php?t=138356)

Aqa 05.04.2010 21:50

Неправильно работает счётчик в игре.
 
Люди!Помогите,пожалуйста!Есть игра,довольно простая.Писалась под руководством преподавателя.А когда стала дорабатывать одна-сплошные неполадки!Может кто-нибудь знает,почему счётчик на -- иногда срабатывает по несколько раз сразу,а иногда не срабатывает вообще?(с 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 минуты
Разобралась...


Часовой пояс GMT +4, время: 13:41.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.