Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: искажение изображения
Форумы портала PHP.SU » » Графика в PHP » искажение изображения

Страниц (2): [1] 2 »
 

1. Barakuda - 07 Мая, 2014 - 15:34:42 - перейти к сообщению
всем привет.
Есть карта игры которая генерится на лету из отдельных png`шек.
Столкнулся с тем, что конечное изображение не такое как задумано.
Куда копать?
использую следующие фун-и:
-imagecreatetruecolor
-imagecolorallocatealpha
-imagecreatefrompng
-imagesavealpha
-imagecreate
-imagecopyresampled
-imagecopy

Может это из-за какой то функции? В документации ничего не нашел, или может чего-то не понял.
если нужно - выложу код
2. Barakuda - 07 Мая, 2014 - 15:36:09 - перейти к сообщению
дерево
3. Barakuda - 07 Мая, 2014 - 15:36:42 - перейти к сообщению
камень
4. Barakuda - 07 Мая, 2014 - 16:53:59 - перейти к сообщению
нашел в чем проблема, она в использовании imagecreate вместо imagecreatetruecolor в двух местах, в виде подложки. Заменил, но теперь прозрачности нет, хоть и сохраняю её при помощи imagesavealpha...
(Добавление)

вопрос закрыт, разобрался сам.
нужно было залить созданную кантинку прозрачным цветом
PHP:
скопировать код в буфер обмена
  1.  
  2. imagesavealpha($newBl, true); // устанавливаем флаг, "держать" прозрачность
  3. $alpha = imagecolorallocatealpha($newBl, 0, 0, 0, 127); // выбираем прозрачный цвет
  4. imagefill($newBl, 0, 0, $alpha); // заливаем изображение прозрачным цветом
  5.  
5. IGORtrue - 08 Мая, 2014 - 00:51:02 - перейти к сообщению
Вы на php и js создаёте карту? Очень интересно просто..
6. DelphinPRO - 08 Мая, 2014 - 01:02:18 - перейти к сообщению
Карту все же лучше рисовать яваскриптом на канве
7. Barakuda - 08 Мая, 2014 - 01:22:49 - перейти к сообщению
IGORtrue пишет:
Вы на php и js создаёте карту? Очень интересно просто..

да. перепробовал много способов, этот пока что нахожу самым гибким.
При загрузке страницы делается аякс запрос, генерируется карта, сохраняется на сервере с зашифрованным именем. На страничке эта картинка подается в бэкграунд дива. Через три секунды новый аякс обновляет картинку и в кэлбеке обновляет фон дива. И так каждые три секунды. При переходе игроком на другую клетку один аякс обновляет данные сервера, другой аякс в кэлбеке снова обновляет фон.
Поверх этого фона, при помощи библиотеки svgJs накладываю эффекты...
Правда не знаю как это будет работать под нагрузкой. От флэша и прочего - отказался сразу, изначально хотел делать всё на чистом php, но со временем понял что этого мало )
8. Zuldek - 08 Мая, 2014 - 09:37:04 - перейти к сообщению
DelphinPRO пишет:
Карту все же лучше рисовать яваскриптом на канве

От задач зависит. Есть движки где в угоду простоте и производительности использются дивы и пых для графики.
Однако, в связи с взрывным ростом Webgl, WebSocket и связанных с ними технологий вместе с тоннами библиотек и готовых движков для них, походу за ними будущее

аяксы для таких задач риалтайма — деревянные костыли, как и подход к рендерингу ваш, в то время как Unrial Engine 3 на JS портирован давно:

http://www[dot]extremetech[dot]com/gamin[dot][dot][dot]y-modern-browser

А вот mmo на канвасах и node.js с открытыми исходниками и похожим на вас проект визуалом:

http://www[dot]html5gamedevelopment[dot][dot][dot][dot]-canvas+node-mmo

Интересный проект RTS на основе приятного фреймворка threejs:

http://www[dot]html5gamedevelopment[dot][dot][dot][dot]s-in-the-browser

Видя темпы развития направления, всё время кажется что скоро и сайты будут так выглядить.
9. Barakuda - 08 Мая, 2014 - 10:12:55 - перейти к сообщению
Конечно я понимаю что есть технологии посвежее и более подходящие, и я понимаю что то, что делаю я тоже весьма дубово, но АвтоВАЗ на протяжении сорока лет делал машины из семидесятых, и скармливал их потребителям, вот и я делаю игру в силу своих возможностей Улыбка
может со временем я её перекину на что-то более подходящее) но спасибо за советы )
10. DelphinPRO - 08 Мая, 2014 - 10:54:38 - перейти к сообщению
Zuldek пишет:
От задач зависит.

в данном случае речь идет об игре. игра предполагает относительно большое число клиентов. Логично будет ресурсоемкие задачи отрисовки графики переложить на самих клиентов.
11. Barakuda - 08 Мая, 2014 - 10:56:12 - перейти к сообщению
DelphinPRO пишет:
Логично будет ресурсоемкие задачи отрисовки графики переложить на самих клиентов.

Боюсь проблем с безопасностью
12. DelphinPRO - 08 Мая, 2014 - 11:14:38 - перейти к сообщению
какие могут быть проблемы безопасности при рисовании?
13. Barakuda - 08 Мая, 2014 - 11:31:25 - перейти к сообщению
DelphinPRO пишет:
какие могут быть проблемы безопасности при рисовании?

подмена логина, и отрисовка не своей карты.
при добычи ресурсов - подмена количества ресурсов.
14. Zuldek - 08 Мая, 2014 - 11:31:32 - перейти к сообщению
DelphinPRO пишет:
в данном случае речь идет об игре. игра предполагает относительно большое число клиентов. Логично будет ресурсоемкие задачи отрисовки графики переложить на самих клиентов.

Дк кто ж спорит Улыбка. Речь о том, что не всё на канвасах можно делать, и есть и подход с использованием div и их бэкграундов и готовые движки этот подход проповедующие. Из позитива — не нагружен клиент, а приоритеты уже исходя из конкретного проекта выбираются.

Если уж и отрисовывать сервером, то, как минимум, разово редактором карт и точно не gdшкой а imagick хотябы
(Добавление)
Barakuda пишет:
подмена логина, и отрисовка не своей карты.
при добычи ресурсов - подмена количества ресурсов.

Тк на сервере проверяйте и всё. Или вы отдаёте карту с двумя цветками, надеясь что клиент их только 2 соберёт? Каждое действие проверять на законность
15. Barakuda - 08 Мая, 2014 - 11:43:48 - перейти к сообщению
ну в принципе да... вы правы, так как отрисовка занимает примерно 2-3 секунды серверного времени, я думал про оптимизацию... Нужно будет со временем заставлять клиентов рисовать...

 

Powered by ExBB FM 1.0 RC1