|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.09.2010, 19:23 | #1 |
Регистрация: 02.09.2010
Сообщений: 3
|
ООП_пазл
Привет всем. помогите пожалуйста с пазлом-тема курсяка по ООП.
пишу компонент, туда грузится картинка, в ней происходит разбиение картинки на кусочки, они ложатся туда же в случайном порядке. проблема-не могу двигать кусочки. двигается либо один и тот же, либо картинка в разрезанном состоянии. обращаюсь к кусочкам через components |
02.09.2010, 19:55 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Если все кусочки одинакового размера - храним информацию о положении каждого, а также о том, какие из них ближе к пользователю. То есть каждому из N кусочков присваиваем число от 1 до N - если два из них перекрываются, то сверху рисуется тот, номер которого меньше (больше). При нажатии кнопки мыши смотрим, какие кусочки находятся под курсором и выбираем тот из них, номер которого меньше (больше) - т.е. тот, который ближе к нам. При этом он при щелчке по нему становится ближе всех - его номер стал 1 (N). Если до этого у него был номер i, то все кусочки с номерами 1 .. i-1 увеличивают свой номер на 1 (с номерами i+1 .. N увеличивают номер на 1) - становятся дальше. При движении мыши с зажатой левой кнопкой заново перерисовываем компонент, и, естественно, перетаскиваемый кусочек имеет номер 1 (N) и рисуется поверх всех. При отпускании кнопки мыши он просто перестает перемещаться, номера "близости к наблюдателю" сохраняются теми, какими стали после предыдущего щелчка по кусочку.
Вот, собственно, и вся логика.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
02.09.2010, 20:35 | #3 |
Регистрация: 02.09.2010
Сообщений: 3
|
Идею я уже давно понял. я не пойму как реализовать. посмотрю код мой, плиз)))) может я ваще туплю на элементарном... нужен свежий взгляд...
P.S. не пойму как достучаться до кусочка |