Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.03.2014, 21:35
Аватар для Дзен-трансгуманист
√₋̅₁̅
Отправить личное сообщение для Дзен-трансгуманист Посмотреть профиль Найти все сообщения от Дзен-трансгуманист
 
Регистрация: 18.06.2012
Сообщений: 385

Сообщение от lgick
Вот сделал без библиотеки
Нет, не то.
Еще раз: попробуй сделать промежуточный канвас (не цепляя его к документу), туда рисуй как есть БЕЗ масштабирования. Потом этот канвас одним махом с нужным масштабированием выводишь на тот, который на экране. Что не понятно?) Но в этом случае останется мыло на стыке клеток с разными текстурами, к сожалению.
Либо делай сплошной путь для клеток с каждым отдельным видом текстур, и заполняй их паттернами. Пути должны быть подогнаны таким образом, чтобы после матричной трансформации имели целочисленные координаты.
__________________

Гейзенберг, возможно, читал этот тред.

Последний раз редактировалось Дзен-трансгуманист, 11.03.2014 в 21:42.
Ответить с цитированием
  #12 (permalink)  
Старый 11.03.2014, 22:41
Аватар для lgick
Аспирант
Отправить личное сообщение для lgick Посмотреть профиль Найти все сообщения от lgick
 
Регистрация: 23.11.2013
Сообщений: 96

Сообщение от Дзен-трансгуманист
Нет, не то.
я это для того сделал, чтоб показать, что не в библиотеке дело было!


Сообщение от Дзен-трансгуманист
Еще раз: попробуй сделать промежуточный канвас (не цепляя его к документу), туда рисуй как есть БЕЗ масштабирования. Потом этот канвас одним махом с нужным масштабированием выводишь на тот, который на экране. Что не понятно?) Но в этом случае останется мыло на стыке клеток с разными текстурами, к сожалению.
Сообщение от Дзен-трансгуманист
Либо делай сплошной путь для клеток с каждым отдельным видом текстур, и заполняй их паттернами. Пути должны быть подогнаны таким образом, чтобы после матричной трансформации имели целочисленные координаты.
зачем все так усложнять?
Причина полос при масштабировании - dpi монитора. Вот http://toster.ru/q/77462 (там в комментариях объясняется почему это происходит). Самый простой способ решения - использовать спрайты с однопиксельный сдвигом вправо и вниз. Тогда этот один пиксель будет закрывать щели

Второй способ - увеличивать с учетом dpi. Это пока не знаю как реализовать..

Последний раз редактировалось lgick, 11.03.2014 в 22:46.
Ответить с цитированием
  #13 (permalink)  
Старый 12.03.2014, 12:43
Аватар для lgick
Аспирант
Отправить личное сообщение для lgick Посмотреть профиль Найти все сообщения от lgick
 
Регистрация: 23.11.2013
Сообщений: 96

Дзен-трансгуманист,


кажется я нашел самое просто решение:

http://jsbin.com/sicuyojo/2/watch?js,output

всего-то надо было добавить эти настройки:

ctx.webkitImageSmoothingEnabled = false;
ctx.mozImageSmoothingEnabled = false;
ctx.imageSmoothingEnabled = false;
Ответить с цитированием
  #14 (permalink)  
Старый 13.03.2014, 10:11
Аватар для lgick
Аспирант
Отправить личное сообщение для lgick Посмотреть профиль Найти все сообщения от lgick
 
Регистрация: 23.11.2013
Сообщений: 96

Сообщение от Дзен-трансгуманист
Еще раз: попробуй сделать промежуточный канвас (не цепляя его к документу), туда рисуй как есть БЕЗ масштабирования. Потом этот канвас одним махом с нужным масштабированием выводишь на тот, который на экране. Что не понятно?) Но в этом случае останется мыло на стыке клеток с разными текстурами, к сожалению.
Дзен-трансгуманист,


вот сделал:

http://jsbin.com/bejevato/1/edit?js,output
Ответить с цитированием
  #15 (permalink)  
Старый 14.03.2014, 08:28
Аватар для lgick
Аспирант
Отправить личное сообщение для lgick Посмотреть профиль Найти все сообщения от lgick
 
Регистрация: 23.11.2013
Сообщений: 96

Дзен-трансгуманист,

запустил игру с fps 50 - ЦП умер))

Использовать промежуточный канвас или делать еще какие-то промежуточные операции с фрагментами для масштабировании в играх не лучшая идея)


Зато понял как сделать:

scale() не нужно использовать для увеличение всей картинки. Как я понял этот метод предназначен для увеличения какого-то участка или предмета игры.


Как же масштабировать игру?

А ее не надо масштабировать - все происходит автоматически!
У канвас есть атрибуты width и height. Также есть одноименные стили
Так вот ресайзить нужно стили и игра автоматом будет отрисовываться ровно!

Я же ресайзил атрибуты и соответственно делал больше или меньше видимую область игры!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Canvas картинка с обесцвечиванием. cheba Общие вопросы Javascript 9 31.05.2013 09:13
canvas и drawImage() jussik Элементы интерфейса 0 27.10.2012 16:57
Почему неправильно вырисовывается canvas? Amateur Events/DOM/Window 0 19.09.2012 10:45
Создание экземпляра Canvas не затрагивая HTML Tails Общие вопросы Javascript 2 09.03.2012 13:55
Добавить на canvas еще один елемент greengarlic Общие вопросы Javascript 5 22.09.2010 10:16