2016-02-27 94 views
0

我正在做一个大学任务,其中我必须重新创建经典的青蛙游戏。轮胎运动有问题。如果陈述没有解决条件是否满足C++

for (int tZ = 0; tZ < kTyreColumnLength; tZ++) 
{ 
    for (int tX = 0; tX < kTyreRowLength; tX++) 
    { 
     eachTyre = tX + tZ; 
     tyre[eachTyre] = tyreMesh->CreateModel(0, -2.50, 0); 
     tyre[eachTyre]->Scale(10); 
     tyre[eachTyre]->SetX(tyreXs[tX]); 
     tyre[eachTyre]->SetZ(tyreZs[tZ]); 

     if (tZ % 2 == 0) 
     { 
      tyreMovingLeft[eachTyre]; 
     } 
    } 

} 

基本上,我画轮胎的方式是通过嵌套for循环。内圈绘制3个轮胎,并为每一行重复(外圈)

然后,我试图分配每个“偶数”行轮胎,布尔跟踪其方向。

tZ%2 == 0每当外循环迭代时,IS正确解析为真/假,调试器说满足条件,但它永远不会执行。

+1

你对tyreMovingLeft没有做任何事情 – 2016-02-27 15:45:28

+0

我就在我的代码中。根据调试器的问题 –

+0

你怎么知道“它永远不会执行”?它没有什么可执行的...... –

回答

1

您从未真正执行任务,您只是对您的数组编制索引。

tyreMovingLeft[eachTyre]; 

你可能是指

tyreMovingLeft[eachTyre] = true; 
+0

虽然'tyreMovingLeft'是例如'bool'的映射,那么结果已经是'tyreMovingLeft [eachType] = false;'。像往常一样,该问题不包含MCVE,因此我们无法可靠地回答它。 –

1

苏氨酸的问题是,内部块没有任何效果:

tyreMovingLeft[eachTyre]; 

所以它是由编译器优化掉了。不是一定意味着一些任务或将结果传递给某个函数吗?

+0

虽然'tyreMovingLeft'是例如'bool'的映射,那么结果是'tyreMovingLeft [eachType] = false;'。像往常一样,该问题不包含MCVE,因此我们无法可靠地回答它。 –