GL - mergeerror with button handling
This commit is contained in:
commit
56205ff774
|
@ -215,6 +215,9 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="GameClientRecieverFunc.h" />
|
<ClInclude Include="GameClientRecieverFunc.h" />
|
||||||
|
<ClInclude Include="GameClientState\Buttons\ButtonCircle.h" />
|
||||||
|
<ClInclude Include="GameClientState\Buttons\EventButtonGUI.h" />
|
||||||
|
<ClInclude Include="GameClientState\Buttons\ButtonRectangle.h" />
|
||||||
<ClInclude Include="GameClientState\Camera.h" />
|
<ClInclude Include="GameClientState\Camera.h" />
|
||||||
<ClInclude Include="GameClientState\C_obj\C_DynamicObj.h" />
|
<ClInclude Include="GameClientState\C_obj\C_DynamicObj.h" />
|
||||||
<ClInclude Include="GameClientState\C_obj\C_Player.h" />
|
<ClInclude Include="GameClientState\C_obj\C_Player.h" />
|
||||||
|
|
|
@ -142,6 +142,9 @@ namespace DanBias
|
||||||
|
|
||||||
HRESULT DanBiasGame::Update(float deltaTime)
|
HRESULT DanBiasGame::Update(float deltaTime)
|
||||||
{
|
{
|
||||||
|
//Update menu buttons
|
||||||
|
EventHandler::Instance().Update(m_data->inputObj);
|
||||||
|
|
||||||
m_data->inputObj->Update();
|
m_data->inputObj->Update();
|
||||||
|
|
||||||
if(m_data->serverOwner)
|
if(m_data->serverOwner)
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
//////////////////////////////////////
|
||||||
|
// Created by Pontus Fransson 2014 //
|
||||||
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef DANBIAS_CLIENT_BUTTON_CIRCLE_H
|
||||||
|
#define DANBIAS_CLIENT_BUTTON_CIRCLE_H
|
||||||
|
|
||||||
|
#include "EventButtonGUI.h"
|
||||||
|
|
||||||
|
namespace DanBias
|
||||||
|
{
|
||||||
|
namespace Client
|
||||||
|
{
|
||||||
|
template <typename Owner>
|
||||||
|
class ButtonCircle : public EventButtonGUI<Owner>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ButtonCircle()
|
||||||
|
: EventButtonGUI(), radius(0)
|
||||||
|
{}
|
||||||
|
ButtonCircle(std::wstring textureName, Owner owner, float xPos, float yPos, float radius, float textureHalfWidth, float textureHalfHeight)
|
||||||
|
: EventButtonGUI(textureName, owner, xPos, yPos, textureHalfWidth, textureHalfHeight), radius(radius)
|
||||||
|
{}
|
||||||
|
ButtonCircle(std::wstring textureName, EventFunc func, float xPos, float yPos, float radius, float textureHalfWidth, float textureHalfHeight)
|
||||||
|
: EventButtonGUI(textureName, func, xPos, yPos, textureHalfWidth, textureHalfHeight), radius(radius)
|
||||||
|
{}
|
||||||
|
ButtonCircle(std::wstring textureName, EventFunc func, Owner owner, float xPos, float yPos, float radius, float textureHalfWidth, float textureHalfHeight)
|
||||||
|
: EventButtonGUI(textureName, func, owner, xPos, yPos, textureHalfWidth, textureHalfHeight), radius(radius)
|
||||||
|
{}
|
||||||
|
ButtonCircle(std::wstring textureName, EventFunc func, Owner owner, void* userData, float xPos, float yPos, float radius, float textureHalfWidth, float textureHalfHeight)
|
||||||
|
: EventButtonGUI(textureName, func, owner, userData, xPos, yPos, textureHalfWidth, textureHalfHeight), radius(radius)
|
||||||
|
{}
|
||||||
|
~ButtonCircle()
|
||||||
|
{}
|
||||||
|
|
||||||
|
//Circle vs point collision
|
||||||
|
bool Collision(InputClass* inputObject)
|
||||||
|
{
|
||||||
|
//Should come from the InputClass
|
||||||
|
float xMouse = 2, yMouse = 2;
|
||||||
|
|
||||||
|
float xDiff = xMouse - xPos;
|
||||||
|
float yDiff = yMouse - yPos;
|
||||||
|
|
||||||
|
float length = (xDiff * xDiff) + (yDiff * yDiff);
|
||||||
|
|
||||||
|
if(length <= radius*radius)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
float radius;
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,57 @@
|
||||||
|
//////////////////////////////////////
|
||||||
|
// Created by Pontus Fransson 2014 //
|
||||||
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef DANBIAS_CLIENT_BUTTON_RECTANGLE_H
|
||||||
|
#define DANBIAS_CLIENT_BUTTON_RECTANGLE_H
|
||||||
|
|
||||||
|
#include "EventButtonGUI.h"
|
||||||
|
|
||||||
|
namespace DanBias
|
||||||
|
{
|
||||||
|
namespace Client
|
||||||
|
{
|
||||||
|
template <typename Owner>
|
||||||
|
class ButtonRectangle : public EventButtonGUI<Owner>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ButtonRectangle()
|
||||||
|
: EventButtonGUI(), halfWidth(0), halfHeight(0)
|
||||||
|
{}
|
||||||
|
ButtonRectangle(std::wstring textureName, Owner owner, float xPos, float yPos, float halfWidth, float halfHeight)
|
||||||
|
: EventButtonGUI(textureName, owner, xPos, yPos, halfWidth, halfHeight)
|
||||||
|
{}
|
||||||
|
ButtonRectangle(std::wstring textureName, EventFunc func, float xPos, float yPos, float halfWidth, float halfHeight)
|
||||||
|
: EventButtonGUI(textureName, func, xPos, yPos, halfWidth, halfHeight)
|
||||||
|
{}
|
||||||
|
ButtonRectangle(std::wstring textureName, EventFunc func, Owner owner, float xPos, float yPos, float halfWidth, float halfHeight)
|
||||||
|
: EventButtonGUI(textureName, func, owner, xPos, yPos, halfWidth, halfHeight)
|
||||||
|
{}
|
||||||
|
ButtonRectangle(std::wstring textureName, EventFunc func, Owner owner, void* userData, float xPos, float yPos, float halfWidth, float halfHeight)
|
||||||
|
: EventButtonGUI(textureName, func, owner, userData, xPos, yPos, halfWidth, halfHeight)
|
||||||
|
{}
|
||||||
|
~ButtonRectangle()
|
||||||
|
{}
|
||||||
|
|
||||||
|
//Circle vs point collision
|
||||||
|
bool Collision(InputClass* inputObject)
|
||||||
|
{
|
||||||
|
//Should come from the InputClass
|
||||||
|
float xMouse = 1, yMouse = 0;
|
||||||
|
|
||||||
|
if(xMouse >= xPos - halfWidth && xMouse <= xPos + halfWidth
|
||||||
|
&& yMouse >= yPos - halfHeight && yMouse <= yPos + halfHeight)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,64 @@
|
||||||
|
//////////////////////////////////////
|
||||||
|
// Created by Pontus Fransson 2014 //
|
||||||
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef DANBIAS_CLIENT_EVENT_BUTTON_GUI_H
|
||||||
|
#define DANBIAS_CLIENT_EVENT_BUTTON_GUI_H
|
||||||
|
|
||||||
|
#include "../Misc/EventHandler/EventButton.h"
|
||||||
|
|
||||||
|
namespace DanBias
|
||||||
|
{
|
||||||
|
namespace Client
|
||||||
|
{
|
||||||
|
template <typename Owner>
|
||||||
|
class EventButtonGUI : public Oyster::Event::EventButton<Owner>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EventButtonGUI()
|
||||||
|
: EventButton(), xPos(0), yPos(0), halfWidth(0), halfHeight(0), texture(NULL)
|
||||||
|
{}
|
||||||
|
EventButtonGUI(std::wstring textureName, Owner owner, float xPos, float yPos, float halfWidth, float halfHeight)
|
||||||
|
: EventButton(owner), xPos(xPos), yPos(yPos), halfWidth(halfWidth), halfHeight(halfHeight)
|
||||||
|
{
|
||||||
|
CreateTexture(textureName);
|
||||||
|
}
|
||||||
|
EventButtonGUI(std::wstring textureName, EventFunc func, float xPos, float yPos, float halfWidth, float halfHeight)
|
||||||
|
: EventButton(func), xPos(xPos), yPos(yPos), halfWidth(halfWidth), halfHeight(halfHeight)
|
||||||
|
{
|
||||||
|
CreateTexture(textureName);
|
||||||
|
}
|
||||||
|
EventButtonGUI(std::wstring textureName, EventFunc func, Owner owner, float xPos, float yPos, float halfWidth, float halfHeight)
|
||||||
|
: EventButton(func, owner), xPos(xPos), yPos(yPos), halfWidth(halfWidth), halfHeight(halfHeight)
|
||||||
|
{
|
||||||
|
CreateTexture(textureName);
|
||||||
|
}
|
||||||
|
EventButtonGUI(std::wstring textureName, EventFunc func, Owner owner, void* userData, float xPos, float yPos, float halfWidth, float halfHeight)
|
||||||
|
: EventButton(func, owner, userData), xPos(xPos), yPos(yPos), halfWidth(halfWidth), halfHeight(halfHeight)
|
||||||
|
{
|
||||||
|
CreateTexture(textureName);
|
||||||
|
}
|
||||||
|
~EventButtonGUI()
|
||||||
|
{}
|
||||||
|
|
||||||
|
void CreateTexture(std::wstring textureName)
|
||||||
|
{
|
||||||
|
//Create texture
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void Render()
|
||||||
|
{
|
||||||
|
//Render att xPos and yPos
|
||||||
|
//With halfWidth and halfHeight
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
float xPos, yPos;
|
||||||
|
float halfWidth, halfHeight;
|
||||||
|
void* texture;
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -19,9 +19,43 @@ struct LoginState::myData
|
||||||
// game client*
|
// game client*
|
||||||
}privData;
|
}privData;
|
||||||
|
|
||||||
|
#include "Buttons\ButtonCircle.h"
|
||||||
|
#include "Buttons\ButtonRectangle.h"
|
||||||
|
#include "../Misc/EventHandler/EventHandler.h"
|
||||||
|
using namespace Oyster::Event;
|
||||||
|
|
||||||
|
enum TestEnum
|
||||||
|
{
|
||||||
|
Create,
|
||||||
|
Options,
|
||||||
|
Exit,
|
||||||
|
};
|
||||||
|
|
||||||
LoginState::LoginState(void)
|
LoginState::LoginState(void)
|
||||||
{
|
{
|
||||||
|
EventButtonCollection* collection = new EventButtonCollection;
|
||||||
|
EventHandler::Instance().AddCollection(collection);
|
||||||
|
|
||||||
|
collection->AddButton(new ButtonRectangle<LoginState*>(L"textureName.jpg", &LoginState::ButtonCallback, this, (void*)Options, 0.0f, 0.0f, 0.0f, 0.0f));
|
||||||
|
}
|
||||||
|
|
||||||
|
void LoginState::ButtonCallback(Oyster::Event::ButtonEvent<LoginState*>& e)
|
||||||
|
{
|
||||||
|
TestEnum type = TestEnum((int)e.userData);
|
||||||
|
|
||||||
|
switch(type)
|
||||||
|
{
|
||||||
|
case Create:
|
||||||
|
if(e.state == ButtonState_Released)
|
||||||
|
{
|
||||||
|
//Change to create state or something similar
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Options:
|
||||||
|
break;
|
||||||
|
case Exit:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LoginState::~LoginState(void)
|
LoginState::~LoginState(void)
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
#include "OysterMath.h"
|
#include "OysterMath.h"
|
||||||
#include "NetworkClient.h"
|
#include "NetworkClient.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include "../Misc/EventHandler/EventButton.h"
|
||||||
|
|
||||||
namespace DanBias
|
namespace DanBias
|
||||||
{
|
{
|
||||||
namespace Client
|
namespace Client
|
||||||
|
@ -24,6 +26,8 @@ namespace DanBias
|
||||||
bool InitCamera(Oyster::Math::Float3 startPos);
|
bool InitCamera(Oyster::Math::Float3 startPos);
|
||||||
ClientState Update(float deltaTime, InputClass* KeyInput);
|
ClientState Update(float deltaTime, InputClass* KeyInput);
|
||||||
|
|
||||||
|
static void ButtonCallback(Oyster::Event::ButtonEvent<LoginState*>& e);
|
||||||
|
|
||||||
bool Render(float dt);
|
bool Render(float dt);
|
||||||
bool Release();
|
bool Release();
|
||||||
void Protocol(ProtocolStruct* protocol)override;
|
void Protocol(ProtocolStruct* protocol)override;
|
||||||
|
|
|
@ -105,11 +105,37 @@ void Object::setAfterCollisonFunc(Oyster::Physics::ICustomBody::SubscriptMessage
|
||||||
this->rigidBody->SetSubscription((Oyster::Physics::ICustomBody::EventAction_AfterCollisionResponse)(collisionFuncAfter));
|
this->rigidBody->SetSubscription((Oyster::Physics::ICustomBody::EventAction_AfterCollisionResponse)(collisionFuncAfter));
|
||||||
}
|
}
|
||||||
|
|
||||||
Oyster::Math::Float3 Object::GetPosition()
|
|
||||||
{
|
|
||||||
return (Oyster::Math::Float3) this->rigidBody->GetState().centerPos;
|
|
||||||
}
|
|
||||||
Oyster::Math::Float4x4 Object::GetOrientation()
|
Oyster::Math::Float4x4 Object::GetOrientation()
|
||||||
{
|
{
|
||||||
return this->rigidBody->GetState().GetOrientation();
|
Oyster::Physics::ICustomBody::State state;
|
||||||
|
state = this->rigidBody->GetState();
|
||||||
|
return state.GetOrientation();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Oyster::Math::Float3 Object::GetPosition()
|
||||||
|
{
|
||||||
|
return this->position;
|
||||||
|
}
|
||||||
|
Oyster::Math::Float3 Object::GetRotation()
|
||||||
|
{
|
||||||
|
return this->rotation;
|
||||||
|
}
|
||||||
|
Oyster::Math::Float3 Object::GetScaling()
|
||||||
|
{
|
||||||
|
return this->scale;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Object::SetPosition(Oyster::Math::Float3 position)
|
||||||
|
{
|
||||||
|
this->position = position;
|
||||||
|
}
|
||||||
|
void Object::SetRotation(Oyster::Math::Float3 rotation)
|
||||||
|
{
|
||||||
|
this->rotation = rotation;
|
||||||
|
}
|
||||||
|
void Object::SetScaling(Oyster::Math::Float3 scale)
|
||||||
|
{
|
||||||
|
this->scale = scale;
|
||||||
}
|
}
|
|
@ -29,10 +29,17 @@ namespace GameLogic
|
||||||
OBJECT_TYPE GetObjectType() const;
|
OBJECT_TYPE GetObjectType() const;
|
||||||
void setID(int id);
|
void setID(int id);
|
||||||
int GetID() const;
|
int GetID() const;
|
||||||
Oyster::Math::Float3 GetPosition();
|
|
||||||
Oyster::Math::Float4x4 GetOrientation();
|
Oyster::Math::Float4x4 GetOrientation();
|
||||||
|
|
||||||
|
|
||||||
|
Oyster::Math::Float3 GetPosition();
|
||||||
|
Oyster::Math::Float3 GetRotation();
|
||||||
|
Oyster::Math::Float3 GetScaling();
|
||||||
|
|
||||||
|
void SetPosition(Oyster::Math::Float3 position);
|
||||||
|
void SetRotation(Oyster::Math::Float3 rotation);
|
||||||
|
void SetScaling(Oyster::Math::Float3 scale);
|
||||||
|
|
||||||
Oyster::Physics::ICustomBody* GetRigidBody();
|
Oyster::Physics::ICustomBody* GetRigidBody();
|
||||||
void ApplyLinearImpulse(Oyster::Math::Float3 force);
|
void ApplyLinearImpulse(Oyster::Math::Float3 force);
|
||||||
|
|
||||||
|
@ -55,6 +62,11 @@ namespace GameLogic
|
||||||
static const Game* gameInstance;
|
static const Game* gameInstance;
|
||||||
Oyster::Math::Float3 currLook;
|
Oyster::Math::Float3 currLook;
|
||||||
Oyster::Math::Float3 newLook;
|
Oyster::Math::Float3 newLook;
|
||||||
|
|
||||||
|
Oyster::Math::Float3 position;
|
||||||
|
Oyster::Math::Float3 rotation;
|
||||||
|
Oyster::Math::Float3 scale;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,6 +62,7 @@ namespace Oyster
|
||||||
void SendEvent(ButtonState state);
|
void SendEvent(ButtonState state);
|
||||||
|
|
||||||
//Set
|
//Set
|
||||||
|
void SetEnabled(bool enable);
|
||||||
void SetUserData(void* data);
|
void SetUserData(void* data);
|
||||||
void SetEventFunc(EventFunc func);
|
void SetEventFunc(EventFunc func);
|
||||||
void SetOwner(Owner owner);
|
void SetOwner(Owner owner);
|
||||||
|
@ -206,6 +207,13 @@ namespace Oyster
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Set if the button should be updated and collided with.
|
||||||
|
template <typename Owner>
|
||||||
|
void EventButton<Owner>::SetEnabled(bool enable)
|
||||||
|
{
|
||||||
|
this->privData.enabled = enable;
|
||||||
|
}
|
||||||
|
|
||||||
template <typename Owner>
|
template <typename Owner>
|
||||||
void EventButton<Owner>::SetUserData(void* data)
|
void EventButton<Owner>::SetUserData(void* data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,64 +0,0 @@
|
||||||
//////////////////////////////////////
|
|
||||||
// Created by Pontus Fransson 2014 //
|
|
||||||
//////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef MISC_EVENT_BUTTON_CIRCLE_H
|
|
||||||
#define MISC_EVENT_BUTTON_CIRCLE_H
|
|
||||||
|
|
||||||
#include "EventButton.h"
|
|
||||||
#include "../../Input/L_inputClass.h"
|
|
||||||
|
|
||||||
namespace Oyster
|
|
||||||
{
|
|
||||||
namespace Event
|
|
||||||
{
|
|
||||||
template <typename Owner>
|
|
||||||
class EventButtonCircle : public EventButton<Owner>
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
EventButtonCircle()
|
|
||||||
: EventButton(), xPos(0), yPos(0), radius(0)
|
|
||||||
{}
|
|
||||||
EventButtonCircle(Owner owner, float xPos, float yPos, float radius)
|
|
||||||
: EventButton(owner), xPos(xPos), yPos(yPos), radius(radius)
|
|
||||||
{}
|
|
||||||
EventButtonCircle(void (*EventFunc)( Oyster::Event::ButtonEvent<Owner>& e), float xPos, float yPos, float radius)
|
|
||||||
: EventButton(EventFunc), xPos(xPos), yPos(yPos), radius(radius)
|
|
||||||
{}
|
|
||||||
EventButtonCircle(void (*EventFunc)( Oyster::Event::ButtonEvent<Owner>& e), Owner owner, float xPos, float yPos, float radius)
|
|
||||||
: EventButton(EventFunc, owner), xPos(xPos), yPos(yPos), radius(radius)
|
|
||||||
{}
|
|
||||||
EventButtonCircle(void (*EventFunc)( Oyster::Event::ButtonEvent<Owner>& e), Owner owner, void* userData, float xPos, float yPos, float radius)
|
|
||||||
: EventButton(EventFunc, owner, userData), xPos(xPos), yPos(yPos), radius(radius)
|
|
||||||
{}
|
|
||||||
~EventButtonCircle()
|
|
||||||
{}
|
|
||||||
|
|
||||||
//Circle vs point collision
|
|
||||||
bool Collision(InputClass* inputObject)
|
|
||||||
{
|
|
||||||
//Should come from the InputClass
|
|
||||||
float xMouse = 2, yMouse = 2;
|
|
||||||
|
|
||||||
float xDiff = xMouse - xPos;
|
|
||||||
float yDiff = yMouse - yPos;
|
|
||||||
|
|
||||||
float length = (xDiff * xDiff) + (yDiff * yDiff);
|
|
||||||
|
|
||||||
if(length <= radius*radius)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
float xPos, yPos;
|
|
||||||
float radius;
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -34,6 +34,17 @@ void EventButtonCollection::Update(InputClass* inputObject)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EventButtonCollection::Render()
|
||||||
|
{
|
||||||
|
if(this->collectionState == EventCollectionState_Enabled)
|
||||||
|
{
|
||||||
|
for(int i = 0; i < (int)buttons.size(); i++)
|
||||||
|
{
|
||||||
|
buttons[i]->Render();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
EventCollectionState EventButtonCollection::GetState() const
|
EventCollectionState EventButtonCollection::GetState() const
|
||||||
{
|
{
|
||||||
return collectionState;
|
return collectionState;
|
||||||
|
|
|
@ -27,6 +27,10 @@ namespace Oyster
|
||||||
EventCollectionState_Unknown = -1,
|
EventCollectionState_Unknown = -1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/********************************
|
||||||
|
This EventButtonCollection will handle the destruction of the buttons when they are added to the collection.
|
||||||
|
|
||||||
|
********************************/
|
||||||
class EventButtonCollection
|
class EventButtonCollection
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -34,6 +38,7 @@ namespace Oyster
|
||||||
~EventButtonCollection();
|
~EventButtonCollection();
|
||||||
|
|
||||||
void Update(InputClass* inputObject);
|
void Update(InputClass* inputObject);
|
||||||
|
void Render();
|
||||||
|
|
||||||
template <typename Owner>
|
template <typename Owner>
|
||||||
void AddButton(EventButton<Owner>* button)
|
void AddButton(EventButton<Owner>* button)
|
||||||
|
@ -47,7 +52,7 @@ namespace Oyster
|
||||||
//Clear all buttons and reset the state.
|
//Clear all buttons and reset the state.
|
||||||
void Clear();
|
void Clear();
|
||||||
|
|
||||||
private:
|
protected:
|
||||||
std::vector<IEventButton*> buttons;
|
std::vector<IEventButton*> buttons;
|
||||||
EventCollectionState collectionState;
|
EventCollectionState collectionState;
|
||||||
|
|
||||||
|
|
|
@ -1,60 +0,0 @@
|
||||||
//////////////////////////////////////
|
|
||||||
// Created by Pontus Fransson 2014 //
|
|
||||||
//////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef MISC_EVENT_BUTTON_RECTANGLE_H
|
|
||||||
#define MISC_EVENT_BUTTON_RECTANGLE_H
|
|
||||||
|
|
||||||
#include "EventButton.h"
|
|
||||||
#include "../../Input/L_inputClass.h"
|
|
||||||
|
|
||||||
namespace Oyster
|
|
||||||
{
|
|
||||||
namespace Event
|
|
||||||
{
|
|
||||||
template <typename Owner>
|
|
||||||
class EventButtonRectangle : public EventButton<Owner>
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
EventButtonRectangle()
|
|
||||||
: EventButton(), xPos(0), yPos(0), halfWidth(0), halfHeight(0)
|
|
||||||
{}
|
|
||||||
EventButtonRectangle(Owner owner, float xPos, float yPos, float halfWidth, float halfHeight)
|
|
||||||
: EventButton(owner), xPos(xPos), yPos(yPos), halfWidth(halfWidth), halfHeight(halfHeight)
|
|
||||||
{}
|
|
||||||
EventButtonRectangle(void (*EventFunc)( Oyster::Event::ButtonEvent<Owner>& e), float xPos, float yPos, float halfWidth, float halfHeight)
|
|
||||||
: EventButton(EventFunc), xPos(xPos), yPos(yPos), halfWidth(halfWidth), halfHeight(halfHeight)
|
|
||||||
{}
|
|
||||||
EventButtonRectangle(void (*EventFunc)( Oyster::Event::ButtonEvent<Owner>& e), Owner owner, float xPos, float yPos, float halfWidth, float halfHeight)
|
|
||||||
: EventButton(EventFunc, owner), xPos(xPos), yPos(yPos), halfWidth(halfWidth), halfHeight(halfHeight)
|
|
||||||
{}
|
|
||||||
EventButtonRectangle(void (*EventFunc)( Oyster::Event::ButtonEvent<Owner>& e), Owner owner, void* userData, float xPos, float yPos, float halfWidth, float halfHeight)
|
|
||||||
: EventButton(EventFunc, owner, userData), xPos(xPos), yPos(yPos), halfWidth(halfWidth), halfHeight(halfHeight)
|
|
||||||
{}
|
|
||||||
~EventButtonRectangle()
|
|
||||||
{}
|
|
||||||
|
|
||||||
//Circle vs point collision
|
|
||||||
bool Collision(InputClass* inputObject)
|
|
||||||
{
|
|
||||||
//Should come from the InputClass
|
|
||||||
float xMouse = 1, yMouse = 0;
|
|
||||||
|
|
||||||
if(xMouse >= xPos - halfWidth && xMouse <= xPos + halfWidth
|
|
||||||
&& yMouse >= yPos - halfHeight && yMouse <= yPos + halfHeight)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
float xPos, yPos;
|
|
||||||
float halfWidth, halfHeight;
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -34,14 +34,15 @@ void EventHandler::Update(InputClass* inputObject)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventHandler::AddCollection(EventButtonCollection& collection)
|
void EventHandler::Render()
|
||||||
{
|
{
|
||||||
collections.push_back(&collection);
|
for(int i = 0; i < (int)collections.size(); i++)
|
||||||
|
{
|
||||||
|
collections.at(i)->Render();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EventButtonCollection& EventHandler::CreateCollection()
|
void EventHandler::AddCollection(EventButtonCollection* collection)
|
||||||
{
|
{
|
||||||
EventButtonCollection* temp = new EventButtonCollection;
|
collections.push_back(collection);
|
||||||
collections.push_back(temp);
|
|
||||||
return *temp;
|
|
||||||
}
|
}
|
|
@ -9,8 +9,6 @@
|
||||||
|
|
||||||
#include "EventButtonCollection.h"
|
#include "EventButtonCollection.h"
|
||||||
#include "EventButton.h"
|
#include "EventButton.h"
|
||||||
#include "EventButtonCircle.h"
|
|
||||||
#include "EventButtonRectangle.h"
|
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
@ -27,9 +25,9 @@ namespace Oyster
|
||||||
static EventHandler& Instance();
|
static EventHandler& Instance();
|
||||||
|
|
||||||
void Update(InputClass* inputObject);
|
void Update(InputClass* inputObject);
|
||||||
|
void Render();
|
||||||
|
|
||||||
void AddCollection(EventButtonCollection& collection);
|
void AddCollection(EventButtonCollection* collection);
|
||||||
EventButtonCollection& CreateCollection();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<EventButtonCollection*> collections;
|
std::vector<EventButtonCollection*> collections;
|
||||||
|
|
|
@ -25,14 +25,12 @@ namespace Oyster
|
||||||
public:
|
public:
|
||||||
virtual ~IEventButton(){}
|
virtual ~IEventButton(){}
|
||||||
|
|
||||||
virtual void Update(InputClass *input){}
|
virtual void Render() = 0;
|
||||||
|
virtual void Update(InputClass *input) = 0;
|
||||||
|
|
||||||
virtual void SendEvent(ButtonState state){}
|
virtual void SendEvent(ButtonState state) = 0;
|
||||||
|
|
||||||
struct ButtonEvent;
|
virtual unsigned int GetID() = 0;
|
||||||
virtual void SetEventFunc(void (*EventFunc)( ButtonEvent e )){}
|
|
||||||
|
|
||||||
virtual unsigned int GetID(){ return -1; }
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -167,9 +167,7 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="DynamicArray.h" />
|
<ClInclude Include="DynamicArray.h" />
|
||||||
<ClInclude Include="EventHandler\EventButton.h" />
|
<ClInclude Include="EventHandler\EventButton.h" />
|
||||||
<ClInclude Include="EventHandler\EventButtonCircle.h" />
|
|
||||||
<ClInclude Include="EventHandler\EventButtonCollection.h" />
|
<ClInclude Include="EventHandler\EventButtonCollection.h" />
|
||||||
<ClInclude Include="EventHandler\EventButtonRectangle.h" />
|
|
||||||
<ClInclude Include="EventHandler\EventHandler.h" />
|
<ClInclude Include="EventHandler\EventHandler.h" />
|
||||||
<ClInclude Include="EventHandler\IEventButton.h" />
|
<ClInclude Include="EventHandler\IEventButton.h" />
|
||||||
<ClInclude Include="GID.h" />
|
<ClInclude Include="GID.h" />
|
||||||
|
|
|
@ -134,11 +134,5 @@
|
||||||
<ClInclude Include="EventHandler\IEventButton.h">
|
<ClInclude Include="EventHandler\IEventButton.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="EventHandler\EventButtonCircle.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="EventHandler\EventButtonRectangle.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
Loading…
Reference in New Issue