Развитие игровой вспышки
Текущее время: Вс янв 19, 2020 5:41 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Мысштабирование игры под различные девайсы. Что не так с анд
СообщениеДобавлено: Ср фев 24, 2016 8:57 am 
Не в сети
Аватар пользователя

Зарегистрирован: Пн авг 22, 2011 10:17 pm
Сообщений: 898
Сайт: https://russiancoders.dev/
Пишу игрушки на 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();
});


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Мысштабирование игры под различные девайсы. Что не так с анд
СообщениеДобавлено: Ср фев 24, 2016 1:17 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср сен 29, 2010 11:52 pm
Сообщений: 2705
Откуда: Одесса
Честно говоря, зум документа имеет мало общего с "резиновой версткой". Обычно все же документ растягивают на все доступное пространство без отступов. Внутри body помещается canvas, который поначалу может иметь произвольный размер.
Код:
<style>
   /* Документ лишен отступов и растянут на все доступное пространство. */
   html, body { width: 100%; height: 100%; margin: 0; }
   /* По умолчанию холст растянут по всей площади страницы. */
   canvas { position: absolute; width: 100%; height: 100%; }
</style>

А уже потом ты делаешь ресайз канваса под каждый конкретный размер экрана. Для определения доступного пространства удобно использовать window.document.body.clientWidth(Height). Важно помнить, что св-ва canvas.width(height) и canvas.style.width(height) — это не одно и то же. Первые указывают на размер вьюпорта, вторые — на масштаб канваса в документе.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Мысштабирование игры под различные девайсы. Что не так с анд
СообщениеДобавлено: Сб мар 05, 2016 9:26 am 
Не в сети
Аватар пользователя

Зарегистрирован: Чт апр 05, 2012 9:56 pm
Сообщений: 137
Откуда: Украина
Я вот сталкивался с тем, что мобильный хром при загрузке страницы просто выдает неправильные данные по размеру экрана. Для себя решил тем, что делаю отложенную проверку.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Мысштабирование игры под различные девайсы. Что не так с анд
СообщениеДобавлено: Сб мар 05, 2016 1:32 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср сен 29, 2010 11:52 pm
Сообщений: 2705
Откуда: Одесса
Да вроде не только хром. Почти все примеры обработки resize-а, что я нашел в сети, проходят через минимальный таймаут.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Мысштабирование игры под различные девайсы. Что не так с анд
СообщениеДобавлено: Вс мар 06, 2016 12:16 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Чт апр 05, 2012 9:56 pm
Сообщений: 137
Откуда: Украина
Я сам возился много с мобильными браузерами и хотел просто сказать что именно у мобильного хрома есть проблема с размером окна браузера на старте. Мне помогло.


Вернуться наверх
 Профиль Отправить e-mail  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB