generated from sigonasr2/CPlusPlusProjectTemplate
Setup dragging for new objects
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
121845a4af
commit
e1773faaf4
@ -23,6 +23,9 @@ class TiledCollisionEditor : public olc::PixelGameEngine
|
||||
bool dragTranslate=false;
|
||||
vf2d upperLeftDragOffset{};
|
||||
|
||||
bool dragNewObj=false;
|
||||
vi2d upperLeftObjTile{};
|
||||
|
||||
Renderable circle;
|
||||
Renderable createNewButtonImg;
|
||||
Renderable editButtonImg;
|
||||
@ -35,8 +38,6 @@ public:
|
||||
sAppName = "TiledCollisionEditor";
|
||||
}
|
||||
|
||||
Renderable rollingCounter;
|
||||
|
||||
Manager gui;
|
||||
|
||||
ImageCheckBox*createNewButton;
|
||||
@ -60,8 +61,6 @@ public:
|
||||
std::string tilesetFilename=TILESET_DIR+"Basic Tileset.tsx";
|
||||
Tileset&tileset=tilesets[tilesetFilename]=TSXParser{tilesetFilename}.GetData();
|
||||
|
||||
rollingCounter.Load("rollingcounter.png",nullptr,false,false);
|
||||
|
||||
Renderable&tilesetImg=images[tilesetFilename];
|
||||
tilesetImg.Load(TILESET_DIR+tileset.filename);
|
||||
|
||||
@ -220,6 +219,25 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void NewObjectUpdate(){
|
||||
if(GetMouse(Mouse::LEFT).bPressed){
|
||||
const Tileset&tileset=tilesets[activeTileset];
|
||||
|
||||
vf2d worldCoords=view.ScreenToWorld(GetMousePos());
|
||||
upperLeftObjTile=vf2d{round(worldCoords.x/tileset.tilewidth)*tileset.tilewidth,round(worldCoords.y/tileset.tileheight)*tileset.tileheight};
|
||||
dragNewObj=true;
|
||||
}
|
||||
if(GetMouse(Mouse::LEFT).bReleased){
|
||||
dragNewObj=false;
|
||||
|
||||
const Tileset&tileset=tilesets[activeTileset];
|
||||
//Check for intersection with other objects, if found then we deny creating this object this way.
|
||||
for(auto&[name,obj]:tileset.objects){
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool OnUserUpdate(float fElapsedTime) override
|
||||
{
|
||||
Clear(VERY_DARK_BLUE);
|
||||
@ -250,7 +268,11 @@ public:
|
||||
if(editButton->bPressed)createNewButton->bChecked=false;
|
||||
|
||||
if(GetMouseY()<ScreenHeight()-36||GetMouseX()>72){
|
||||
Update();
|
||||
if(!dragNewObj){
|
||||
Update();
|
||||
}else{
|
||||
NewObjectUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
//Font test.
|
||||
@ -259,7 +281,7 @@ public:
|
||||
DrawStringPropDecal({0,36},"the quick brown fox jumps over the lazy dog 1234567890 !@#$%^&*()-=_+[]{}\\;':\",./<>?~`",WHITE,{1.5f,1.5f});
|
||||
DrawStringPropDecal({0,54},"THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 1234567890 !@#$%^&*()-=_+[]{}\\;':\",./<>?~`",WHITE,{1.5f,1.5f});
|
||||
*/
|
||||
if(selectedObj.length()>0){
|
||||
if(selectedObj.length()>0&&!dragNewObj){
|
||||
const TilesetObject&obj=tileset.objects.at(selectedObj);
|
||||
|
||||
Quadrilateral*highlightedQuad=nullptr;
|
||||
@ -294,6 +316,9 @@ public:
|
||||
}
|
||||
}
|
||||
}
|
||||
}else
|
||||
if(dragNewObj){
|
||||
|
||||
}
|
||||
|
||||
for(auto&[objName,obj]:tileset.objects){
|
||||
|
BIN
assets/EditButton.png
Normal file
BIN
assets/EditButton.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 768 B |
BIN
assets/font2.png
Normal file
BIN
assets/font2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/newCollisionButton.png
Normal file
BIN
assets/newCollisionButton.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 672 B |
Loading…
x
Reference in New Issue
Block a user