From e1773faaf4a910b32abef22f31eb8e9d8734e9a0 Mon Sep 17 00:00:00 2001 From: Nic0Nic0Nii <89110903+Nic0Nic0Nii@users.noreply.github.com> Date: Fri, 15 Mar 2024 19:30:15 +0000 Subject: [PATCH] Setup dragging for new objects Co-authored-by: sigonasr2 --- TiledCollisionEditor/main.cpp | 37 ++++++++++++++++++++++++++++------ assets/EditButton.png | Bin 0 -> 768 bytes assets/font2.png | Bin 0 -> 5168 bytes assets/newCollisionButton.png | Bin 0 -> 672 bytes 4 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 assets/EditButton.png create mode 100644 assets/font2.png create mode 100644 assets/newCollisionButton.png diff --git a/TiledCollisionEditor/main.cpp b/TiledCollisionEditor/main.cpp index 696a60b..a818b69 100644 --- a/TiledCollisionEditor/main.cpp +++ b/TiledCollisionEditor/main.cpp @@ -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()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){ diff --git a/assets/EditButton.png b/assets/EditButton.png new file mode 100644 index 0000000000000000000000000000000000000000..2a6899cf4b785c8da700d07b9fa071835059197d GIT binary patch literal 768 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 literal 0 HcmV?d00001 diff --git a/assets/newCollisionButton.png b/assets/newCollisionButton.png new file mode 100644 index 0000000000000000000000000000000000000000..afc8d3a55d018f7367fe498b7b6e8156e14a455f GIT binary patch literal 672 zcmV;R0$=@!P)EX>4Tx04R}tkv&MmP!xqvQ>7wR2MdZgWT;MdQ4z<|ibb$c+6t{Yn7s54nlvOS zE{=k0!NH%!s)LKOt`4q(Aov5~?BJy6A|>9J6k5di;PO7sd*^W9eSpxcGS%#f0;*;i z=|oJ-$1yloJ$T1JTqiu({bVuu~_P2xrE-W!-}d=zL0ZS z;k?CJt=3t)PyWJSL0idiooXBjEFp;$M98S4f+{RTXxB(Fk*4#QhkwlRr^qFfs{%%j z1=OHIa{S5YyS zJ_3fefs5;oChq~4JHY6ZE*X*|`Kg3r5qLkNZ^{G1w?O}zJGb^ZP9K0Q&1(4uI5-3* zOO(Ct@$SCvx&3>mJ-;7*IdZE&Des_fXvVi03ssnz!Cx0WiQ39)+~F5zrZ{GN>{}> zhJ-rMRnx5=wZ=>69cLH_2cQ8OpaB}7fh7z)A+jeS?)Q literal 0 HcmV?d00001