HL2 MOD 开发笔记:
2006
年9月23日
“
Z
”
键效果,既望远镜效果相关函数:
所属类:
CBasePlayer
函数名:
SetFOV
参数: CBaseEntity *pRequester, // 执行操作的对象
int FOV, //视野变化值
float zoomRate //变化速度
返回类型:bool //作用未知,初步判断操作是否成功
物理文件:dlls/player.cpp
相关文件:[dlls]
entity_tools_server.cpp
env_projectedtexture.cpp
env_zoom.cpp
player.cpp
player.h
point_devshot_camera.cpp
[dlls/hl2_dll]
hl2_player.cpp
player_control.cpp
player_manhack.cpp
player_missile.cpp
script_intro.cpp
script_intro.h
weapon_crossbow.cpp
weapon_sniperrifle.cpp
[game_shared/hl2mp]
weapon_crossbow.cpp
[game_shared/sdk]
weapon_mp5.cpp
其他:
在hl2_player.cpp文件中,通过
StartZooming(void)和StopZooming( void )函数,设定了变化速率
并在StartZooming(void),将FOV的值设定为25
实现望远镜效果的实体文件为:
env_zoom.cpp
外壳效果为:hud_zoom.cpp,其中有动态模糊效果部分
---------------------------------------------------------------------------------------------
按键绑定和[cl_dll]下的,in_main.cpp有关
in_buttons.h
头文件定义按键,
in_main.cpp
绑定响应,hl2_player.cpp中实现响应。
------------------------------------------------------------------------------------------------------------
c_playerlocaldata.h
中定义了,绝大多数的本地数据,m_local,应该是其CPlayLocalData类的实例。
对于视野的变化实际上也就是对
m_local
中各项数据的修改。
------------------------------------------------------------------------------------------------------------
2006
年9月25日
按键绑定的基本过程:
1、在
in_buttons.h
中设定按键值
2、在
in_main.cpp
中绑定按键
3、在对应的对象文件中实现实际的操作[eg.HL2的的玩家的主类文件为
HL2_Player.cpp
]
------------------------------------------------------------------------------------------------------------
在半条命2中,如视野调节相关的主要函数[
注:不涉及按键绑定过程,但其中有按键绑定的函数。]
1、StartZooming(void)、StopZooming(void)函数具体实现视野的放缩
2、在CheckSuitZoom(void)函数种判断。套件是否装配,按键是否按下,并根据这些参数来相应的调用StartZooming(void)、StopZooming(void)
3、在
PreThink(void)中两次调用CheckSuitZoom(void),实现实时的按键相应。
---------------------------------------