sách gpt4 ai đã đi

Vòng lặp while của C++

In lại 作者:塔克拉玛干 更新时间:2023-11-03 00:44:51 26 4
mua khóa gpt4 Nike

Tôi có một vector chứa 10 phần tử (để đơn giản, tất cả các phần tử đều thuộc cùng một lớp, gọi là "a"). Điều tôi muốn làm là kiểm tra xem chữ "A" không phải a) che đi bức tường hay b) che đi một chữ "A" khác. Tôi có một hàm va chạm thực hiện việc này.

想法只是让这个循环类遍历并将“A”移动到下一个位置,如果该药水导致碰撞,那么它需要在屏幕上给自己一个新的随机位置。因为屏幕很小,所以元素很有可能会放在另一个屏幕上(或墙顶等)。代码的逻辑在我的脑海中运作良好 - 但调试对象只是卡在循环中的代码,并保持在相同的位置。 “A”应该在屏幕上移动,但它保持静止!

当我注释掉 Do while 循环并将“MoveObject()”函数向上移动时,代码完美运行,“A”在屏幕上移动。就在我尝试向它添加额外功能时,它不起作用。

    void Board::Loop(void){


//Display the postion of that Element.
for (unsigned int i = 0; i <= 10; ++i){


LÀM {

if (checkCollisions(i)==true){
moveObject(i);
}
else{
objects[i]->ResetPostion();

}

}
while (checkCollisions(i) == false);
objects[i]->SetPosition(objects[i]->getXDir(),objects[i]->getYDir());
}

}

下面的类是碰撞检测。这个我后面会展开。

    bool Board::checkCollisions(int index){

char boundry = map[objects[index]->getXDir()][objects[index]->getYDir()];

//There has been no collisions - therefore don't change anything
if(boundry == SYMBOL_EMPTY){
trả về false;
}
else{
trả về giá trị đúng;

}

}

任何帮助将不胜感激。我会给你买一杯虚拟啤酒:-)

Cảm ơn

biên tập:

ResetPostion -> 这将给元素 A 在屏幕上一个随机位置moveObject -> 这将查看对象的方向并适当调整 x 和 Y 线。

1 Câu trả lời

我猜你需要:

do { ...
... } while (checkCollisions(i));

此外,如果您有 10 个元素,则 i = 0; i < 10; i++

顺便说一句。不要写 if (something == true) , 简单 if (something)hoặc if (!something)

关于C++ 做 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16022402/

26 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com