MainCharacter::MainCharacter(SDL_Setup *sdlSetup, int *mouseX, int *mouseY, float *cameraX, float *cameraY, Environment *environment) { m_environment = environment; m_cameraX = cameraX; m_cameraY = cameraY; m_distance = 0; m_angle = 0; m_sdlSetup = sdlSetup; m_mouseX = mouseX; m_mouseY = mouseY; m_quit = false; m_follow = false; m_followPointX = 0; m_followPointY = 0; m_timeCheck = SDL_GetTicks(); m_player = new Sprite(m_sdlSetup->getRenderer(), "Assets/playerCharacter.png", 400, 300, 60, 80, m_cameraX, m_cameraY, CollisionRectangle(400 - 15, 300 - 76 + 65, 30, 15)); m_player->setStartPos(30, 76); m_player->setupAnimation(4, 4); }
Shrub::Shrub(float a_fX, float a_fY, Room* a_room) : Entity("shrub", a_fX, a_fY, a_room) { m_type = DESTROYABLE; m_pSprite->LoadSpritesheet("shrub", 16, 16, 1, 1); m_collisionRect = CollisionRectangle(0,0, m_pSprite->GetWidth(), m_pSprite->GetHeight()); m_bCollidesWithTiles = false; }
ShopOwner::ShopOwner(float a_fX, float a_fY, Player* a_pPlayer, Room* a_room) : Entity("blank", a_fX, a_fY, a_room) { m_pSprite->LoadSpritesheet("shopowner", 16, 25, 1, 1); m_pPlayer = a_pPlayer; m_collisionRect = CollisionRectangle(0, 0, m_pSprite->GetWidth(), m_pSprite->GetHeight()); m_bCollidesWithTiles = false; m_bIsVicky = false; }
Rupee::Rupee(float a_fX, float a_fY, Room* a_room) : Entity("Rupee", a_fX, a_fY, a_room) { m_type = PICKUP; m_pSprite->LoadSpritesheet("rupee_pickup", 8, 14, 3, 1); m_pSprite->AddAnimation("shine", Vector2i(0,0), Vector2i(2,0)); m_pSprite->PlayAnimation("shine", true); m_collisionRect = CollisionRectangle(0,0, m_pSprite->GetWidth(), m_pSprite->GetHeight()); m_bCollidesWithTiles = false; m_pSprite->m_fAnimationSpeed = 1; }
Flagpole::Flagpole(float a_fX, float a_fY, Level* a_level) : Entity("blank", a_fX, a_fY, a_level) { m_type = TRIGGER; m_pSprite->LoadSpritesheet("flagpole", 16, 304, 1, 1); m_collisionRect = CollisionRectangle(0,0, m_pSprite->GetWidth(), m_pSprite->GetHeight()); m_bCollidesWithTiles = false; m_bUsesGravity = false; m_pSprite->m_bIsAnimated = false; m_bFlagDown = false; m_zIndex = -1; m_pFlag = new Flag(m_position.x + 10, m_position.y + 16); m_bPullDownInitiated = false; }
BeanStalkCube::BeanStalkCube(std::string a_destination, float a_fX, float a_fY, Level* a_level) : Entity("blank", a_fX, a_fY, a_level) { m_type = STATIC; m_pSprite->LoadSpritesheet("beanstalk_cube", 32, 32, 2, 1); m_pSprite->AddAnimation("brick", Vector2i(0,0), Vector2i(0,0),10); m_pSprite->AddAnimation("used", Vector2i(1,0), Vector2i(1,0),10); m_collisionRect = CollisionRectangle(0,0,32,32); m_bCollidesWithTiles = false; m_bUsesGravity = false; m_pSprite->m_bIsAnimated = false; m_bIsUsed = false; m_bBeanStalkGrown = false; m_destination = a_destination; m_fMoveTimer = 0.5f; }
Boomerang::Boomerang(float a_fX, float a_fY, Vector2 a_direction, Entity* a_player) : Entity("", a_fX, a_fY) { m_type = PLAYER_WEAPON; m_pSprite->LoadSpritesheet("boomerang", 10, 10, 4, 1); m_pSprite->AddAnimation("throwing", Vector2i(0,0), Vector2i(3,0)); m_pSprite->PlayAnimation("throwing", true); m_pSprite->m_fAnimationSpeed = 3; m_collisionRect = CollisionRectangle(0,0, m_pSprite->GetWidth(), m_pSprite->GetHeight()); m_bCollidesWithTiles = true; m_direction = a_direction; m_player = a_player; m_bReturnToSender = false; m_fDistanceTraveled = 0; }
ChestSmall::ChestSmall(float a_fX, float a_fY, Room* a_room) : Entity("shrub", a_fX, a_fY, a_room) { m_type = STATIC; m_pSprite->LoadSpritesheet("chest_small", 16, 16, 2, 1); m_pSprite->AddAnimation("closed", Vector2i(0,0), Vector2i(0,0)); m_pSprite->AddAnimation("opened", Vector2i(1,0), Vector2i(1,0)); m_collisionRect = CollisionRectangle(0,0, m_pSprite->GetWidth(), m_pSprite->GetHeight()); m_bCollidesWithTiles = false; m_bIsOpened = false; m_bRewardShown = false; m_fShowRewardTimer = 0; TriggerChest* tC = new TriggerChest(m_position.x + 8, m_position.y + 18); Triggers->Add(tC, a_room); tC->m_pChest = this; m_pContents = Textures->m_Textures["rupee_red_chest"]; }
Entity::Entity(std::string a_tilesheetName,float a_fX, float a_fY, Room* a_room) { m_pSprite = new AnimatedSprite(); m_pSprite->LoadSpritesheet(a_tilesheetName, 24, 24, 1, 1); m_position.x = a_fX; m_position.y = a_fY; m_state = ALIVE; m_type = ENTITY; m_bIsVisible = true; m_bCollidesWithTiles = true; m_collisionRect = CollisionRectangle(0,0, m_pSprite->GetWidth(), m_pSprite->GetHeight()); if(a_room != 0) { Entities->Add(this, a_room); } else { Entities->Add(this); } }
SubMenu::SubMenu(SDL_Setup* passed_SDL_Setup, int *passed_MouseX, int *passed_MouseY, int kind) //Constructor { sdl_setup = passed_SDL_Setup; MouseX = passed_MouseX; MouseY = passed_MouseY; selectedI = 0; opSelected = false; buttonPressed = false; //Buttons newHouse = MenuOption(1,100, "images/house.png", false); newBarracks = MenuOption(2,250, "images/barracks.png", false); newVillager = MenuOption(3, 50, "images/villagerButton.png", true); newMilitia = MenuOption(5, 50, "images/militiaButton.png", true); newChampion = MenuOption(7, 150, "images/championButton.png", true); //Menu Options villagerOptions.push_back(newHouse); villagerOptions.push_back(newBarracks); TownCenterOptions.push_back(newVillager); barracksOptions.push_back(newMilitia); barracksOptions.push_back(newChampion); bar = new Sprite(sdl_setup->GetRenderer(), "images/optionsmenu.png", 0, 675, 1024, 100, CollisionRectangle(0,0,1024,100)); //Sprite menus main = newMenu(mainOptions); house = newMenu(houseOptions); barracks = newMenu(barracksOptions); villager = newMenu(villagerOptions); townCenter = newMenu(TownCenterOptions); displayed = main; type = kind; }
std::vector<Sprite*> SubMenu::newMenu(std::vector<MenuOption> passed_options) //create vector of sprites for each menu { std::vector<Sprite*> result; for( int i = 0; i < passed_options.size(); i++){ result.push_back(new Sprite(sdl_setup->GetRenderer(), passed_options[i].getPic(), (i*100), 675, 100, 100, CollisionRectangle(0,0,100,100))); } return result; }