Показать сообщение отдельно
  #7 (permalink)  
Старый 30.09.2018, 11:02
Аспирант
Отправить личное сообщение для drakulawz Посмотреть профиль Найти все сообщения от drakulawz
 
Регистрация: 13.08.2018
Сообщений: 79

Сообщение от рони
для чего вам нужен setInterval в данном случае
В данном случаи он не нужен, но для работы всей программы без него вообще ничего не будет рисоваться. Я же выложил только ту часть кода с которой у меня проблема. и там не setInterval будет, а вот так:
// файл engine.js:
var _renderer = (function () {
    return requestAnimationFrame || webkitRequestAnimationFrame ||
        mozRequestAnimationFrame ||
        oRequestAnimationFrame ||
        msRequestAnimationFrame;
})();

var _engine = function () {
    console.log('The game loop is not initialized!');
};

var startGame = function (game) {
    if (typeof game == 'function') {
        _engine = game;
    }
    gameLoop();
};

var setGame = function (game) {
    if (typeof game == 'function') {
        _engine = game;
    }
};

var gameLoop = function () {
    _engine();
    _renderer(gameLoop);
};

    // файл со скриптом инициализации всех функций script.js:
    var game = function () {
        fillAll('#ccc');
        for (var a1 = 0; a1 < 3; a1++) {
            for (var a2 = 0; a2 < 3; a2++) {
                var dW = Math.ceil(width / 3),
                    dY = Math.ceil(height / 3);
                area.init(dW * a1, dY * a2, dW, dY);
                area.draw(dW * a1, dY * a2, dW, dY);
            }
        };
        target.draw();
        player.move();
        player.draw();
    };

    var menu = function () {
        fillAll('#ccc');
        for (var a1 = 0; a1 < 3; a1++) {
            for (var a2 = 0; a2 < 3; a2++) {
                var dW = Math.ceil(width / 3),
                    dY = Math.ceil(height / 3);
                area.init(dW * a1, dY * a2, dW, dY);
                area.draw(dW * a1, dY * a2, dW, dY);
            }
        };
        player.draw();
        if (isAnyKeyDown()) {
            setGame(game);
        }
    };

    startGame(menu);


Если можно как-то проще сделать то буду рад увидеть это.
Ответить с цитированием