Player::Player() { isPlayer = true; isBot = false; timer = new QTimer(); connect(timer,SIGNAL(timeout()),this,SLOT(keyActions())); keyDelay = 20; // задержка между действиями клавиш wou = false; // нажатые кнопки mf = mb = rr = rl = hr = hl = fr = false; // стрельба fireTime = 2000; alive = true; isFiring = 0; defaultTank(); game->centerOn(this); //звук перезарядки bulletready = new QMediaPlayer(); bulletready->setMedia(QUrl("qrc:/sounds/sounds/tank/reload.mp3")); bulletready->setVolume(game->veffects); // выделить танк на сцене - для действий с ним setFlag(QGraphicsItem::ItemIsFocusable); setFocus(); }
/** * The loop for the program. */ void loop(int n) { keyActions(); long old_start_loop = start_loop; start_loop = (long) glutGet(GLUT_ELAPSED_TIME); float dt = (float) (start_loop - old_start_loop); dt /= d_time; if (is_screen_saver) { screenSaver(dt); } glutWarpPointer(GW / 2, GH / 2); //Cursor At Center of Screen /* Allows movement */ lastx = p2wx(GW / 2); lasty = p2wy(g2py(GH / 2)); //lasty = p2wy(GH / 2); /* Updates all objects in world */ for (unsigned int i = 0; i < objs.size(); i++) { objs[i]->update(dt); } glutPostRedisplay(); glutTimerFunc(d_time, loop, d_time); }
void Player::onKey() { keyActions(); emit KeyPressed(); if (alive == true && (mf == true || mb == true || rl == true || rr == true || hl == true || hr == true || fr == true || fireReady == false || tankhrotate->state() == QMediaPlayer::PlayingState || out == true)) { timer->start(keyDelay); } }