Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2015, 19:42   #11
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Если картинка разбивается где-то до 300-400 ячеек - ещё вроде терпимо, а на большее кол-во уже фигня.
Вообщем, чем большее ТИмеджей, тем тормознутей они таскаются.
Поздравляю вы встали на путь создания игр. Но путь этот не прост. Тут думать надо! Приходиться оптимизировать свой код что-бы он работал быстро.

1) Откажитесь от множества Image Сделайте 1.
Для проверки попаданий мыши по кусочкам придется написать свою функцию.
Начать можно с PointInRect.
2) Замените Image на PaintBox. Заодно научитесь работать с TBitmap.
И беречь хэнделы, так как они ограничены.
3) Используйте технику запекание. При перетаскивании все стационарные оставшиеся кусочки рисуете картинке. И при выводе используете её как подложку.
4) Перейти с GDI на OpenGL или DirectX.

И не за бывайте иногда стоит остановиться и не тратить силы впустую.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 10.10.2015, 20:03   #12
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,591
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
4) Перейти с GDI на OpenGL или DirectX.
Для такой простой игры хватит и GDI, а то ТС испугается и вообще бросит это дело
Arigato вне форума Ответить с цитированием
Старый 10.10.2015, 20:07   #13
Тоба
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 86
По умолчанию

Спасибо за советы,
Буду пробовать.
Не так просто всё ,как кажется, там ещё ж сглаживание, тень, повороты каждой ячейки, призрак с изменяющейся прозрачностью, но главное это то самое произвольное прилипание.
Если всё это использовать через вывод в TImage, то это в принципе легко реализуемо, а если через рисование на канве, то тут столько но возникает, что ну его в качель.

Цитата:
Сообщение от Arigato Посмотреть сообщение
Для такой простой игры хватит и GDI)
Я и пишу с с помощью GDI+ и GR32

Последний раз редактировалось Stilet; 11.10.2015 в 16:27.
Тоба вне форума Ответить с цитированием
Старый 10.10.2015, 20:51   #14
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,591
По умолчанию

Сами пазлы квадратные или произвольной формы?
Arigato вне форума Ответить с цитированием
Старый 10.10.2015, 20:54   #15
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Тоба, я так понимаю у вас уже многое сделано. Поэтому переход от множества TImage к одному TImage и множеству TBitmap не должно вызывать трудностей.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 10.10.2015, 21:00   #16
ResourceSpace
Форумчанин
 
Аватар для ResourceSpace
 
Регистрация: 30.06.2015
Сообщений: 353
По умолчанию

Цитата:
Я и пишу с с помощью GDI+ и GR32
гм... А что же именно вы пишете на GDI+ если у вас сейчас куча TImage? Что есть GR32?
Версия Делфи? Чтоб понимать что поддерживается, а что нет.
ResourceSpace вне форума Ответить с цитированием
Старый 10.10.2015, 21:24   #17
Тоба
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 86
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Сами пазлы квадратные или произвольной формы?



Цитата:
Сообщение от ResourceSpace Посмотреть сообщение
Что есть GR32?
Graphics32 1-9-1
Тоба вне форума Ответить с цитированием
Старый 10.10.2015, 22:13   #18
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,591
По умолчанию

Тогда кроме самой картинки пазла хорошо бы еще хранить маску, чтобы определять, нажали мышкой по картинке, или нет. По маске можно и прилипание организовать.
Arigato вне форума Ответить с цитированием
Старый 11.10.2015, 02:56   #19
Тоба
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 86
По умолчанию

Чтоб иметь представление.
Упрощённый вариант:
http://rghost.ru/8MVGScWMR
Тоба вне форума Ответить с цитированием
Старый 11.10.2015, 13:37   #20
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

На сколько помню, GR32 успешно справляется с таким кол-вом компонентов.
Особенно при наличии компонента, умеющего накладывать на базовое изображение слои. Таким образом проблема сама себя решает с любым кол-во изображений. Хотя я с 400 шт. не пробовал )
В демках посмотрите TImgView_32
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мерцание панельки, при перемещении. stalker1995s Общие вопросы Delphi 12 04.08.2013 15:04
Много TImage bunukar Помощь студентам 13 12.04.2011 11:31
Перезапись при копировании/перемещении Shouldercannon Общие вопросы Delphi 4 12.09.2010 02:32
Моргает label при перемещении Maxs Компоненты Delphi 21 26.11.2009 19:57
Процедура при перемещении формы Alex Cones Общие вопросы Delphi 7 28.07.2009 09:11