![]() |
|
![]() ![]() ![]() |
|
zozo1987 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 21.4.2007 Репутация: нет Всего: нет |
Пишу игру в уголки. Эта игра основана на перемещениях шашек со своими правилами Это шахматная доска:
Это на ней выставляются шашки:
Теперь хочу сделатьтак, чтобы мышкой перетаскивать шашку с одной клетки на другую: Думал с помощью OnDragDrop. Прочитал, что надо установить значения свойств DragMod равные dmAutomatic. не могу понять как это сделать, подскажите, пожалуйста, ламеру . Или может подскажете, как еще можно сделать ето перетаскивание. Буду очень благодарен. ![]() |
||||
|
|||||
SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 9 Всего: 23 |
Можно через события миши.
А вообще вот по культину пятнашки писал мож поможет Присоединённый файл ( Кол-во скачиваний: 17 ) ![]() |
|||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
рад, что тебе помог мой код
![]() переходим ко вротой фазе создания игры - перетаскивание шашек.. думаю, на этом этапе для тебя это слишком сложно и придется упростить ситуацию, либо, если тебя это устроит, перетаскивать будем не шашку, а ее контур.. упростить ситуацию можно следующим образом: указывать шашку, которая должна сделать ход, и указать место, куда она должна переместиться.. здесь придется обрабатывать событие OnClick, расчитывать координаты, определять допустимость хода.. второй вариант, основывается на обработке трех событий: OnMouseDown, OnMouseMove и OnMouseUp.. сначала при щелчке мы (OnMouseDown) определяем начальное положение объекта (x0,y0) и объявляем, что происходит перемещение.. дальше автоматически срабатывает событие OnMouseMove, расчитвыаем положение объекта относительно (x0,y0).. в конце, при отпускании кнопки срабатывает событие OnMouseUp, где мы перерисовываем объект на новом месте и указываем, что перемещение должно быть завершено.. реализация должна выглядить примерно так:
примечание к коду: это не готовое решение!! конструкции типа: "r=((TControl*)Sender)->BoundsRect;" необходимо заменить на соответсвующие задаче действия.. но идея, надеюсь понятна.. удачи!! Это сообщение отредактировал(а) fish9370 - 27.4.2007, 21:37 -------------------- undefined |
|||
|
||||
zozo1987 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 21.4.2007 Репутация: нет Всего: нет |
Огромное спасибо fish9370 и всем, кто помагал советами и кодом
![]() ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |