//----------------------------------------------------------------- void GABot::randomTeam(int TeamNumber) { if (TeamNumber == 0){ if (TeamA) delete TeamA; TeamA = new Team(this); TeamA->randomTeam(5); connect( TeamA, SIGNAL(botMove(Coordinate,Coordinate)), this, SLOT(slotBotMoveA(Coordinate,Coordinate))); connect( TeamA, SIGNAL(botDirection(Coordinate,Direction)), this, SLOT(slotBotDirectionA(Coordinate,Direction))); }else if (TeamNumber == 1){ if (TeamB) delete TeamB; TeamB = new Team(this); TeamB->randomTeam(5); connect( TeamB, SIGNAL(botMove(Coordinate,Coordinate)), this, SLOT(slotBotMoveB(Coordinate,Coordinate))); connect( TeamB, SIGNAL(botDirection(Coordinate,Direction)), this, SLOT(slotBotDirectionB(Coordinate,Direction))); } if (TeamA && TeamB){ prepareGame(); emit(gameReady(TRUE)); } }
//----------------------------------------------------------------- int GABot::loadTeamFromFile( QString Filename, int TeamNumber ) { int Err=0; TeamData data; if (TeamNumber == 0) { TeamA = data.readTeamData(Filename); if (TeamA) { Err = 1; insertChild(TeamA); connect( TeamA, SIGNAL(botMove(Coordinate,Coordinate)), this, SLOT(slotBotMoveA(Coordinate,Coordinate))); connect( TeamA, SIGNAL(botDirection(Coordinate,Direction)), this, SLOT(slotBotDirectionA(Coordinate,Direction))); } } else if (TeamNumber == 1) { TeamB = data.readTeamData(Filename); if (TeamB) { Err = 1; insertChild(TeamB); connect( TeamB, SIGNAL(botMove(Coordinate,Coordinate)), this, SLOT(slotBotMoveB(Coordinate,Coordinate))); connect( TeamB, SIGNAL(botDirection(Coordinate,Direction)), this, SLOT(slotBotDirectionB(Coordinate,Direction))); } } if (TeamA && TeamB) { prepareGame(); emit(gameReady(TRUE)); } return Err; }
MapController::MapController(const bool ¢erOnPlayer,const bool &debugTags,const bool &useCache,const bool &OpenGL) : MapVisualiserPlayer(centerOnPlayer,debugTags,useCache,OpenGL) { setWindowIcon(QIcon(":/icon.png")); botTileset = new Tiled::Tileset("bot",16,24); botTileset->loadFromImage(QImage(":/bot_skin.png"),":/bot_skin.png"); botNumber = 0; //the bot management if(!connect(&timerBotMove,SIGNAL(timeout()),this,SLOT(botMove()))) abort(); if(!connect(&timerBotManagement,SIGNAL(timeout()),this,SLOT(botManagement()))) abort(); timerBotMove.start(66); timerBotManagement.start(3000); playerTileset = new Tiled::Tileset("player",16,24); QString externalFile=QCoreApplication::applicationDirPath()+"/player_skin.png"; if(QFile::exists(externalFile)) { QImage externalImage(externalFile); if(!externalImage.isNull() && externalImage.width()==48 && externalImage.height()==96) playerTileset->loadFromImage(externalImage,externalFile); else playerTileset->loadFromImage(QImage(":/player_skin.png"),":/player_skin.png"); } else playerTileset->loadFromImage(QImage(":/player_skin.png"),":/player_skin.png"); playerMapObject = new Tiled::MapObject(); //the direction direction=CatchChallenger::Direction_look_at_bottom; playerMapObject->setTile(playerTileset->tileAt(7)); }
unsigned int Team::insertBot(Bot *b) { connect( b, SIGNAL(botMove(Coordinate,Coordinate)), this, SLOT(slotBotMove(Coordinate,Coordinate))); connect( b, SIGNAL(botDirection(Coordinate,Direction)), this, SLOT(slotBotDirection(Coordinate,Direction))); Bots.append(b); return Bots.at(); }
void Team::slotBotMove(Coordinate P1,Coordinate P2) { emit(botMove(P1,P2)); }