CS > 经验交流 > [经验] 对CS认识的两大误区

[经验] 对CS认识的两大误区

08-02-01 我要评论 来源:52pk.net
 (1)人物的不同对武器使用有影响

  懂得一些编程原理的人都会知道各种游戏里的人物只是由一些贴图和3D建模组成的,就像是贴在窗框上的纸一样,而不会对游戏本身产生什么影响。虽然某些RPG游戏会给人物设计一些属性,比如:生命值魔力值等等,但是要明白的是CS不是RPG,如CS一类的FPS游戏和其他类型的游戏在编程和设计上有着本质的区别,更不会有什么隐藏属性。至于谁说的自己真的测试过,而且测试结果证明有影响,那我只能告诉你:因为CS里的有枪械弹道都模拟了真实弹道,所以射出的子弹弹道会受到包括角度,射程,火力,射击距离,枪械种类等等因素的影响才会产生“有影响”的错觉!

  (2)CS分辨率和爆头率的关系

  众所周知,游戏程序或其他很多程序都一样,内部数据计算一般都采用高精度浮点运算以适应不同要求的输出。用Photoshop处理图片时图片有“分辨率”这一参数(比如300DPI),这个参数其实就是内部运算分辨率,跟显示器显示分辨率和打印分辨率是无关的。通常这个内部分辨率都远远高于显示分辨率,目的是尽量保证图片不失真。判断子弹是否击中头部,用游戏编程术语来说就是:子弹和头部时候发生“碰撞”。“碰撞”很好理解,比如玩空战游戏时要尽量避免与敌机或子弹发生碰撞否则会伤血或坠机。在任何一款商业游戏中处理碰撞问题时都不会以显示的像素点为依据,道理很简单:在低分辨率时会有马赛克现象,也就是说在各种分辨率下图形象素都有不规则性。不规则性的图形像素是很难用电脑来处理的(游戏都讲究效率问题),何况CS游戏是3D游戏更不可能是以像素来记录图形。

  我以简化的模式来说一下CS服务器的中弹(碰撞)处理过程:人的头部用计算机表示其实就是一个球体(实际情况会复杂一些,一般用N个多边形来表示,多边形越多头部就越逼真)。一个球体只需用两个参数来表示:圆心和半径。半径是死的参数,表示头部的大小是无法改变的;圆心表示的是头部的位置,是运动的。子弹一般直接用球体来表示,实际情况也不会用到多边形——因为你根本就看不清它。下面就只要计算出你头部圆心和子弹圆心之间的距离是否小于头部半径与子弹半径之和就可以了,这个计算公式我就不写了,学过立体几何的人都知道,如果头部和子弹之间的距离小于他们的半径之和的话就说明你中弹了,反之则没有,不管是身体的哪个部位都是如此。