1. 注册侦听器
addEventListener(Event.ENTER_FRAME, onEnterFrame);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
2. MouseDown触发函数
// 保存鼠标点击的摄像机参数和鼠标坐标信息
private function onMouseDown(event:MouseEvent):void
{
lastPanAngle = camera.panAngle;
lastTiltAngle = camera.tiltAngle;
lastMouseX = stage.mouseX;
lastMouseY = stage.mouseY;
move = true;
stage.addEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);
}
3. MouseUp触发函数
private function onMouseUp(event:MouseEvent):void
{
move = false;
stage.removeEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);
}
4. 每帧都调用的onEnterFrame
private function onEnterFrame(event:Event):void
{
if (move) {
camera.panAngle = 0.3*(stage.mouseX - lastMouseX) + lastPanAngle;
camera.tiltAngle = 0.3*(stage.mouseY - lastMouseY) + lastTiltAngle;
}
camera.hover();
view.render();
}
本文介绍了一种使用Flash实现的游戏摄像机控制方法。通过监听鼠标点击事件和移动事件,可以实时调整摄像机的角度,实现平移和倾斜效果。具体包括注册侦听器、MouseDown触发函数、MouseUp触发函数及每帧更新函数。
244

被折叠的 条评论
为什么被折叠?



