1
0
mirror of https://github.com/borgesdan/xn65 synced 2024-12-29 21:54:47 +01:00

Correções em Mouse

This commit is contained in:
Danilo 2024-04-17 09:48:48 -03:00
parent 796bceb034
commit ac61b48076
3 changed files with 17 additions and 16 deletions

View File

@ -5,11 +5,11 @@
namespace xna {
struct IMouseState {
ButtonState LeftButton{ 0 };
ButtonState RightButton{ 0 };
ButtonState MiddleButton{ 0 };
ButtonState XButton1{ 0 };
ButtonState XButton2{ 0 };
ButtonState LeftButton{ ButtonState::Released };
ButtonState RightButton{ ButtonState::Released };
ButtonState MiddleButton{ ButtonState::Released };
ButtonState XButton1{ ButtonState::Released };
ButtonState XButton2{ ButtonState::Released };
int X{ 0 };
int Y{ 0 };
int ScroolWheelValue{ 0 };

View File

@ -10,14 +10,14 @@ namespace xna {
constexpr MouseState(DirectX::Mouse::State const& dxMouseState) {
LeftButton = static_cast<ButtonState>(dxMouseState.leftButton);
RightButton = static_cast<ButtonState>(dxMouseState.leftButton);
MiddleButton = static_cast<ButtonState>(dxMouseState.leftButton);
XButton1 = static_cast<ButtonState>(dxMouseState.leftButton);
XButton2 = static_cast<ButtonState>(dxMouseState.leftButton);
RightButton = static_cast<ButtonState>(dxMouseState.rightButton);
MiddleButton = static_cast<ButtonState>(dxMouseState.middleButton);
XButton1 = static_cast<ButtonState>(dxMouseState.xButton1);
XButton2 = static_cast<ButtonState>(dxMouseState.xButton2);
X = dxMouseState.x;
Y = dxMouseState.y;
ScroolWheelValue = dxMouseState.scrollWheelValue;
}
}
};
struct Mouse : public IMouse {

View File

@ -36,7 +36,7 @@ public:
void Update(GameTime const& gameTime) override {
const auto state = Keyboard::GetState();
const auto state = Keyboard::GetState();
if (state.IsKeyDown(Keys::Right)) {
position.X += 1 * gameTime.ElapsedGameTime.TotalMilliseconds();
@ -49,12 +49,13 @@ public:
}
if (state.IsKeyDown(Keys::Down)) {
position.Y += 1 * gameTime.ElapsedGameTime.TotalMilliseconds();
}
}
oldState = currentState;
const auto currentState = Mouse::GetState();
currentState = Mouse::GetState();
if (currentState.LeftButton == ButtonState::Pressed && oldState.LeftButton == ButtonState::Released) {
if (currentState.LeftButton == ButtonState::Pressed && oldState.LeftButton == ButtonState::Released) {
points.push_back(Vector2(currentState.X, currentState.Y));
}
@ -81,8 +82,8 @@ private:
PTexture2D texture = nullptr;
Vector2 position{};
std::vector<Vector2> points;
MouseState currentState;
MouseState oldState;
MouseState currentState{};
MouseState oldState{};
float vel = 1;
};