Border box
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
7999b27b86
commit
746c91ec85
@ -1,6 +1,6 @@
|
|||||||
build.sh:ca58f10d4e30d807987ea0105930ae51 -
|
build.sh:ca58f10d4e30d807987ea0105930ae51 -
|
||||||
commit.sh:d03a46e721060c22ccb146e19d27e70a -
|
commit.sh:d03a46e721060c22ccb146e19d27e70a -
|
||||||
debug.sh:131aac078fc1ae3c2278209a09e99a3d -
|
debug.sh:cd1190f874a6f85a7ac7631ef0a00490 -
|
||||||
lines.sh:3b907786f7fc9204025993016c9080de -
|
lines.sh:3b907786f7fc9204025993016c9080de -
|
||||||
release.sh:0a525311cc14b9c8aefc6f2b816129a1 -
|
release.sh:0a525311cc14b9c8aefc6f2b816129a1 -
|
||||||
temp:d41d8cd98f00b204e9800998ecf8427e -
|
temp:d41d8cd98f00b204e9800998ecf8427e -
|
||||||
|
Binary file not shown.
92
main.cpp
92
main.cpp
@ -1,51 +1,59 @@
|
|||||||
#define OLC_PGE_APPLICATION
|
#define OLC_PGE_APPLICATION
|
||||||
#include "pixelGameEngine.h"
|
#include "pixelGameEngine.h"
|
||||||
#include <memory>
|
|
||||||
using namespace olc;
|
using namespace olc;
|
||||||
|
|
||||||
struct myStruct{
|
class BoxBorder : public olc::PixelGameEngine
|
||||||
std::string name="";
|
|
||||||
int level=1;
|
|
||||||
};
|
|
||||||
std::vector<std::weak_ptr<myStruct>> vals;
|
|
||||||
|
|
||||||
void AddVal(std::weak_ptr<myStruct>newVal) {
|
|
||||||
auto findVal=std::find_if(vals.begin(),vals.end(),
|
|
||||||
[&newVal](std::weak_ptr<myStruct>&val)
|
|
||||||
{
|
{
|
||||||
return val.lock()->name==newVal.lock()->name;
|
public:
|
||||||
}
|
BoxBorder()
|
||||||
);
|
{
|
||||||
if (findVal!=vals.end()) {
|
sAppName = "Box Border";
|
||||||
std::cout<<"Value "<<newVal.lock()->name<<" already exists."<<std::endl;
|
|
||||||
findVal->lock()->level++;
|
|
||||||
std::cout<<findVal->lock()->name+" is now level "<<findVal->lock()->level<<std::endl;
|
|
||||||
} else {
|
|
||||||
std::cout<<"Value "<<newVal.lock()->name<<" does not exist."<<std::endl;
|
|
||||||
vals.push_back(newVal);
|
|
||||||
std::cout<<newVal.lock()->name+" is now level "<<vals[vals.size()-1].lock()->level<<std::endl;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
public:
|
||||||
std::shared_ptr<myStruct> myPtr1=std::make_shared<myStruct>();
|
Decal*box;
|
||||||
std::shared_ptr<myStruct> myPtr2=std::make_shared<myStruct>();
|
|
||||||
std::shared_ptr<myStruct> myPtr3=std::make_shared<myStruct>();
|
|
||||||
std::shared_ptr<myStruct> myPtr4=std::make_shared<myStruct>();
|
|
||||||
|
|
||||||
std::weak_ptr<myStruct> refPtr1=myPtr1;
|
void DrawBorderBox(const vd2d&pos,const vd2d&size) {
|
||||||
std::weak_ptr<myStruct> refPtr2=myPtr2;
|
DrawPartialDecal(pos,box,{0,0},{13,13}); //Upper-Left Corner
|
||||||
std::weak_ptr<myStruct> refPtr3=myPtr3;
|
vd2d ULOffset={13,0};
|
||||||
std::weak_ptr<myStruct> refPtr4=myPtr2;
|
DrawPartialDecal(pos+ULOffset,{(float)size.x-26,13},box,{13,0},{91,13}); //Top
|
||||||
|
vd2d UROffset={size.x-13,0};
|
||||||
refPtr1.lock()->name="Test Upgrade 1";
|
DrawPartialDecal(pos+UROffset,box,{104,0},{13,13}); //Upper-Right Corner
|
||||||
refPtr2.lock()->name="Test Upgrade 2";
|
vd2d ULBottomOffset={0,13};
|
||||||
refPtr3.lock()->name="Test Upgrade 3";
|
DrawPartialDecal(pos+ULBottomOffset,{13,(float)size.y-25},box,{0,13},{13,73});//Left
|
||||||
|
vd2d BLOffset={0,size.y-13};
|
||||||
std::cout<<(refPtr2.lock()==refPtr4.lock())<<std::endl;
|
DrawPartialDecal(pos+BLOffset,box,{0,86},{13,13}); //Bottom-Left Corner
|
||||||
|
vd2d BLLeftOffset={13,size.y-13+0.05};
|
||||||
AddVal(refPtr1);
|
DrawPartialDecal(pos+BLLeftOffset,{(float)size.x-26,13},box,{13,86},{91,13}); //Bottom
|
||||||
AddVal(refPtr2);
|
vd2d BROffset={size.x-13,size.y-13};
|
||||||
AddVal(refPtr3);
|
DrawPartialDecal(pos+BROffset,box,{104,86},{13,13}); //Bottom-Right Corner
|
||||||
AddVal(refPtr4);
|
vd2d TROffset={size.x-13,13};
|
||||||
|
DrawPartialDecal(pos+TROffset,{13,(float)size.y-25},box,{104,13},{13,73});//Right
|
||||||
|
}
|
||||||
|
|
||||||
|
bool OnUserCreate() override
|
||||||
|
{
|
||||||
|
box = new Decal(new Sprite("border.png"),false,true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool OnUserUpdate(float fElapsedTime) override
|
||||||
|
{
|
||||||
|
vd2d boxPos={24,24};
|
||||||
|
vd2d boxSize=GetMousePos()-boxPos;
|
||||||
|
FillRectDecal(boxPos,boxSize,GREY);
|
||||||
|
DrawBorderBox(boxPos,boxSize);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
BoxBorder demo;
|
||||||
|
if (demo.Construct(256, 240, 4, 4))
|
||||||
|
demo.Start();
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user