1
我有這兩種方法叫做一個又一個;變量不明原因變化
m_Fence.Initialise(7);
m_Fence.CreateSquareFence();
下面是他們的每個細節;
void CFence::Initialise(int size)
{
m_square_size = size;
}
void CFence::CreateSquareFence()
{
int l_Vector_Pos = 0;
//Set initial vector at origin and start of first fence
CVector3f l_Fence_Position = CVector3f(0.0f,0.0f,0.0f);
int l_side = 0; // Makes sure only 4 sides get created
std::string bools[4] = {"plus_z", "plus_x", "minus_z", "minus_x"};
//Draw 1st fence on 0 x-axis
while(l_side < 4)
{
for(int i=0 ; i<=m_square_size ; i++)
{
//Find which direction it's going and set Fence position and add to vector
if(bools[l_side] == "plus_z" && i>0)
l_Fence_Position += CVector3f(0.0,0.0,beamLength);
else if(bools[l_side] == "plus_x" && i>0)
l_Fence_Position += CVector3f(beamLength,0.0,0.0);
else if(bools[l_side] == "minus_z" && i>0)
l_Fence_Position += CVector3f(0.0,0.0,-beamLength);
else if(bools[l_side] == "minus_x" && i>0)
l_Fence_Position += CVector3f(-beamLength,0.0,0.0);
fences[l_Vector_Pos].setPosition(l_Fence_Position);
l_Vector_Pos++;
//Increase this int to let it know what side we're creating
if(i == m_square_size)
{
l_side++;
}
}
}
}
我通過7到和它最初改變m_square_size
變量7,但是當我調用CreateSquareFence
方法它最終成爲0,我掙扎明白。
設置一個內存斷點。 –
你可以將'm_square_size'封裝在getter方法中。 –
「柵欄」是如何定義初始化的?你有可能在這裏超越數組嗎? – Angew