游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1970|回复: 1

我写的一个第一人称视角转换类,希望大家能够完善它

[复制链接]

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-6-8 15:10:00 | 显示全部楼层 |阅读模式
类的文件为Camera.h和camera.cpp,类的名称为SceneManage,
他的函数解释:
(1)SceneManage.turn_Up(float angle) 往上望,angle为负向下望
(2) turn_LeftZ(float angle); 沿z轴左转一个角度,angle为负沿z轴向右转
(3) turn_LeftY(float angle); 沿Y轴左转一个角度,angle为负沿Y轴向右转,这个经常可以用到,例子中就是用的这个

(4) move_forward(float mstep); 沿着当前的视角前进/后退
(5) void move_up(float mstep) ;  竖直方向上下移动
(5) void move_left(float mstep); 沿着当前的视角左移/右移
(6) savecamera() 保存当前的摄像机状态
(7) restoreCamera() 还原摄像机状态
(8) ApplyTransform() 应用照相机转换,必须调用它后场景才会变化哟!不然你会发现调用其他函数,你的转动和走动都没有变化


属性解释:
m_camera 当前的摄像机;
restore_camera 用来保存摄像机状态的

***定义的camera数据结构包含x,y,z的坐标,以及绕x,y,z轴的角度。

//////////////////但是程序中还是有点问题,希望有人能够完善/////////////////////

在前后运动过程中,为了能够实现碰撞检测,我加入了一个函数
move_forward_check(&objectsPos[0],0.2);
objectPos是用来保存每一个物体的边界的,在绘制每一个物体的时候(display函数) 就把它的边界保存在object数据结构中,再往前移动的时候就检测是否碰撞到了物体,我的思路是在每一步运动前savecamera(),保存当前照相机状态,然后检测是否进入了物体的内部,如果进入了的话,就推出物体外,但是现在如果检验一个物体还可以,多了就不行了。。。。。。。。。。。。。。。。




sf_20066815952.rar

1.62 KB, 下载次数:

0

主题

6

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2006-7-15 13:19:00 | 显示全部楼层

Re:我写的一个第一人称视角转换类,希望大家能够完善它

看了一下,做得不错。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 23:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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