Эта статья о использование мыши и камеры , а именно об управлении камерой с помощью мыши в GLScene. Изложенное ниже можно с успехом использовать с стратегиях или редакторах.
Как вращать камеру (или что другое) возле объекта?
В событие viewer Mouse Move пишем if ssLeft in Shift then GLCam.MoveAroundTarget(my-y, mx-x); mx:=x; my:=y;
Т.е. при зажатой левой кнопки мыши камера будет вращаться возле цели , разуметься цель предварительно указана.
Как приблизить\отдалить камеру по правой кнопке?
В событие viewer Mouse Move пишем
if ssRight in Shift then GLCam.AdjustDistanceToTarget(Power(1.05,my-y));
Тут у нас при зажатой правой кнопки и движении мыши мы приближаем или отдаляем камеру.
Как плавно приближать колёсиком мыши?
В событие Form Mouse Wheel пишем
if wheeldelta > 0 then GLCam.AdjustDistanceToTarget(0.98) else GLCam.AdjustDistanceToTarget(1.02)
Как с помощью мыши перемещать по карте на подобие RTS ?
В общем этот способ не совсем такой , но я думаю тоже весьма удобен.
В событие viewer Mouse Move пишем if ssRight in Shift then GLCam.Position.X := GLCam.Position.X-((x-mx)/5); GLCam.Position.z := GLCam.Position.z-((y-my)/5);
|