Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.10.2023, 19:13
Аватар для dandiablo
Интересующийся
Отправить личное сообщение для dandiablo Посмотреть профиль Найти все сообщения от dandiablo
 
Регистрация: 27.11.2022
Сообщений: 10

Изменение скорости вызова интервала
Доброго времени суток!

Почти до делал змейку на canvas, осталась увеличение скорости змейки.

И так:

Это общий код игры из файла game

this.speedBomb = 3000;

this.speedSnake = 250;

//отрисовка игры

        this.gameInterval = setInterval(() => {

            if (!this.gamePaused) {

                this.update();

            }

        }, game.speedSnake);

        //отрисовка бомбы

        this.bombInterval = setInterval(() => {

            if (!this.gamePaused) {

                this.board.createBomb();

            }


Это код файла змейки, естественно, они связаны

game.snake = {

    game: game
..........................
}

//Если новая ячейка является яблоком

                if (this.game.playSound) {

                    this.game.sounds.food.play();
                }

                this.game.playerScore++;

                this.game.myScore.innerText = this.game.playerScore;

                if (this.game.playerScore % 5 === 0) {

                    clearInterval(this.game.gameInterval);

                   this.game.speedSnake -= 1;

                   this.gameInterval = setInterval(() => {

                        if (!this.game.gamePaused) {

                            this.game.update();

                        }

                    }, this.game.speedSnake);

                    clearInterval(this.game.bombInterval);

                    this.game.speedBomb -= 100;

                    console.log(this.game.speedBomb);

                    this.bombInterval = setInterval(() => {

                        if (!this.game.gamePaused) {

                            this.game.board.createBomb();

                        }

                    }, this.game.speedBomb);
                }

                this.game.board.createFood();
            }


И, казалось бы, все работает, и this.game.speedSnake выводится с положенным ей числом, уменьшенным на 1.

Но скорость змейки на вид растет явно не по this.game.speedSnake

Когда this.game.speedSnake = 248, змейка уже бегает, как будто скорость отнимается по 10 или побольше.

Как так? Что не правильно?

Благодарю!
Ответить с цитированием
  #2 (permalink)  
Старый 11.10.2023, 22:59
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,709

Какие то куски кода.
Непонятно почему все время разное
this.gameInterval и this.game.gameInterval
game.speedSnake и this.game.speedSnake
Почему во втором файле в стр 20 this.game.gameInterval, а в стр 24 уже this.gameInterval?
Ответить с цитированием
  #3 (permalink)  
Старый 12.10.2023, 07:44
Аватар для dandiablo
Интересующийся
Отправить личное сообщение для dandiablo Посмотреть профиль Найти все сообщения от dandiablo
 
Регистрация: 27.11.2022
Сообщений: 10

Это по тому, что я сам дурак... Увы... По не внимательности.
Интервалы и переменные были созданы изначально в файле game, змея есть яблоки в файле snake. И мне самому захотелось сделать сложность увеличением скорости.
Ответить с цитированием
  #4 (permalink)  
Старый 12.10.2023, 08:55
Аватар для dandiablo
Интересующийся
Отправить личное сообщение для dandiablo Посмотреть профиль Найти все сообщения от dandiablo
 
Регистрация: 27.11.2022
Сообщений: 10

Получилось! Значит, идея была правильная, но реализация кривая.
Спасибо на указанные ошибки. Возможно, еще кому то поможет.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запустить выполнение слайдера в модальном окне, только после вызова окна? Lefseq Общие вопросы Javascript 1 20.12.2019 15:23
Изменение скорости анимации в зависимости от положения ползунка range Alex_D181 jQuery 2 03.08.2015 20:06
Изменение скорости скрола страницы Drm1804 Элементы интерфейса 1 13.04.2015 20:49
Изменение содержания окна в зависимости от места его вызова Bushetta Общие вопросы Javascript 2 07.06.2012 16:12
setInterval. Временное изменение интервала. doniv jQuery 3 05.09.2011 14:44