Показать сообщение отдельно
Старый 12.06.2007, 20:50   #3
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Тип Камеры

Я это реализовываю немного другим путём:
Я не создаю новый класс, у меня есть только 5 значений:
1,2 - Размер экрана.
3,4 - Позиция камеры (левый верхний угол, хотя сделать центр несложно).
5 - Коэфицент Зуума.
И далее в других классах есть отрисовка, например для линий есть локальная функция TLine.Render() где происходит перебор эллементов, каждый проверяется попала линия в экран исходя из 5 значений для камеры, если да то отрисовывать опять исходя из 5 значений.
Вот и всё. А заводить новый класс зачем? Я решил что мне не нужно много камер, я сделал плавное перемещение камеры и всё, даже если точку куда нужно переместить камеры, поставить очень далеко, то она не сразу туда двинется, а полетит.
А вообще хз, каждый по своему делает, кому как удобнее.

Да и относительно перемещения камеры, сделай так:
2 перменные отвечающие за точку куда должна переместиться камера, и двигай по формуле:
camera_x:+(camera_trgx-camera_x)*.01
camera_y:+(camera_trgy-camera_Y)*.01
А x и y в методе TCamera.Move прибоавляй к координатам цели. Будет приятнаое сглаживание.

А вообще твой способ в определённых ситуациях удобен, мне например координату мышки нужно было складывать постоянно, ну и т.п. а у тебя сразу, но совет: В начале цикла привязывай координаты мышки к переменным, а потом их юзай вместо вызова MouseX() и MouseY().
(Offline)
 
Ответить с цитированием