void main() { char cKey = 0; Object stateMap[gStageWidth * gStageHeight] = {}; POINT tower = { 9, 9, 5 }; POINT enemy = { 2, 2, 0 }; while (cKey != 27) { drowingGuide(); initObject(&tower, &enemy, stateMap); if (tower.isinRange(&enemy)) { printf("발사!\n"); } // 입력받은 키값을 key변수에 대입 cKey = getch(); if (_kbhit()) { cKey = getch(); enemyUpdate(cKey, &enemy, stateMap); } system("cls"); } }
void Frigate::Update() { if (type == "player") { playerUpdate(); } else if (type == "enemy" || type == "ally") { enemyUpdate(); } }
void enemyManager::update(void) { for (_liEnemyList = _lEnemyList.begin(); _liEnemyList != _lEnemyList.end(); ++_liEnemyList) { enemyUpdate(); enemyCheckUpdate(); // 충돌하지않았다면 ++iterator (삭제하면서 다음iterator로 넘기기때문에) if (_liEnemyList == _lEnemyList.end()) break; } }
void MainWindow::gameUpdate() { //update jugador updateShip(this->player); //update bullets for(int i = 0; i < playerBullets->size(); i++) { bool remove = UpdatePlayerBeam(playerBullets->at(i)); if(remove) { delete playerBullets->at(i)->myLabel; playerBullets->removeAt(i); i--; } } for(int i= 0; i < enemies->size(); i++) { enemyUpdate(enemies->at(i)); } QRect Rectplayer = player->myLabel->geometry(); //Checkeo Colisiones for(int i = 0; i < playerBullets->size(); i++) { PlayerBeam* bullet = playerBullets->at(i); QRect Rectbullet = bullet->myLabel->geometry(); if(Rectbullet.intersects(Rectplayer)) { player->lives--; delete bullet->myLabel; playerBullets->removeAt(i); i--; } for(int j = 0; j < enemies->size(); j++) { enemy_T* actEnemy = enemies->at(j); QRect RectActEnemy = actEnemy->image->geometry(); if(Rectbullet.intersects(RectActEnemy)) { hit(actEnemy); delete bullet->myLabel; playerBullets->removeAt(i); i--; break; } } } //Colisiones con el jugador for(int i = 0; i < enemies->size(); i++) { QRect RectActEnemy = enemies->at(i)->image->geometry(); if(Rectplayer.intersects(RectActEnemy)) { playerHitted = true; player->lives--; qDebug() << player->lives; hit(enemies->at(i)); } } //check gmae over if(player->lives <= 0) { emit gameEnd(); } //Checkeo Muerte de Enemigos for(int i = 0; i < enemies->size(); i++) { if(enemies->at(i)->dead) { delete enemies->at(i)->image; player->score += checkEnemyValue(enemies->at(i)->type); enemies->removeAt(i); i--; this->enemyKilled = true; } } if(enemies->size() == 0) { this->level++; generateNextLevel(); } refreshScore(); refreshLives(); }