parent
284078dcac
commit
7968d0a8ef
Binary file not shown.
@ -1,71 +1,20 @@ |
|||||||
|
#include <memory> |
||||||
#define OLC_PGE_APPLICATION |
#define OLC_PGE_APPLICATION |
||||||
#include "pixelGameEngine.h" |
#include "pixelGameEngine.h" |
||||||
|
|
||||||
using namespace olc; |
using namespace olc; |
||||||
|
|
||||||
class BoxBorder : public olc::PixelGameEngine |
struct MyStruct{ |
||||||
{ |
int val=4; |
||||||
public: |
friend std::ostream&operator<<(std::ostream&os,MyStruct&rhs){ |
||||||
BoxBorder() |
printf("Called\n"); |
||||||
{ |
return os; |
||||||
sAppName = "Box Border"; |
|
||||||
} |
|
||||||
|
|
||||||
public: |
|
||||||
Decal*box; |
|
||||||
|
|
||||||
void DrawBorderBox(const vd2d&pos,const vd2d&size,const vd2d&borderScale={1,1}) { |
|
||||||
vd2d scaledCorner={13*(float)borderScale.x,13*(float)borderScale.y}; |
|
||||||
DrawPartialDecal(pos,scaledCorner,box,{0,0},{13,13}); //Upper-Left Corner
|
|
||||||
vd2d ULOffset={13*(float)borderScale.x,0}; |
|
||||||
DrawPartialDecal(pos+ULOffset,{(float)size.x-26*(float)borderScale.x,13*(float)borderScale.y},box,{13,0},{91,13}); //Top
|
|
||||||
vd2d UROffset={size.x-13*(float)borderScale.x,0}; |
|
||||||
DrawPartialDecal(pos+UROffset,scaledCorner,box,{104,0},{13,13}); //Upper-Right Corner
|
|
||||||
vd2d ULBottomOffset={0,13*(float)borderScale.y}; |
|
||||||
DrawPartialDecal(pos+ULBottomOffset,{13*(float)borderScale.x,(float)size.y-25*(float)borderScale.y},box,{0,13},{13,73});//Left
|
|
||||||
vd2d BLOffset={0,size.y-13*(float)borderScale.y}; |
|
||||||
DrawPartialDecal(pos+BLOffset,scaledCorner,box,{0,86},{13,13}); //Bottom-Left Corner
|
|
||||||
vd2d BLLeftOffset={13*(float)borderScale.x,size.y-(13+0.05)*(float)borderScale.y}; |
|
||||||
DrawPartialDecal(pos+BLLeftOffset,{(float)size.x-26*(float)borderScale.x,13*(float)borderScale.y},box,{13,86},{91,13}); //Bottom
|
|
||||||
vd2d BROffset={size.x-13*(float)borderScale.x,size.y-13*(float)borderScale.y}; |
|
||||||
DrawPartialDecal(pos+BROffset,scaledCorner,box,{104,86},{13,13}); //Bottom-Right Corner
|
|
||||||
vd2d TROffset={size.x-13*(float)borderScale.x,13*(float)borderScale.y}; |
|
||||||
DrawPartialDecal(pos+TROffset,{13*(float)borderScale.x,(float)size.y-25*(float)borderScale.y},box,{104,13},{13,73});//Right
|
|
||||||
} |
|
||||||
|
|
||||||
bool OnUserCreate() override |
|
||||||
{ |
|
||||||
box = new Decal(new Sprite("border.png"),false,true); |
|
||||||
return true; |
|
||||||
} |
|
||||||
|
|
||||||
vd2d borderSize={1,1}; |
|
||||||
|
|
||||||
bool OnUserUpdate(float fElapsedTime) override |
|
||||||
{ |
|
||||||
if (GetMouseWheel()>0) { |
|
||||||
borderSize.x+=0.1; |
|
||||||
borderSize.y+=0.1; |
|
||||||
} else
|
|
||||||
if (GetMouseWheel()<0) { |
|
||||||
borderSize.x-=0.1; |
|
||||||
borderSize.y-=0.1; |
|
||||||
} |
|
||||||
|
|
||||||
vd2d boxPos={24,24}; |
|
||||||
vd2d boxSize=GetMousePos()-boxPos; |
|
||||||
FillRectDecal(boxPos,boxSize,GREY); |
|
||||||
DrawBorderBox(boxPos,boxSize,borderSize); |
|
||||||
return true; |
|
||||||
} |
} |
||||||
}; |
}; |
||||||
|
|
||||||
|
|
||||||
int main() |
int main() |
||||||
{ |
{ |
||||||
BoxBorder demo; |
MyStruct*st=new MyStruct({5}); |
||||||
if (demo.Construct(256, 240, 4, 4)) |
std::cout<<*st<<std::endl; |
||||||
demo.Start(); |
|
||||||
|
|
||||||
return 0; |
return 0; |
||||||
} |
} |
Loading…
Reference in new issue