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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: искажение изображения

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Barakuda
Отправлено: 07 Мая, 2014 - 15:34:42
Post Id



Гость


Покинул форум
Сообщений всего: 88
Дата рег-ции: Окт. 2012  
Откуда: Одесса, украина


Помог: 0 раз(а)




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

Может это из-за какой то функции? В документации ничего не нашел, или может чего-то не понял.
если нужно - выложу код
Прикреплено изображение (Нажмите для увеличения)
1.png
 
 Top
Barakuda
Отправлено: 07 Мая, 2014 - 15:36:09
Post Id



Гость


Покинул форум
Сообщений всего: 88
Дата рег-ции: Окт. 2012  
Откуда: Одесса, украина


Помог: 0 раз(а)




дерево
Прикреплено изображение (Нажмите для увеличения)
9.png
 
 Top
Barakuda
Отправлено: 07 Мая, 2014 - 15:36:42
Post Id



Гость


Покинул форум
Сообщений всего: 88
Дата рег-ции: Окт. 2012  
Откуда: Одесса, украина


Помог: 0 раз(а)




камень
Прикреплено изображение
14.png
 
 Top
Barakuda
Отправлено: 07 Мая, 2014 - 16:53:59
Post Id



Гость


Покинул форум
Сообщений всего: 88
Дата рег-ции: Окт. 2012  
Откуда: Одесса, украина


Помог: 0 раз(а)




нашел в чем проблема, она в использовании imagecreate вместо imagecreatetruecolor в двух местах, в виде подложки. Заменил, но теперь прозрачности нет, хоть и сохраняю её при помощи imagesavealpha...
(Добавление)

вопрос закрыт, разобрался сам.
нужно было залить созданную кантинку прозрачным цветом
PHP:
скопировать код в буфер обмена
  1.  
  2. imagesavealpha($newBl, true); // устанавливаем флаг, "держать" прозрачность
  3. $alpha = imagecolorallocatealpha($newBl, 0, 0, 0, 127); // выбираем прозрачный цвет
  4. imagefill($newBl, 0, 0, $alpha); // заливаем изображение прозрачным цветом
  5.  

Прикреплено изображение (Нажмите для увеличения)
1.png

(Отредактировано автором: 07 Мая, 2014 - 18:14:50)

 
 Top
IGORtrue
Отправлено: 08 Мая, 2014 - 00:51:02
Post Id



Частый гость


Покинул форум
Сообщений всего: 177
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Вы на php и js создаёте карту? Очень интересно просто..
 
 Top
DelphinPRO
Отправлено: 08 Мая, 2014 - 01:02:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Карту все же лучше рисовать яваскриптом на канве


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Barakuda
Отправлено: 08 Мая, 2014 - 01:22:49
Post Id



Гость


Покинул форум
Сообщений всего: 88
Дата рег-ции: Окт. 2012  
Откуда: Одесса, украина


Помог: 0 раз(а)




IGORtrue пишет:
Вы на php и js создаёте карту? Очень интересно просто..

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


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




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

Видя темпы развития направления, всё время кажется что скоро и сайты будут так выглядить.

(Отредактировано автором: 08 Мая, 2014 - 10:41:19)

 
 Top
Barakuda
Отправлено: 08 Мая, 2014 - 10:12:55
Post Id



Гость


Покинул форум
Сообщений всего: 88
Дата рег-ции: Окт. 2012  
Откуда: Одесса, украина


Помог: 0 раз(а)




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



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Zuldek пишет:
От задач зависит.

в данном случае речь идет об игре. игра предполагает относительно большое число клиентов. Логично будет ресурсоемкие задачи отрисовки графики переложить на самих клиентов.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Barakuda
Отправлено: 08 Мая, 2014 - 10:56:12
Post Id



Гость


Покинул форум
Сообщений всего: 88
Дата рег-ции: Окт. 2012  
Откуда: Одесса, украина


Помог: 0 раз(а)




DelphinPRO пишет:
Логично будет ресурсоемкие задачи отрисовки графики переложить на самих клиентов.

Боюсь проблем с безопасностью
 
 Top
DelphinPRO
Отправлено: 08 Мая, 2014 - 11:14:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




какие могут быть проблемы безопасности при рисовании?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Barakuda
Отправлено: 08 Мая, 2014 - 11:31:25
Post Id



Гость


Покинул форум
Сообщений всего: 88
Дата рег-ции: Окт. 2012  
Откуда: Одесса, украина


Помог: 0 раз(а)




DelphinPRO пишет:
какие могут быть проблемы безопасности при рисовании?

подмена логина, и отрисовка не своей карты.
при добычи ресурсов - подмена количества ресурсов.
 
 Top
Zuldek
Отправлено: 08 Мая, 2014 - 11:31:32
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




DelphinPRO пишет:
в данном случае речь идет об игре. игра предполагает относительно большое число клиентов. Логично будет ресурсоемкие задачи отрисовки графики переложить на самих клиентов.

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

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

Тк на сервере проверяйте и всё. Или вы отдаёте карту с двумя цветками, надеясь что клиент их только 2 соберёт? Каждое действие проверять на законность

(Отредактировано автором: 08 Мая, 2014 - 11:37:50)

 
 Top
Barakuda
Отправлено: 08 Мая, 2014 - 11:43:48
Post Id



Гость


Покинул форум
Сообщений всего: 88
Дата рег-ции: Окт. 2012  
Откуда: Одесса, украина


Помог: 0 раз(а)




ну в принципе да... вы правы, так как отрисовка занимает примерно 2-3 секунды серверного времени, я думал про оптимизацию... Нужно будет со временем заставлять клиентов рисовать...
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Графика в PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB