Directx11教程(58) 鼠标控制摄像机

       本篇教程我们实现鼠标旋转摄像机的操作。主要就是按下鼠标左键的时候,根据鼠标的移动对摄像机进行pitch, raw的组合旋转。具体修改代码是在D3CClass类中,增加对鼠标事件的处理:

case WM_LBUTTONDOWN:
    if( wparam & MK_LBUTTON )
        {
        SetCapture(hwnd);

        m_OldMousePos.x = LOWORD(lparam);
        m_OldMousePos.y = HIWORD(lparam);
        }
    return 0;

case WM_LBUTTONUP:
    ReleaseCapture();
    return 0;

case WM_MOUSEMOVE:
    if( wparam & MK_LBUTTON )
        {
        mousePos.x = (int)LOWORD(lparam);
        mousePos.y = (int)HIWORD(lparam);

        dx = mousePos.x - m_OldMousePos.x;
        dy = mousePos.y - m_OldMousePos.y;
        //通过鼠标转动摄像机
        m_Graphics->m_Camera->pitch(dy * 0.0087266f);
        m_Graphics->m_Camera->yaw(dx * 0.0087266f);

        m_OldMousePos = mousePos;
        }
    return 0;

完整的代码请参考:

工程文件myTutorialD3D11_53

代码下载:

http://files.cnblogs.com/mikewolf2002/d3d1150-58.zip

http://files.cnblogs.com/mikewolf2002/pictures.zip

时间: 2024-09-20 05:40:11

Directx11教程(58) 鼠标控制摄像机的相关文章

Win10鼠标乱动不受控制怎么办 Win10鼠标控制不了解决方法教程

Win10鼠标控制不了解决方法教程 1.按win+x组合键打开系统快捷菜单,选择计算机管理,如图所示: 3.然后在右侧找到"TMP维护任务",将其禁用即可,如图所示: 以上就是win10系统中鼠标不受控制乱动的解决方法,有出现这情况的用户可以参考文中方法进行解决,希望今天的分享对大家有所帮助.

58同城-小程序 用鼠标控制目标

问题描述 小程序 用鼠标控制目标 你好,我是一名教师,马上要上一节计算机课,我想要一个小程序分以四个小动物分别为四个小组,每个小组代表一组学生,如果哪一组学生完成任务,那么这个小动物就往前进一步,也可以是鼠标控制,请问有这个小程序吗? 解决方案 可以用MFC做,创建基于对话框的程序,然后创建4个picture控件,分别贴图4种动物,移动的话直接用movewindow就可以. 解决方案二: 你的描述不清晰 我怎么判断学生任务完成了,很简单的 解决方案三: 算法应该不难,就是需要把问题描述清楚一些

Directx11教程(9) 增加一个TimerClass类

     在上篇教程代码的基础上,我们增加一个TimerClass类,这个类的功能很简单,就是可以计算相邻2帧的时间差.利用这个时间差值,可以实现平滑的动画,使得动画不会因为不同机器fps不同,从而动画效果变快或者变慢.     我们主要是利用QueryPerformanceCounter函数来查询定时器的计数值.     如果硬件里有定时器,它会启动这个定时器,之后会不断获取定时器的值,这样的定时器精度,就跟硬件时钟的晶振一样精确的. TimerClass.h代码如下: #pragma onc

AS应用:鼠标控制的跑马灯效果

控制|鼠标 做了个不太一样的跑马灯,你可以左右移动鼠标控制运动方向和速度.点击这里查看效果.代码如下: /***************import classes***************/ import mx.transitions.*; /*********declare variables and instances*******/ var nextX = 0; var num = 7; var speed = 2; /****************create objects**

鼠标控制CD-Audio播放程序

只要你想听CD,它在任何时候(DOS下,游戏下都可以)用鼠标激活,鼠标控制,为你播放.并提供了选曲和暂停功能,这为光驱上无直接播放建的朋友提供了莫大的方便.该程序思路巧妙,利用INT 33H的现有鼠标功能,巧妙扩展,达到任何条件下激活的能力!!如果你有兴趣,可以把他改为鼠标控制XXXXXX的程序,随时激活,方便无比!!! 源码如下: ;mcd.asm.286code segmentassume cs:code,ds:codeorg 100hstart:jmp init_cd ;到初始化cd_co

在Plex播放器使用鼠标控制的方法

  下面介绍在Plex播放器里使用鼠标控制的方法. 进入Plex后,用方向键移动光标到"配置您的Preferences"上,回车.右侧会弹出二级菜单,同样用方向键+回车选择"系统". 选择"Apple遥控器",在左侧的二级菜单里,光标移到"使用鼠标"上,回车,您会发现该选项右侧出现一个亮点.OK,您可以用鼠标控制Plex播放器了. 不过,使用Plex,最好是使用Apple Remote遥控器,键盘操作次之.鼠标实际上是最不适合

vb60-VB6中鼠标控制问题,控制语句不起作用

问题描述 VB6中鼠标控制问题,控制语句不起作用 我编写了一段控制鼠标停留位置的代码,但是一点效果都没有,代码如下: Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long Private Sub Form_Load() Me.Move (Screen.Width - Me.Width) 2, (Screen.Height - Me.Height) 2 S

Windows 8实例教程系列 - 布局控制

原文:Windows 8实例教程系列 - 布局控制 与传统应用类似,Windows store应用允许开发人员通过布局控件管理应用UI. 本篇将讨论Windows8布局设计控制. Windows 8布局控件 在Windows Store应用设计中,布局控件是控制对象位置和尺寸的,由于Windows Store应用不仅仅面向桌面操作系统,而且还需要适应移动设备的部署,所以在设计时,往往需要考虑到不同的分辨率或者硬件屏幕尺寸标准下应用布局的适配性,最大程度的保持设计灵活性是应用设计原则重要环节之一.

[Quarter Kit] 充电座和手机APP控制摄像机拍摄方法

可穿戴摄像机是一款小巧轻便的相机,可以与丰富的配件搭配,随意佩戴在身上或固定在其它物体上,为您带来与众不同的拍摄视角与革新的拍摄体验. 拍摄之前,请确认以下两点: 1.摄像机已与充电座配对成功(): 2.摄像机已开机(). 此时充电座左侧Camera Power指示灯为绿色常亮,如下图: 下面介绍使用充电座和手机APP来控制摄像机进行拍摄的方法. 一.使用充电座进行拍摄 充电座在有电量的情况下,无论开关机,都可以通过充电座右侧的快门键来控制摄像机进行拍摄.如下图: 快门键使用方法: 单击快门键—