Способ плавного перемещения большого изображения?
У меня очень широкое изображение снежной сцены с несколькими деревьями и снежным шаром на вершине. Игра состоит в том, чтобы снежный ком перепрыгивал через деревья. Итак, у меня есть изображение, перемещающееся влево как своего рода боковой скроллер, но, что бы я ни пытался, оно очень медленное. У меня есть набор предложений if, чтобы проверить, не столкнулся ли шар с деревом, и я попытался использовать setInterval, watch.js и requestAnimationFrame.js без особой удачи.
Вот фрагмент того, что я делаю
$('#StartScroller').click(function() {
sideScroller.css('left', '-10000px');
snowball.css({
'transform': 'rotate(12000deg)',
'width': '100px',
'height': '100px'
});
$('sideScroller').watch('left', function(){
//1
if(
(sideScroller.position().left < -960
&& sideScroller.position().left > -1200 + mobileDelay)
&& (snowball.css('bottom') == '75px')
){hitTree()}
Кто-нибудь знает альтернативу, которая сделает его более гладким? Теперь это немного болит глаз.
1 ответ
Просто нашел очень простое решение: вместо того, чтобы использовать левое позиционирование для перемещения изображения, я использовал transform: translate. Намного лучше. Тем не менее, я хотел бы услышать любые альтернативы использованию setInterval для мониторинга изменений. Йорам упомянул 3d перевод. Я попробовал обычный translate и translateX, но я не уверен, заметил ли я разницу.