void World::startVideo() { QSound::play("data/menu.wav"); Wall *base = new Wall(2); _playerBase = base; Tank *tank = new Tank; _playerTank = tank; _enemyLife = 0; _playerLife = 0; tank = new Tank; tank->setPos(QPoint(225,450)); tank->setTeam(0); tank->move(true); tank->setSpeed(3); _tankList.append(tank); tank = new Tank; tank->setPos(QPoint(175,510)); tank->setTeam(1); tank->move(true); tank->setSpeed(2); _tankList.append(tank); tank = new Tank; tank->setPos(QPoint(245,510)); tank->setTeam(1); tank->move(true); tank->setSpeed(2); _tankList.append(tank); _isVideo = true; }
void mySpecialKeyboard(int key, int x, int y) { switch (key) { case GLUT_KEY_LEFT: //move to left myTank.plusAngleWithX(gAngleTankDelta); break; case GLUT_KEY_RIGHT: //move to right myTank.plusAngleWithX(-gAngleTankDelta); break; case GLUT_KEY_UP: //move to up myTank.move(gMoveDelta); break; case GLUT_KEY_DOWN: //move to right myTank.move(-gMoveDelta); break; case GLUT_KEY_F1: //view 1 gViewMode = 0; break; case GLUT_KEY_F2: //view 2 gViewMode = 1; break; case GLUT_KEY_F3: //view 3 gViewMode = 2; break; } }
void keyboardSpecialHandler(int key, int mooseX, int mooseY){ /*if(key==GLUT_KEY_UP)//just for testing and fun myTank.barrelAngle++; else if(key==GLUT_KEY_DOWN) myTank.barrelAngle--;*/ if(key==GLUT_KEY_LEFT)//just for testing and fun myTank.move(-1); else if(key==GLUT_KEY_RIGHT) myTank.move(1); glutPostRedisplay(); }
void World::playVideo() { if (_tankList.size() == 3) { _other++; if (_other % 30 == 0) { fire(_tankList[1]); } else if (_other % 51 == 0) { fire(_tankList[2]); } } else if (_tankList.size() == 2 & _other > 0 & _other < 1000) { _tankList[0]->move(false); _tankList[1]->move(false); _tankList[0]->rotate(3); _tankList[1]->rotate(1); _other = 0; } else if (_tankList.size() == 2 &_other == 0) { _other = -1; for (int q = 0; q < 8; q ++) { Tank *tank = new Tank; tank->setPos(QPoint(q * 50 + 12 * q + 6,-50)); tank->setTeam(0); tank->setAngle(2); tank->setSpeed(1); tank->move(true); _tankList.append(tank); } } else if (_other <= -1 & _other > -50) { _other--; } else if (_other == -50) { _other--; _tankList[0]->setAngle(2); _tankList[1]->setAngle(2); _tankList[0]->move(true); _tankList[1]->move(true); } else if (_other <= -51 & _tankList.size() == 10) { _other--; if (_other % 50 == 0) { for (int q = 0 ; q < 8; q ++) { fire(_tankList[q + 2]); } } } else if ( _tankList.size() == 8 & _other < 0) { Tank *tank = new Tank; tank->setTeam(2); tank->setPos(QPoint(156, - 70)); tank->setAngle(2); tank->setSpeed(1); tank->setSize(0); tank->move(true); _tankList.append(tank); } else if (_tankList.size() == 9 & _other < 0) { if (_tankList[8]->getPos().y() == 216) { _tankList[8]->move(false); _other = 0; } } else if (_tankList.size() == 9 & _other >= 0) { _other++; if (_other == 625) { for (int q = 0; q < _tankList.size() - 1; q++) { delete _tankList[0]; } _tankList.remove(0,8); for (int q = 0; q < 8; q ++) { Tank *tank = new Tank; tank->setPos(QPoint(-50,q * 50 + 12 * q + 6)); tank->setTeam(0); tank->setAngle(1); tank->setSpeed(rand() % 4 + 1); tank->move(true); _tankList.append(tank); } for (int q = 0; q < 8; q ++) { Tank *tank = new Tank; tank->setPos(QPoint(550,q * 50 + 12 * q + 6)); tank->setTeam(1); tank->setAngle(3); tank->setSpeed(rand() % 4 + 1); tank->move(true); _tankList.append(tank); } _other = 1000; } } else if (_other == 1000 & _tankList.size() != 1) { for (int q = 1; q < _tankList.size(); q ++) { int f = rand() % 2; if (f == 1) { fire(_tankList[q]); } } } else if (_other >= 1000 & _tankList.size() == 1){ _other++; if (_other == 1100) { delete _playerBase; delete _playerTank; gameOver(); loadMission(0); _isVideo = false; } } }