Fixed fElapsedTime bug going negative seemingly randomly. Thank std::chrono::library::that::is::way::too::annoying::to::use::and::apparently::is::not::ultra::accurate
This commit is contained in:
parent
9ebe5a21a0
commit
24030733bd
@ -96,7 +96,7 @@ bool Crawler::OnUserCreate(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Crawler::OnUserUpdate(float fElapsedTime){
|
bool Crawler::OnUserUpdate(float fElapsedTime){
|
||||||
fElapsedTime=std::min(1/60.f,fElapsedTime);
|
fElapsedTime=std::clamp(fElapsedTime,0.f,1/60.f);
|
||||||
HandleUserInput(fElapsedTime);
|
HandleUserInput(fElapsedTime);
|
||||||
UpdateEffects(fElapsedTime);
|
UpdateEffects(fElapsedTime);
|
||||||
player->Update(fElapsedTime);
|
player->Update(fElapsedTime);
|
||||||
@ -727,16 +727,16 @@ void Crawler::RenderHud(){
|
|||||||
player->GetAbility3(),
|
player->GetAbility3(),
|
||||||
player->GetAbility4(),
|
player->GetAbility4(),
|
||||||
};
|
};
|
||||||
std::vector<Ability>activeCooldowns;
|
std::vector<Ability>activeCooldowns{};
|
||||||
std::copy_if(cooldowns.begin(),cooldowns.end(),std::back_inserter(activeCooldowns),[](Ability a){
|
std::copy_if(cooldowns.begin(),cooldowns.end(),std::back_inserter(activeCooldowns),[](Ability&a){
|
||||||
return a.cooldown>0;
|
return a.cooldown>0;
|
||||||
});
|
});
|
||||||
std::sort(activeCooldowns.begin(),activeCooldowns.end(),[](Ability&a1,Ability&a2){
|
std::sort(activeCooldowns.begin(),activeCooldowns.end(),[&](Ability&a1,Ability&a2){
|
||||||
return a1.cooldown<a2.cooldown;
|
return a1.cooldown<a2.cooldown;
|
||||||
});
|
});
|
||||||
int offset=6*activeCooldowns.size();
|
int offset=6*activeCooldowns.size();
|
||||||
for(Ability&a:activeCooldowns){
|
for(Ability&a:activeCooldowns){
|
||||||
if(a.cooldown>0){
|
if(a.cooldown>0.1){
|
||||||
FillRectDecal(vf2d{10,ScreenHeight()-22.f}-vf2d{0,float(offset)},{64,6},BLACK);
|
FillRectDecal(vf2d{10,ScreenHeight()-22.f}-vf2d{0,float(offset)},{64,6},BLACK);
|
||||||
FillRectDecal(vf2d{11,ScreenHeight()-21.f}-vf2d{0,float(offset)},{62,4},DARK_GREY);
|
FillRectDecal(vf2d{11,ScreenHeight()-21.f}-vf2d{0,float(offset)},{62,4},DARK_GREY);
|
||||||
GradientFillRectDecal(vf2d{10,ScreenHeight()-22.f}-vf2d{0,float(offset)},{(a.cooldown/a.COOLDOWN_TIME)*64,6},a.barColor1,a.barColor1,a.barColor2,a.barColor2);
|
GradientFillRectDecal(vf2d{10,ScreenHeight()-22.f}-vf2d{0,float(offset)},{(a.cooldown/a.COOLDOWN_TIME)*64,6},a.barColor1,a.barColor1,a.barColor2,a.barColor2);
|
||||||
|
@ -14,7 +14,8 @@
|
|||||||
#define INFINITE 999999
|
#define INFINITE 999999
|
||||||
|
|
||||||
#define SETUP_CLASS(class) \
|
#define SETUP_CLASS(class) \
|
||||||
class::class(){} \
|
class::class() \
|
||||||
|
:Player::Player(){} \
|
||||||
class::class(Player*player) \
|
class::class(Player*player) \
|
||||||
:Player::Player(player){} \
|
:Player::Player(player){} \
|
||||||
Class class::GetClass(){return cl;} \
|
Class class::GetClass(){return cl;} \
|
||||||
|
@ -265,11 +265,26 @@ void Player::Update(float fElapsedTime){
|
|||||||
animation.UpdateState(internal_animState,fElapsedTime);
|
animation.UpdateState(internal_animState,fElapsedTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rightClickAbility.cooldown=std::max(0.f,rightClickAbility.cooldown-fElapsedTime);
|
rightClickAbility.cooldown-=fElapsedTime;
|
||||||
ability.cooldown=std::max(0.f,ability.cooldown-fElapsedTime);
|
ability.cooldown-=fElapsedTime;
|
||||||
ability2.cooldown=std::max(0.f,ability2.cooldown-fElapsedTime);
|
ability2.cooldown-=fElapsedTime;
|
||||||
ability3.cooldown=std::max(0.f,ability3.cooldown-fElapsedTime);
|
ability3.cooldown-=fElapsedTime;
|
||||||
ability4.cooldown=std::max(0.f,ability4.cooldown-fElapsedTime);
|
ability4.cooldown-=fElapsedTime;
|
||||||
|
if(rightClickAbility.cooldown<0){
|
||||||
|
rightClickAbility.cooldown=0;
|
||||||
|
}
|
||||||
|
if(ability.cooldown<0){
|
||||||
|
ability.cooldown=0;
|
||||||
|
}
|
||||||
|
if(ability2.cooldown<0){
|
||||||
|
ability2.cooldown=0;
|
||||||
|
}
|
||||||
|
if(ability3.cooldown<0){
|
||||||
|
ability3.cooldown=0;
|
||||||
|
}
|
||||||
|
if(ability4.cooldown<0){
|
||||||
|
ability4.cooldown=0;
|
||||||
|
}
|
||||||
for(Monster&m:MONSTER_LIST){
|
for(Monster&m:MONSTER_LIST){
|
||||||
if(iframe_time==0&&OnUpperLevel()==m.OnUpperLevel()&&geom2d::overlaps(geom2d::circle(pos,12*size/2),geom2d::circle(m.GetPos(),12*m.GetSizeMult()/2))){
|
if(iframe_time==0&&OnUpperLevel()==m.OnUpperLevel()&&geom2d::overlaps(geom2d::circle(pos,12*size/2),geom2d::circle(m.GetPos(),12*m.GetSizeMult()/2))){
|
||||||
if(m.IsAlive()){
|
if(m.IsAlive()){
|
||||||
|
@ -12,11 +12,11 @@ INCLUDE_game
|
|||||||
|
|
||||||
std::string Ranger::name="Ranger";
|
std::string Ranger::name="Ranger";
|
||||||
Class Ranger::cl=RANGER;
|
Class Ranger::cl=RANGER;
|
||||||
Ability Ranger::rightClickAbility={"Retreat",7,0,VERY_DARK_BLUE,DARK_BLUE};
|
Ability Ranger::rightClickAbility=Ability("Retreat",7,0,VERY_DARK_BLUE,DARK_BLUE);
|
||||||
Ability Ranger::ability1={"Rapid Fire",12,35};
|
Ability Ranger::ability1=Ability("Rapid Fire",12,35);
|
||||||
Ability Ranger::ability2={"Charged Shot",15,40};
|
Ability Ranger::ability2=Ability("Charged Shot",15,40);
|
||||||
Ability Ranger::ability3={"Multishot",25,50};
|
Ability Ranger::ability3=Ability("Multishot",25,50);
|
||||||
Ability Ranger::ability4={"???",0,0};
|
Ability Ranger::ability4=Ability("???",0,0);
|
||||||
AnimationState Ranger::idle_n=RANGER_IDLE_N;
|
AnimationState Ranger::idle_n=RANGER_IDLE_N;
|
||||||
AnimationState Ranger::idle_e=RANGER_IDLE_E;
|
AnimationState Ranger::idle_e=RANGER_IDLE_E;
|
||||||
AnimationState Ranger::idle_s=RANGER_IDLE_S;
|
AnimationState Ranger::idle_s=RANGER_IDLE_S;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#define VERSION_MAJOR 0
|
#define VERSION_MAJOR 0
|
||||||
#define VERSION_MINOR 2
|
#define VERSION_MINOR 2
|
||||||
#define VERSION_PATCH 0
|
#define VERSION_PATCH 0
|
||||||
#define VERSION_BUILD 803
|
#define VERSION_BUILD 810
|
||||||
|
|
||||||
#define stringify(a) stringify_(a)
|
#define stringify(a) stringify_(a)
|
||||||
#define stringify_(a) #a
|
#define stringify_(a) #a
|
||||||
|
Loading…
x
Reference in New Issue
Block a user