我只是试图从主文件中添加或减去类中的值,但似乎总是将此值重置为零.作为初学者,我真的不明白为什么?!每次我打印player.worldPositionY它说要么-1,1,或0(如果既不1或2个被选定- moveForward或moveBack)
我有两个简单的文件,Main.cpp:
#include <iostream>
#include "player.h"
using namespace std;
int keyboardInput;
int main()
{
Player player;
cin.get();
cin >> keyboardInput;
if (keyboardInput == 1){
player.moveForward();
} else if (keyboardInput == 2){
player.moveBack();
}
cout << "Y: " << player.worldPositionY << endl;
main();
}
Run Code Online (Sandbox Code Playgroud)
还有一个玩家:
class Player {
public:
int worldPositionY = 0;
void moveForward();
void moveBack();
};
void Player::moveForward(){worldPositionY += 1;}
void Player::moveBack(){worldPositionY -= 1;}
Run Code Online (Sandbox Code Playgroud)
我显然遗漏了一些东西.请帮忙!
你是main递归地打电话的.你不想这样做,而是这样做:
int main()
{
Player player;
while (true)
{
cin.get();
cin >> keyboardInput;
if (keyboardInput == 1){
player.moveForward();
} else if (keyboardInput == 2){
player.moveBack();
}
cout << "Y: " << player.worldPositionY << endl;
}
}
Run Code Online (Sandbox Code Playgroud)
调用main递归意味着你的player目标是重新创建每次输入一个值,这就是为什么你的价值观总是要么-1或1.
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |