游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2479|回复: 5

视角方向随鼠标动,怎么实现?

[复制链接]

54

主题

116

帖子

122

积分

注册会员

Rank: 2

积分
122
发表于 2007-5-14 10:44:00 | 显示全部楼层 |阅读模式
请问如何实现视角方向随鼠标动,像cs那样的。谢谢
尽量详细点。谢谢了

29

主题

224

帖子

224

积分

中级会员

Rank: 3Rank: 3

积分
224
QQ
发表于 2007-5-14 10:53:00 | 显示全部楼层

Re:视角方向随鼠标动,怎么实现?

只要根据鼠标移动的偏移量来改变摄象机变换矩阵就行了(DX和OpenGL都一样).至于怎么变,建议你看看3D图形学基础的东西,也不难,静下心来半天就可以.

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-5-14 14:59:00 | 显示全部楼层

Re:视角方向随鼠标动,怎么实现?

摄象机变换矩阵,也是一种方法。
不过有一种跟简单的方法。这种方法连摄象机都不用。

初始化:鼠标移动到屏幕中间。
过程中:看看鼠标是否移动了?如果移动了,就对整个世界坐标进行 glRotatef(鼠标移动角度量,1.0F,0.0F,0.0F); 然后再次把鼠标移动到屏幕中间。

54

主题

116

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2007-5-14 21:39:00 | 显示全部楼层

Re:视角方向随鼠标动,怎么实现?

snhun大哥,你指的是转动整个世界?利用相对运动么?可是glRotatef(,1.0F,0.0F,0.0F);
中的鼠标移动角度量怎么和转动的角度联系起来呢?
谢谢

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-5-14 23:42:00 | 显示全部楼层

Re:视角方向随鼠标动,怎么实现?

比如窗口大小是 800*600 ,那么就把鼠标定在(400,300)位置上。
如果鼠标移动到 (405,300)了,那就说明鼠标移动了 5个想素。
旋转角度 = 5 * 0.01f = 0.05f
这里的 0.01f 是随便想出来的一个值。你可以根据你的需要设置。比如 0.02 或 0.05。

glRotatef(0.05f, 0.0f,1.0f,0.0f);

54

主题

116

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2007-5-15 09:45:00 | 显示全部楼层

Re:视角方向随鼠标动,怎么实现?

怎么固定鼠标位置?如何转动视角呢?我用的direct不是opengl
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 10:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表