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
转载于:https://www.cnblogs.com/lonelyxmas/p/10817660.html
Directx11教程(58) 鼠标控制摄像机相关推荐
- Python之OpenGL笔记(17):键盘鼠标控制摄像机移动旋转
一.目的 1.键盘控制摄像机自由移动: 2.鼠标控制摄像机旋转: 3.鼠标滚轮放大缩小视野. 二.程序运行结果 三.自由移动 view = lookAt(cameraPos, cameraPos + ...
- Unity鼠标控制摄像机 围绕物体旋转
Unity鼠标控制摄像机 围绕物体旋转 角度范围判定 // An highlighted block using UnityEngine;public class CameraCtrl : MonoB ...
- 鼠标控制摄像机围绕主角的移动和转向。
这几天回顾整理的看了第三人称的游戏控制和摄像机控制的代码. 通过自己写的代码和对比别人写的代码,收获到的东西: 自己:功能随意的叠加,想到什么编辑什么,再查询时就感觉有点混乱.且喜欢建很多个CS些.通 ...
- 【Unity】Unity实现鼠标控制摄像机围绕物体旋转镜头 滑轮控制远近
在游戏和一些产品展示等项目中会有让摄像机围绕某个物体进行旋转这种需求 下面展示的代码是个删减版的 只保留了主要功能 限制的方面都删除了 在原有的代码中有 移动摄像机功能 围绕的点不做限制每 ...
- Unity鼠标控制摄像机拖拽、旋转、缩放(模拟编辑器摄像机功能)
网上有不少类似内容了,不过有些不全面,甚至有有残缺,少了上下文,导致复制代码以后报错,笔者很讨厌这种太监代码!! 话说真传一句话,假传万卷书,代码全文如下:复制到自己脚本中,挂到摄像机上即可运行 us ...
- unity鼠标控制镜头旋转_Unity3D实现鼠标控制视角转动|chu
前面,学了物体的移动功能,现在来学一下C#实现鼠标控制摄像机(视角)移动. 代码如下: C#脚本(在Unity 5.5.1 下能运行): using System.Collections; using ...
- Unity实现安卓端手势控制摄像机的旋转和缩放
说明 上一篇记录了PC端鼠标控制摄像机的移动和缩放,这一篇写的是在安卓机上实现手势控制摄像机围绕一个物体进行旋转和缩放,两篇的代码逻辑基本一样只是输入检测有区别,这里我是分开记录,没有整合[Uni ...
- Unity2019.4.31f1 通过鼠标和WASD在游戏内控制摄像机移动
Unity版本:2019.4.31f1 通过鼠标控制视角,WASD控制前后左右移动,在游戏内实现摄像机的移动. MoveCamera.cs: using System.Collections; usi ...
- 在Unity使用键盘控制摄像机的移动以及用鼠标滚轮控制摄像机视野放大和缩小
首先在Unity中新建一个ViewControl的脚本,并把这个脚本挂载在主摄像机上面,然后复制下列的代码! using System.Collections; using System.Collec ...
- synergy一个鼠标控制多个电脑,synergy怎么用?synergy配置教程
synergy怎么用呢?synergy可以让你从一个单一的键盘和鼠标控制它们,具体synergy配置方法,我们一起来学习一下. Synergy 是一款能够让使用者仅用一套键盘鼠标,就同时操控多部计算机 ...
最新文章
- 入门Promise的正确姿势
- SQL批量修改字段值
- Oracle技术之Data Pump介绍
- jenkins slave在master显示和运行问题
- Swift-闭包理解
- HTTP与HttpServlet
- sublime txt常用插件推荐
- git clone报错
- VC2008 Windows Media Player控件的使用技巧
- python django 动态网页_Django-手撸简易web框架-实现动态网页-wsgiref初识-jinja2初识-python主流web框架对比-00...
- 使用oracle创建表问题
- 1.企业应用架构模式 --- 分层
- FFT蝶形算法的verilog实现专题——64点FFT 蝶形算法完整展开
- Validator校验器中重新定义默认的错误信息模板
- 以下对python程序缩进格式描述错误的是_转载 | python二级选择题与分析(8)
- 百度地图定位不准的问题
- 又一面试题:一个猎人带着一只狼,一个女人带着两个小女孩,一个男人带着两个小男孩,他们要渡船过河。...
- 卸载wps后office图标无法显示(亲测有效)
- 腾讯云Linux云服务器如何搭建FTP服务?
- SQL Server数据库创建数据库、用户、表和插入数据(Transact-SQL)
热门文章
- Acwing-860. 染色法判定二分图
- ps小技巧(复制选区)
- 商汤的AI伴游小精灵(2019 计蒜之道 初赛 第一场)
- 服务器怎么建立无线局域网,家庭无线局域网的组建教程
- OC:跟随小码哥一起学习KVC
- 怎么利用好公众号后台做好分析报告
- WebDriverException: Message: unknown error: cannot find Chrome binary(ChromeDriver及谷歌官网下载地址)
- Unity5.0 烘焙物体导入其他场景
- 手把手教你使用--常用模块--HC05蓝牙模块,无线蓝牙串口透传模块,(实例:手机蓝牙控制STM32单片机点亮LED灯)
- Unity实现简单小地图功能