sigonasr2 6 months ago
parent d3bc589235
commit b114907cae
  1. 2
      src/HamsterGame.cpp
  2. 14
      src/Menu.cpp
  3. 10
      src/Menu.h

@ -497,7 +497,7 @@ void HamsterGame::DrawRadar(){
}; };
const auto DeferRenderingBasedOnPosition=[this,&icon](const vf2d&pos,const IconType powerupIcon,const uint8_t iconAlpha){ const auto DeferRenderingBasedOnPosition=[this,&icon](const vf2d&pos,const IconType powerupIcon,const uint8_t iconAlpha){
if(geom2d::contains(geom2d::circle<float>{{43.f+5.f,44.f+8.f},43},geom2d::rect<float>{pos-vf2d{8.f,8.f},{16.f,16.f}}))DrawPartialRotatedDecal(pos+vf2d{5.f,8.f},GetGFX("radaricons.png").Decal(),0.f,{8.f,8.f},icon.at(powerupIcon).pos,icon.at(powerupIcon).size,{1.f,1.f},{255,255,255,iconAlpha}); if(geom2d::contains(geom2d::circle<float>{{43.f+5.f,44.f+8.f},43},pos+vf2d{5.f,8.f}))DrawPartialRotatedDecal(pos+vf2d{5.f,8.f},GetGFX("radaricons.png").Decal(),0.f,{8.f,8.f},icon.at(powerupIcon).pos,icon.at(powerupIcon).size,{1.f,1.f},{255,255,255,iconAlpha});
}; };
for(const Powerup&powerup:Powerup::GetPowerups()){ for(const Powerup&powerup:Powerup::GetPowerups()){

@ -98,7 +98,11 @@ void Menu::Transition(const TransitionType type,const MenuType gotoMenu,const fl
currentTransition=type; currentTransition=type;
} }
void Menu::OnMenuTransition(){ void Menu::OnMenuTransition(){
selectedButton.reset();
switch(currentMenu){ switch(currentMenu){
case MAIN_MENU:{
//selectedButton
}break;
case LOADING:{ case LOADING:{
colorNumb=util::random()%8+1; colorNumb=util::random()%8+1;
loading=true; loading=true;
@ -208,4 +212,14 @@ void Menu::OnLevelLoaded(){
void Menu::UpdateLoadingProgress(const float pctLoaded){ void Menu::UpdateLoadingProgress(const float pctLoaded){
loadingPct=pctLoaded; loadingPct=pctLoaded;
}
Menu::Button::Button(const vf2d pos,std::string buttonText,Renderable&buttonImg,std::function<void()>onClick)
:pos(pos),buttonText(buttonText),buttonImg(buttonImg),onClick(onClick){}
void Menu::Button::Update(const float fElapsedTime){
}
void Menu::Button::Draw(HamsterGame&game){
} }

@ -38,11 +38,19 @@ All rights reserved.
#pragma once #pragma once
#include "olcPixelGameEngine.h" #include "olcPixelGameEngine.h"
#include <functional>
class HamsterGame; class HamsterGame;
class Menu{ class Menu{
class Button{ class Button{
std::string buttonText; std::string buttonText;
vf2d pos;
Renderable&buttonImg;
std::function<void()>onClick;
public:
Button(const vf2d pos,std::string buttonText,Renderable&buttonImg,std::function<void()>onClick={});
void Update(const float fElapsedTime);
void Draw(HamsterGame&game);
}; };
enum MenuType{ enum MenuType{
INITIALIZE, INITIALIZE,
@ -81,7 +89,9 @@ class Menu{
int colorNumb{1}; int colorNumb{1};
bool loading{false}; bool loading{false};
float loadingPct{0.f}; float loadingPct{0.f};
std::vector<Button>menuButtons;
std::string selectedMap{"StageI.tmx"}; std::string selectedMap{"StageI.tmx"};
std::optional<int>selectedButton;
void Transition(const TransitionType type,const MenuType gotoMenu,const float transitionTime); void Transition(const TransitionType type,const MenuType gotoMenu,const float transitionTime);
void Draw(HamsterGame&game,const MenuType menu,const vi2d pos); void Draw(HamsterGame&game,const MenuType menu,const vi2d pos);
void DrawTransition(HamsterGame&game); void DrawTransition(HamsterGame&game);

Loading…
Cancel
Save