#html #animation #canvas #sprite
#HTML #Анимация #холст #спрайт
Вопрос:
Я работал с некоторыми экспериментами с холстом HTML5 и провел серию технических экспериментов редактировать https://github.com/AlexChesser/jsSprite (Клавиши WSAD, Q, E, X в демонстрационных версиях клавиш Minotaur, добавьте C и B в демо-версии Zombie)
Если вы посмотрите на демонстрационный номер 1: 01-draw_minotaur.php
вы увидите изображение, нарисованное непосредственно на холсте, и оно выглядит красиво и четко.
Однако, если сравнить с демонстрацией, где я поместил Минотавра на холст, а затем нарисовал этот холст на родительском, результат получается размытым: 03-drawn_minotaur_on_canvas.php
Как я могу убедиться, что изображение холста на холсте не размыто?
РЕДАКТИРОВАТЬ полный код доступен в GIT: https://github.com/AlexChesser/jsSprite
правка 2: обратите внимание, что Google пометил мой домен как вредоносный (что, честно говоря, поскольку хостинг-провайдер был взломан, был краткий момент, когда там было какое-то вредоносное ПО) вместо того, чтобы оставить уязвимую ссылку открытой, я обновил, чтобы указывать исключительно на источник в github.
Комментарии:
1. Первая ссылка теперь помечена Google как вредоносная. 🙁
2. Спасибо. Я обновил ссылку. Оно было помечено как вредоносное, и я удалил его, но нет гарантии, что мой веб-хостинг не будет взломан снова.
3. мне кажется, пришло время для нового веб-хостинга. 🙂
Ответ №1:
Это сложная задача!
Для canvas на самом деле вы не используете Style для определения его ширины и высоты.
Таким образом, устанавливая стиль холста, вы фактически искажаете холст.
Таким образом, написание <canvas id="game" width=512 height=512> </canvas>
на вашей главной странице решит вашу проблему.
Я протестировал это, чтобы подтвердить, что это действительно была проблема, поэтому, если все еще что-то не так, дайте мне знать, и я отправлю вам свой код.
Кроме того , разве это не должно быть просто MainContext.drawImage(m.canvas, 0, 0);
? В противном случае вы раздавите Минотавра?
Комментарии:
1. Я проверю прямо сейчас! Еще раз спасибо, Саймон. … (редактировать) 100% верно по обоим пунктам. Ранее Mino не выходил сжатым, но это было что-то странное со стилем. Теперь все заработало. Я думаю , что теперь я наконец могу перейти к базовой логике игры! Еще раз спасибо!
2. пожалуйста, не кормите Минотавра, просто вежливо улыбнитесь и переходите к следующему животному.