Я пытаюсь написать простую игру на C ++.У меня есть класс с именем player с функцией moveLeft (); , которая постоянно отслеживает получение "a", которое я хочу запустить в отдельном потоке.
Называя его так, как я думал, яПредполагалось, что.Теперь я понимаю, что это потому, что это нестатическая функция, но я не уверен, как это сделать сейчас.Я использую библиотеку .
Класс игрока
#pragma once
class player
{
public:
player(); // Constructor
~player(); // Destructor
void moveLeft();
void moveRight();
void jump(double);
int getHealth();
double get_x_position();
double get_y_position();
double get_x_momentum();
double get_y_momentum();
bool getGrounded();
void setHealth(int);
void set_x_position(double);
void set_y_position(double);
void set_x_momentum(double);
void set_y_momentum(double);
void setGrounded(bool);
private:
int health;
bool grounded;
double x_position;
double y_position;
double x_momentum;
double y_momentum;
};
Функция moveLeft ()
void player::moveLeft()
{
while (true)
{
while (GetKeyState(97))
{
if (grounded)
{
x_momentum -= .01;
}
else
{
x_momentum -= 0.07;
}
x_position += x_momentum;
}
}
}
Как я думал, я должен был ее настроить.
thread t1(&player::moveLeft);
t1.detach();