Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
5 / 5 / 0
Регистрация: 03.07.2011
Сообщений: 30
1

Гексагональная сетка, перемещение фишек.

02.11.2011, 23:25. Просмотров 1780. Ответов 6
Метки нет (Все метки)

Есть гексагональная сетка на паинтбоксе, на ней фишки (по сути это картинки и булевы переменные, привязанные к массиву).

Если зажать мышку над фишкой и отпустить над свободным гексом, картинка переместиться на новый гекс, а старый останется неизменным. Булева переменная на новом гексе будет true, на старом false.

Соответстенно, нужно, чтобы старый гекс, после перемещение принял вид фона (т.е. стереть изображение)

В событии паинт, Паинтбокса, код позволяет полностью перерисовать форму согласно массиву (т.е. все неправильные картинки должны исчезнуть, так как картинки привязаны под булевыми переменными, которые в "неправильных гексах" имеют статус false, а в правильных true.

Буду безмерно рад помощи в решении проблемы, спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2011, 23:25
Ответы с готовыми решениями:

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

Гексагональная сетка (C++ + SFML)
Здравствуйте. Подскажите, пожалуйста, как можно с помощью библиотеки SFML создать гексагональную...

Гексагональная сетка с поворотом на 45 градусов
Мне нужно реализовать такую гексагональную сетку, как в приложении, только угол надо самому...

Рандомное перемещение фишек по квадратной матрице (клеточный автомат)
В квадратной таблице размера NxN в левом верх-нем и правом нижнем углу стоят фишки. За одну...

6
LK
Заблокирован
02.11.2011, 23:39 2
вы сами ответили - "перерисовать" - что не так ?
1
5 / 5 / 0
Регистрация: 03.07.2011
Сообщений: 30
02.11.2011, 23:47  [ТС] 3
я просто только начал изучение и могу не знать самых элементарных вещей

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

На сколько я знаю, за это отвественна функция ShowWindow()
Я ее вызываю в таком виде: ShowWindow(TForm1::PaintBox1,SW_RESTORE), сразу после операций по перемещению фишек.

Где я ошибаюсь?
0
LK
Заблокирован
03.11.2011, 00:03 4
может, для начала попробовать что-нибудь из этого
C++
1
2
3
PaintBox1->Repaint();
PaintBox1->Refresh();
PaintBox1->Invalidate();
?
SW_RESTORE - Активизирует и отображает окно. Если окно минимизировано или развернуто, Windows восстанавливает его в первоначальном размере и позиции (то же самое, что и SW_SHOWNORMAL).
имхо, это не ваш случай.
1
5 / 5 / 0
Регистрация: 03.07.2011
Сообщений: 30
03.11.2011, 00:08  [ТС] 5
Попробовал первую - все заработало. Появилось мерцание, но у меня где-то была информация по его устранению. Огромное Вам спасибо!
1
LK
Заблокирован
03.11.2011, 00:17 6
устранить мерцание -
C++
1
Form->DoubleBuffered = true;
не помню, есть ли
C++
1
PaintBox1->DoubleBuffered = true;
посмотрите сами - в Инспекторе объектов.
1
5 / 5 / 0
Регистрация: 03.07.2011
Сообщений: 30
03.11.2011, 00:58  [ТС] 7
устранить мерцание -
Код C++1 Form->DoubleBuffered = true;

Работает!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2011, 00:58

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Пошаговая гексагональная стратегия для нетбука
Никак не могу обнаружить пошаговую гексагональную стратегию из разряда "вау", которая бы порадовала...

Перестановка фишек
Дано задание. Пешки. На горизонтальной доске состоящей из 7 ячеек расположены три белые и три...

Одна из фишек гугла
Здравствуйте! Подскажите, пожалуйста, как мне ссылку на гугл что бы при переходе по ней открывалась...

Несколько фишек с Active Directory
Доброго времени суток. Хотелось бы узнать, существуют ли в принципе решения следующих проблем: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.