fn12gl34 | Дата: Воскресенье, 01.02.2015, 12:46 | Сообщение # 1 |
Рядовой
Группа: Пользователи
Сообщений: 1
Статус: Offline
| Здравствуйте. У меня в процессе написания пробной игры возникло две трудности. Буду очень благодарен, если вы поможете мне в их разрешении.
1. Есть тайловый мир и персонаж, бегающий по нему. Нужно реализовать прокрутку карты, при приближении персонажа к определенным границам. Посмотрел несколько примеров, но так и не понял, как это реализовать. 2. Есть, к примеру, игровое меню. Где кнопки то битмапы. Нужно при наведении мышки на рисунок менять его на другой. Никак не могу придумать, как это реализовать. Заранее благодарен за ответ
|
|
| |
Armageddets | Дата: Среда, 25.02.2015, 11:44 | Сообщение # 2 |
Лейтенант
Группа: Администраторы
Сообщений: 68
Статус: Offline
| 1. Для приближения можно использовать масштабирование. Есть возможность рисовать с увеличением или уменьшением. Делается это так:
Form1.Canvas.StretchDraw(RECT(0,0,60,60),Pic):
Нарисуется картинка в координатах (0,0), растянется до размеров 60х60, а картинка с именем будет Pic.
2. Чтобы при наведении мышки менять одну картинку на другую нужно просто отслеживать координаты мыши наформе. Например в таймере можно написать если координаты мышки входят в пределы картинки, то рисуем одну картинку, в остальных случаях другую. Координаты мышки получаются так:
X:=Mouse.CursorPos.X; Y:=Mouse.CursorPos.Y;
Для получения и изменения координат используй события формы OnMouseMove. Чтобы получить координаты мыши на форме, а не на экране, то нужно вычитать координаты формы по иксам и координаты формы по игрекам, и по игрекам еще отнимаем 25 пикселей (это синий заголовой формы вверху).
|
|
| |