mirror of
https://github.com/borgesdan/xn65
synced 2024-12-29 21:54:47 +01:00
Implementa mudanças em Input
This commit is contained in:
parent
c112e25331
commit
e73633b88f
@ -19,6 +19,7 @@ endif()
|
||||
# Url: https://learn.microsoft.com/pt-br/vcpkg/get_started/get-started?pivots=shell-cmd
|
||||
#
|
||||
# Siga os procedimentos da página oficial do DirectxTK para instalação via vcpkg
|
||||
# $- vcpkg install directxtk[tools,spectre,xaudio2-9]
|
||||
#
|
||||
# [!] Atualize o arquivo CMakePresets.json, nos 'presets' necessários,
|
||||
# para que find_package execute corretamente
|
||||
@ -29,4 +30,4 @@ endif()
|
||||
#
|
||||
find_package(directxtk CONFIG REQUIRED)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} D3d11.lib dxgi.lib d3dcompiler.lib Microsoft::DirectXTK)
|
||||
target_link_libraries(${PROJECT_NAME} D3d11.lib dxgi.lib dxguid.lib d3dcompiler.lib Microsoft::DirectXTK)
|
||||
|
@ -56,6 +56,8 @@ namespace xna {
|
||||
destinationArray[destinationIndex].X = (source.X * matrix.M11 + source.Y * matrix.M21);
|
||||
destinationArray[destinationIndex].Y = (source.X * matrix.M12 + source.Y * matrix.M22);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Vector2::Transform(Vector2 const* sourceArray, size_t sourceArrayLength, Quaternion const& rotation, Vector2* destinationArray, size_t destinationArrayLength) {
|
||||
@ -111,5 +113,7 @@ namespace xna {
|
||||
++sourceIndex;
|
||||
++destinationIndex;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
@ -4,6 +4,12 @@
|
||||
#include "types.hpp"
|
||||
|
||||
namespace xna {
|
||||
//Audio
|
||||
class SoundEffect;
|
||||
using PSoundEffect = std::shared_ptr<SoundEffect>;
|
||||
class AudioEngine;
|
||||
using PAudioEngine = std::shared_ptr<AudioEngine>;
|
||||
|
||||
//CShap
|
||||
struct TimeSpan;
|
||||
using PTimeSpan = std::shared_ptr<TimeSpan>;
|
||||
|
19
framework/platform/audioengine-dx.hpp
Normal file
19
framework/platform/audioengine-dx.hpp
Normal file
@ -0,0 +1,19 @@
|
||||
#ifndef XNA_PLATFORM_SOUNDENGINE_DX_HPP
|
||||
#define XNA_PLATFORM_SOUNDENGINE_DX_HPP
|
||||
|
||||
#include "../sound/audioengine.hpp"
|
||||
|
||||
|
||||
namespace xna {
|
||||
class AudioEngine : public IAudioEngine {
|
||||
public:
|
||||
AudioEngine() {
|
||||
|
||||
}
|
||||
|
||||
public:
|
||||
//static inline uptr<DirectX::AudioEngine> _dxAudioEngine = uNew<DirectX::AudioEngine>();
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
5
framework/platform/audioengine.dx.cpp
Normal file
5
framework/platform/audioengine.dx.cpp
Normal file
@ -0,0 +1,5 @@
|
||||
#include "audioengine-dx.hpp"
|
||||
|
||||
namespace xna {
|
||||
|
||||
}
|
@ -252,7 +252,7 @@ namespace xna {
|
||||
private:
|
||||
GamePadCapabilitiesType _type{};
|
||||
bool _connected{ false };
|
||||
GamePadId _id{ 0 };
|
||||
GamePadId _id;
|
||||
Ushort _vid{ 0 };
|
||||
Ushort _pid{ 0 };
|
||||
};
|
||||
@ -359,10 +359,22 @@ namespace xna {
|
||||
|
||||
class GamePad : public IGamePad {
|
||||
public:
|
||||
inline static sptr<DirectX::GamePad> _dxGamePad = New<DirectX::GamePad>();
|
||||
static void Initialize() {
|
||||
_dxGamePad = uNew<DirectX::GamePad>();
|
||||
}
|
||||
|
||||
inline static uptr<DirectX::GamePad> _dxGamePad = nullptr;
|
||||
|
||||
private:
|
||||
constexpr GamePad() = default;
|
||||
constexpr GamePad(GamePad&&) = default;
|
||||
constexpr GamePad(const GamePad&) = default;
|
||||
};
|
||||
|
||||
inline GamePadState IGamePad::GetState(PlayerIndex index) {
|
||||
if (!GamePad::_dxGamePad)
|
||||
return GamePadState();
|
||||
|
||||
const auto state = GamePad::_dxGamePad->GetState(
|
||||
static_cast<int>(index)
|
||||
);
|
||||
@ -370,6 +382,9 @@ namespace xna {
|
||||
}
|
||||
|
||||
inline GamePadState IGamePad::GetState(PlayerIndex index, GamePadDeadZone deadZone) {
|
||||
if (!GamePad::_dxGamePad)
|
||||
return GamePadState();
|
||||
|
||||
const auto state = GamePad::_dxGamePad->GetState(
|
||||
static_cast<int>(index),
|
||||
static_cast<DirectX::GamePad::DeadZone>(deadZone)
|
||||
@ -378,11 +393,17 @@ namespace xna {
|
||||
}
|
||||
|
||||
inline GamePadCapabilities IGamePad::GetCapabilities(PlayerIndex index) {
|
||||
if (!GamePad::_dxGamePad)
|
||||
return GamePadCapabilities();
|
||||
|
||||
const auto capabilities = GamePad::_dxGamePad->GetCapabilities(static_cast<int>(index));
|
||||
return GamePadCapabilities(capabilities);
|
||||
}
|
||||
|
||||
inline bool IGamePad::SetVibration(PlayerIndex index, float leftMotor, float rightMotor, float leftTrigger, float rightTrigger) {
|
||||
if (!GamePad::_dxGamePad)
|
||||
return false;
|
||||
|
||||
return GamePad::_dxGamePad->SetVibration(static_cast<int>(index), leftMotor, rightMotor, leftTrigger, rightTrigger);
|
||||
}
|
||||
}
|
||||
|
@ -25,20 +25,27 @@ namespace xna {
|
||||
};
|
||||
|
||||
class Keyboard : public IKeyboard {
|
||||
public:
|
||||
Keyboard() = default;
|
||||
private:
|
||||
constexpr Keyboard() = default;
|
||||
constexpr Keyboard(Keyboard&&) = default;
|
||||
constexpr Keyboard(const Keyboard&) = default;
|
||||
|
||||
public:
|
||||
inline static sptr<DirectX::Keyboard> _dxKeyboard = New<DirectX::Keyboard>();
|
||||
inline static uptr<DirectX::Keyboard> _dxKeyboard = nullptr;
|
||||
};
|
||||
|
||||
inline KeyboardState IKeyboard::GetState() {
|
||||
|
||||
if (!Keyboard::_dxKeyboard)
|
||||
return KeyboardState();
|
||||
|
||||
const auto state = Keyboard::_dxKeyboard->GetState();
|
||||
return KeyboardState(state);
|
||||
}
|
||||
|
||||
inline bool IKeyboard::IsConnected() {
|
||||
if (!Keyboard::_dxKeyboard)
|
||||
return false;
|
||||
|
||||
return Keyboard::_dxKeyboard->IsConnected();
|
||||
}
|
||||
}
|
||||
|
@ -22,7 +22,12 @@ namespace xna {
|
||||
|
||||
struct Mouse : public IMouse {
|
||||
public:
|
||||
inline static sptr<DirectX::Mouse> _dxMouse = New<DirectX::Mouse>();
|
||||
inline static uptr<DirectX::Mouse> _dxMouse = nullptr;
|
||||
|
||||
private:
|
||||
constexpr Mouse() = default;
|
||||
constexpr Mouse(Mouse&&) = default;
|
||||
constexpr Mouse(const Mouse&) = default;
|
||||
};
|
||||
|
||||
inline MouseState IMouse::GetState() {
|
||||
|
@ -134,6 +134,9 @@ namespace xna {
|
||||
|
||||
LRESULT GameWindow::WinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (!Keyboard::_dxKeyboard) Keyboard::_dxKeyboard = uNew<DirectX::Keyboard>();
|
||||
if (!Mouse::_dxMouse) Mouse::_dxMouse = uNew<DirectX::Mouse>();
|
||||
|
||||
switch (msg) {
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
|
17
framework/sound/audioengine.hpp
Normal file
17
framework/sound/audioengine.hpp
Normal file
@ -0,0 +1,17 @@
|
||||
#ifndef XNA_SOUND_SOUNDENGINE_HPP
|
||||
#define XNA_SOUND_SOUNDENGINE_HPP
|
||||
|
||||
#include "../default.hpp"
|
||||
//#include <Audio.h>
|
||||
|
||||
namespace xna {
|
||||
class IAudioEngine {
|
||||
public:
|
||||
virtual ~IAudioEngine(){}
|
||||
|
||||
public:
|
||||
//uptr<DirectX::AudioEngine> _dxAudioEngine = nullptr;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
10
framework/sound/soundeffect.hpp
Normal file
10
framework/sound/soundeffect.hpp
Normal file
@ -0,0 +1,10 @@
|
||||
#ifndef XNA_SOUND_SOUNDEFFECT_HPP
|
||||
#define XNA_SOUND_SOUNDEFFECT_HPP
|
||||
|
||||
#include "../default.hpp"
|
||||
|
||||
namespace xna {
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -47,12 +47,19 @@ namespace xna {
|
||||
|
||||
template <typename T>
|
||||
using sptr = std::shared_ptr<T>;
|
||||
template <typename T>
|
||||
using uptr = std::unique_ptr<T>;
|
||||
|
||||
template <class _Ty, class... _Types>
|
||||
inline std::shared_ptr<_Ty> New(_Types&&... _Args) {
|
||||
return std::make_shared<_Ty>(std::forward<_Types>(_Args)...);
|
||||
}
|
||||
|
||||
template <class _Ty, class... _Types>
|
||||
inline std::unique_ptr<_Ty> uNew(_Types&&... _Args) {
|
||||
return std::make_unique<_Ty>(std::forward<_Types>(_Args)...);
|
||||
}
|
||||
|
||||
#define PLATFORM_DEVELOPMENT
|
||||
|
||||
//See ref: https://en.cppreference.com/w/cpp/error/assert
|
||||
|
@ -23,6 +23,7 @@ public:
|
||||
graphics->Initialize();
|
||||
|
||||
Game::Initialize();
|
||||
GamePad::Initialize();
|
||||
}
|
||||
|
||||
void LoadContent() override {
|
||||
|
Loading…
x
Reference in New Issue
Block a user