我正在使用Qt在C ++中创建2d应用程序。我有2个可以向左或向右移动的玩家。我想同时移动两个,但目前一次只能移动一个。
示例:如果我使用LEFT_ARROW,它将移动玩家1,并且如果我按下KEY_A(同时按下LEFT_ARROW),玩家1将停止,玩家2将开始移动。
如何使它们同时运动?
这是我的keyPressEvent
方法:
void TerrainTest::keyPressEvent(QKeyEvent *e)
{
switch ( e->key() )
{
case Qt::Key_Left:
if(player1->x()-10>=-640)
{
player1->moveLeft();
qDebug() << player1->x();
}
else
{
player1->setPos(-640,player1->y());
}
break;
case Qt::Key_Right:
if(player1->x()+10<=1180)
{
player1->moveRight();
}
else
{
player1->setPos(1180,player1->y());
}
break;
case Qt::Key_A:
if(player2->x()-10>=-640)
{
player2->moveLeft();
}
else
{
player2->setPos(-640,player2->y());
}
break;
case Qt::Key_D:
if(player2->x()+10<=1180)
{
player2->moveRight();
}
else
{
player2->setPos(1180,player2->y());
}
break;
}
}