游戏开发中用到了直线行走的轨迹运算,使用的算法是DDA直线画法!
由于我的游戏之前的版本是C语言的!所以改方法的形参是指针形似,如下:
C++的引用形式的函数定义如下
看指针形式,与引用形式似乎没什么区别,但在使用上引用形式却方便多了!
接下来看方法的实现
C语言的指针形式
再看C++引用形式的方法实现
指针形式在使用的时候每次变量前都要加* ,影响书写代码,更影响阅读代码,引用形式则看起来舒服多了!
还是先看指针形式的使用
在英雄的每帧绘制中,有如下代码:
将英雄的位置坐标以地址形式传给自动移动方法,来计算这帧移动speed后的坐标,再把英雄坐标更改到计算后的坐标去,如上的方法setMoveToPos( x, y);
接下来在看C++引用形式的
如上可见,指针形式改成引用形式 几乎不需要改动,只是把&x,&y改成了 x,y而已
有朋友可能看出,既然是修改的英雄位置坐标,为何还要在设置一次坐标?(setMoveToPos方法)
当然是可以去掉的,因为指针,引用都是修改了传入函数autoMove()的形参!
只是我这里还有其他处理而已!
好了,总结一下,C语言没得选乖乖用指针吧!C++可以选引用,还是尽力使用引用吧!好处多多!自不必细表!