parent
7e371f6779
commit
1bf30f4392
@ -0,0 +1,137 @@ |
|||||||
|
#include "drawutil.h" |
||||||
|
#include "Crawler.h" |
||||||
|
#include "DEFINES.h" |
||||||
|
|
||||||
|
INCLUDE_game |
||||||
|
|
||||||
|
void drawutil::DrawCrosshair(Crawler*game,geom2d::rect<float>rect,float accTime,float pulsatingAmt,float borderThickness){ |
||||||
|
vf2d crosshairExtension={std::min(0.25f*rect.size.x-borderThickness/2,12.f),std::min(0.25f*rect.size.y-borderThickness/2,12.f)}; |
||||||
|
vf2d pulseAmt=vf2d{1,1}*std::abs(std::sin(accTime*3))*2; |
||||||
|
//Lower-Left Corner
|
||||||
|
vf2d pos=rect.pos+vf2d{0,rect.size.y-borderThickness}+vf2d{-pulseAmt.x,pulseAmt.y}; |
||||||
|
vf2d size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->FillRect(pos,size,RED); |
||||||
|
pos=vf2d{pos.x,pos.y-crosshairExtension.y}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->FillRect(pos,size,RED); |
||||||
|
//Lower-Right Corner
|
||||||
|
pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,rect.size.y-borderThickness}+vf2d{pulseAmt.x,pulseAmt.y}; |
||||||
|
size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->FillRect(pos,size,RED); |
||||||
|
pos=vf2d{pos.x+crosshairExtension.x,pos.y-crosshairExtension.y}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->FillRect(pos,size,RED); |
||||||
|
//Upper-Left Corner
|
||||||
|
pos=rect.pos+vf2d{0,0}+vf2d{-pulseAmt.x,-pulseAmt.y}; |
||||||
|
size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->FillRect(pos,size,RED); |
||||||
|
pos=vf2d{pos.x,pos.y+borderThickness}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->FillRect(pos,size,RED); |
||||||
|
//Upper-Right Corner
|
||||||
|
pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,0}+vf2d{pulseAmt.x,-pulseAmt.y}; |
||||||
|
size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->FillRect(pos,size,RED); |
||||||
|
pos=vf2d{pos.x+crosshairExtension.x,pos.y+borderThickness}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->FillRect(pos,size,RED); |
||||||
|
}; |
||||||
|
|
||||||
|
void drawutil::DrawCrosshairTransformedView(olc::TransformedView&view,geom2d::rect<float>rect,float accTime,float pulsatingAmt,float borderThickness){ |
||||||
|
vf2d crosshairExtension={std::min(0.25f*rect.size.x-borderThickness/2,12.f),std::min(0.25f*rect.size.y-borderThickness/2,12.f)}; |
||||||
|
vf2d pulseAmt=vf2d{1,1}*std::abs(std::sin(accTime*3))*2; |
||||||
|
//Lower-Left Corner
|
||||||
|
vf2d pos=rect.pos+vf2d{0,rect.size.y-borderThickness}+vf2d{-pulseAmt.x,pulseAmt.y}; |
||||||
|
vf2d size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->view.FillRect(pos,size,RED); |
||||||
|
pos=vf2d{pos.x,pos.y-crosshairExtension.y}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->view.FillRect(pos,size,RED); |
||||||
|
//Lower-Right Corner
|
||||||
|
pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,rect.size.y-borderThickness}+vf2d{pulseAmt.x,pulseAmt.y}; |
||||||
|
size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->view.FillRect(pos,size,RED); |
||||||
|
pos=vf2d{pos.x+crosshairExtension.x,pos.y-crosshairExtension.y}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->view.FillRect(pos,size,RED); |
||||||
|
//Upper-Left Corner
|
||||||
|
pos=rect.pos+vf2d{0,0}+vf2d{-pulseAmt.x,-pulseAmt.y}; |
||||||
|
size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->view.FillRect(pos,size,RED); |
||||||
|
pos=vf2d{pos.x,pos.y+borderThickness}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->view.FillRect(pos,size,RED); |
||||||
|
//Upper-Right Corner
|
||||||
|
pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,0}+vf2d{pulseAmt.x,-pulseAmt.y}; |
||||||
|
size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->view.FillRect(pos,size,RED); |
||||||
|
pos=vf2d{pos.x+crosshairExtension.x,pos.y+borderThickness}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->view.FillRect(pos,size,RED); |
||||||
|
} |
||||||
|
|
||||||
|
void drawutil::DrawCrosshairDecal(Crawler*game,geom2d::rect<float>rect,float accTime,float pulsatingAmt,float borderThickness){ |
||||||
|
vf2d crosshairExtension={std::min(0.25f*rect.size.x-borderThickness/2,12.f),std::min(0.25f*rect.size.y-borderThickness/2,12.f)}; |
||||||
|
vf2d pulseAmt=vf2d{1,1}*std::abs(std::sin(accTime*3))*2; |
||||||
|
//Lower-Left Corner
|
||||||
|
vf2d pos=rect.pos+vf2d{0,rect.size.y-borderThickness}+vf2d{-pulseAmt.x,pulseAmt.y}; |
||||||
|
vf2d size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->FillRectDecal(pos,size,RED); |
||||||
|
pos=vf2d{pos.x,pos.y-crosshairExtension.y}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->FillRectDecal(pos,size,RED); |
||||||
|
//Lower-Right Corner
|
||||||
|
pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,rect.size.y-borderThickness}+vf2d{pulseAmt.x,pulseAmt.y}; |
||||||
|
size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->FillRectDecal(pos,size,RED); |
||||||
|
pos=vf2d{pos.x+crosshairExtension.x,pos.y-crosshairExtension.y}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->FillRectDecal(pos,size,RED); |
||||||
|
//Upper-Left Corner
|
||||||
|
pos=rect.pos+vf2d{0,0}+vf2d{-pulseAmt.x,-pulseAmt.y}; |
||||||
|
size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->FillRectDecal(pos,size,RED); |
||||||
|
pos=vf2d{pos.x,pos.y+borderThickness}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->FillRectDecal(pos,size,RED); |
||||||
|
//Upper-Right Corner
|
||||||
|
pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,0}+vf2d{pulseAmt.x,-pulseAmt.y}; |
||||||
|
size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->FillRectDecal(pos,size,RED); |
||||||
|
pos=vf2d{pos.x+crosshairExtension.x,pos.y+borderThickness}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->FillRectDecal(pos,size,RED); |
||||||
|
}; |
||||||
|
|
||||||
|
void drawutil::DrawCrosshairDecalTransformedView(olc::TransformedView&view,geom2d::rect<float>rect,float accTime,float pulsatingAmt,float borderThickness){ |
||||||
|
vf2d crosshairExtension={std::min(0.25f*rect.size.x-borderThickness/2,12.f),std::min(0.25f*rect.size.y-borderThickness/2,12.f)}; |
||||||
|
vf2d pulseAmt=vf2d{1,1}*std::abs(std::sin(accTime*3))*2; |
||||||
|
//Lower-Left Corner
|
||||||
|
vf2d pos=rect.pos+vf2d{0,rect.size.y-borderThickness}+vf2d{-pulseAmt.x,pulseAmt.y}; |
||||||
|
vf2d size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->view.FillRectDecal(pos,size,RED); |
||||||
|
pos=vf2d{pos.x,pos.y-crosshairExtension.y}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->view.FillRectDecal(pos,size,RED); |
||||||
|
//Lower-Right Corner
|
||||||
|
pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,rect.size.y-borderThickness}+vf2d{pulseAmt.x,pulseAmt.y}; |
||||||
|
size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->view.FillRectDecal(pos,size,RED); |
||||||
|
pos=vf2d{pos.x+crosshairExtension.x,pos.y-crosshairExtension.y}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->view.FillRectDecal(pos,size,RED); |
||||||
|
//Upper-Left Corner
|
||||||
|
pos=rect.pos+vf2d{0,0}+vf2d{-pulseAmt.x,-pulseAmt.y}; |
||||||
|
size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->view.FillRectDecal(pos,size,RED); |
||||||
|
pos=vf2d{pos.x,pos.y+borderThickness}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->view.FillRectDecal(pos,size,RED); |
||||||
|
//Upper-Right Corner
|
||||||
|
pos=rect.pos+vf2d{rect.size.x-borderThickness-crosshairExtension.x,0}+vf2d{pulseAmt.x,-pulseAmt.y}; |
||||||
|
size={borderThickness+crosshairExtension.x,borderThickness}; |
||||||
|
game->view.FillRectDecal(pos,size,RED); |
||||||
|
pos=vf2d{pos.x+crosshairExtension.x,pos.y+borderThickness}; |
||||||
|
size={borderThickness,crosshairExtension.y}; |
||||||
|
game->view.FillRectDecal(pos,size,RED); |
||||||
|
} |
@ -0,0 +1,11 @@ |
|||||||
|
#pragma once |
||||||
|
#include "olcUTIL_Geometry2D.h" |
||||||
|
#include "olcPGEX_TransformedView.h" |
||||||
|
class Crawler; |
||||||
|
|
||||||
|
namespace drawutil{ |
||||||
|
void DrawCrosshair(Crawler*game,geom2d::rect<float>rect,float accTime,float pulsatingAmt=2,float borderThickness=4); |
||||||
|
void DrawCrosshairTransformedView(TransformedView&view,geom2d::rect<float>rect,float accTime,float pulsatingAmt=2,float borderThickness=4); |
||||||
|
void DrawCrosshairDecal(Crawler*game,geom2d::rect<float>rect,float accTime,float pulsatingAmt=2,float borderThickness=4); |
||||||
|
void DrawCrosshairDecalTransformedView(TransformedView&view,geom2d::rect<float>rect,float accTime,float pulsatingAmt=2,float borderThickness=4); |
||||||
|
} |
@ -1,4 +1,4 @@ |
|||||||
#include "utils.h" |
#include "util.h" |
||||||
#include "olcPixelGameEngine.h" |
#include "olcPixelGameEngine.h" |
||||||
|
|
||||||
float util::random(float range){ |
float util::random(float range){ |
Loading…
Reference in new issue