ХОЛСТ: ШМУП фоновый рисунок - PullRequest
0 голосов
/ 25 марта 2012
bgY += ( enemySpeed + heroSpeed ) / 2;
ctx.drawImage( bg, bgX, bgY - gameHeight );
ctx.drawImage( bg, bgX, bgY );
if( bgY > gameHeight )
{
    bgY = 0;
}

Я использую код выше, чтобы нарисовать фон на холсте.

Работает хорошо, за исключением небольшого лага, когда рисуется новое изображение. Непосредственно перед тем, как нарисовать, игрок может увидеть, как фон не имеет изображения на секунду вверху. (Это не моя главная проблема, но вы тоже можете помочь с этим)

В любом случае, теперь для главной проблемы:

Я не уверен, но я думаю, что когда изображения перемещаются ниже холста, они фактически не удаляются. Не приведет ли это к замедлению игры / снижению производительности через некоторое время?

Есть ли способ предотвратить это?

1 Ответ

0 голосов
/ 25 марта 2012

По поводу вашего первого вопроса: оператор if должен быть перед вызовами drawImage, но не после.Вы также можете заменить его операцией по модулю, которая должна быть сохранена для всех соответствующих случаев.

bgY += ( enemySpeed + heroSpeed ) / 2;
bgY %= gameHeight;
ctx.drawImage( bg, bgX, bgY - gameHeight );
ctx.drawImage( bg, bgX, bgY );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...