NightmareZ
@NightmareZ
Разработчик

Мысштабирование игры под различные девайсы. Что не так с андроидом?

Пишу игрушки на HTML5 фиксированного размера под десктоп и мобильные платформы. То, что в файрфоксе в CSS свойство zoom не определено - меня сейчас не сильно беспокоит. Меня беспокоит, почему в десктопном хроме размеры экрана определяются корректно, а вот в мобильном нет... $(window).height() даёт вообще чёрти что, window.screen.availHeight - уже по-лучше, но всё равно не спасает положение. Посмотрите, пожалуйста, мой скрипт, и подскажите, что я делаю не так.

$(document).ready(function() {
	function applyScale() {
		var scaleFactor = 1, scaleFactorX = 1, scaleFactorY = 1;
		var width, height;

		// why adnroid is so strange?
		if (isAndroid()) {
			var width = window.screen && window.screen.availHeight || $(window).width();
			var height = window.height && window.screen.availWidth || $(window).height();
		} else {
			var width = $(window).width();
			var height = $(window).height();
		}

		if (width < 1450) {
			scaleFactorX = width / 1450;
		}

		if (height < 1024) {
			scaleFactorY = height / 1024;
		}

		scaleFactor = scaleFactorX < scaleFactorY ? scaleFactorX : scaleFactorY;

		if (scaleFactor < 0.1) {
			scaleFactor = 0.1;
		}

		$('body').css('zoom', scaleFactor);
	}

	$(window).resize(function() {
		applyScale();
	});

	applyScale();
});
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы