- 打卡等级:祈祷套勇士
- 打卡总天数:49
- 打卡月天数:3
- 打卡总奖励:6584
- 最近打卡:2025-06-03 00:36:17
管理员
本站站长
- 积分
- 5271
|
武器外观的数学之美
(一)武器位置变换矩阵
/*
* 武器位置变换矩阵
* 用途:计算武器在屏幕上的最终位置
* 参数:
* θ: 角色方向角 = 角色方向 × 22.5°
* tx, ty: 手持位置偏移
* (x,y): 原始武器贴图坐标
*/
[ x' ] [ cosθ -sinθ tx ] [ x ]
[ y' ] = [ sinθ cosθ ty ] [ y ]
[ 1 ] [ 0 0 1 ] [ 1 ]
(二)武器光影渲染流程
c
/*
* 武器光影渲染流程
* 用途:绘制带特效的武器
* 调用时机:角色渲染阶段
*/
void RenderWeapon() {
DrawBaseWeapon(); // 绘制基础武器
if (weapon.effect != 0) {
int effectX = handX + effectOffsets[dir].x;
int effectY = handY + effectOffsets[dir].y;
for (int i = 0; i < 3; i++) {
DrawEffect(
effectX + pulseOffset(i),
effectY,
weapon.effect + i
);
}
}
}
/*
* 呼吸脉冲偏移计算
* 用途:产生动态呼吸效果
* 参数:
* layer: 当前层级
* 返回:X轴偏移值
*/
int pulseOffset(int layer) {
return sin(time * 2 + layer * 1.2) * (3 - layer);
}
|
|