基本上,每当我调用某些函数时,它最终会改变与我所做的无关的其他值。调用函数更改奇怪值
我已经定义
typedef struct {
double x;
double y;
} coordinate;
class collisionBox {
public:
double x, y, lineOfSight, length, width;
int index, angle;
coordinate cornerPosition (int number); //corners go clockwise from top
coordinate position (void);
coordinate lineOfSightLocation (void);
collisionBox (void);
};
在该函数的问题出现了:
aCollision collisionImminent (collisionBox object)
{
coordinate corners[3], lOS;
aCollision result;
int n = 0;
while (n <= boxIndex) {
if (n != object.index) {
corners[0] = allBoxes[n]->cornerPosition(1);
corners[1] = allBoxes[n]->cornerPosition(2);
corners[2] = allBoxes[n]->cornerPosition(3);
corners[3] = allBoxes[n]->cornerPosition(4);
cout << "corners[3].y = " << corners[3].y << "\n";
lOS = object.lineOfSightLocation();
cout << "corners[3].y = " << corners[3].y << "\n";
角的值[3] .Y更改后我请object.lineOfSightLocation()(其改变为我不明白为什么...
这里的其他功能:
coordinate collisionBox::lineOfSightLocation (void)
{
coordinate lOS;
lOS.x = x + cos(angle * RADIANS) * lineOfSight;
lOS.y = y + sin(angle * RADIANS) * lineOfSight;
return lOS;
}
不管怎么说,感谢您的时间和帮助,我可能做一些完全错误的,但我真的不知道它是什么...
时空确实停止了现有的,但只是暂时的,为0秒。 – intuited 2011-04-04 04:11:07