2017-10-26 17:17:30 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "ebase.h"
|
2017-10-28 18:48:21 +08:00
|
|
|
|
#include "egeometry.h"
|
2017-10-26 17:17:30 +08:00
|
|
|
|
|
|
|
|
|
|
namespace e2d
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
class ENode;
|
|
|
|
|
|
class EMsgManager;
|
2017-10-28 18:48:21 +08:00
|
|
|
|
class EPhysicsManager;
|
2017-10-26 17:17:30 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
class EListener :
|
|
|
|
|
|
public EObject
|
|
|
|
|
|
{
|
|
|
|
|
|
friend EMsgManager;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
EListener();
|
|
|
|
|
|
|
|
|
|
|
|
EListener(
|
|
|
|
|
|
const EString &name
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
|
|
|
|
bool isRunning() const;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void start();
|
|
|
|
|
|
|
|
|
|
|
|
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
void stop();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
EString getName() const;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽڵ<DABD>
|
|
|
|
|
|
ENode * getParentNode() const;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setName(
|
|
|
|
|
|
const EString &name
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-04 16:20:17 +08:00
|
|
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7>ͣʱ<CDA3><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setAlwaysWorking(
|
|
|
|
|
|
bool bAlways
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-10-26 17:17:30 +08:00
|
|
|
|
// <20><EFBFBD><F3B6A8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void bindWith(
|
|
|
|
|
|
EScene * pParentScene
|
|
|
|
|
|
) = 0;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><EFBFBD><F3B6A8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
|
|
|
|
|
|
virtual void bindWith(
|
|
|
|
|
|
ENode * pParentNode
|
|
|
|
|
|
) = 0;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void _callOn() = 0;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
EString m_sName;
|
|
|
|
|
|
bool m_bRunning;
|
|
|
|
|
|
bool m_bAlways;
|
|
|
|
|
|
ENode * m_pParentNode;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-11-03 12:51:01 +08:00
|
|
|
|
class EListenerMouse :
|
2017-10-26 17:17:30 +08:00
|
|
|
|
public EListener
|
|
|
|
|
|
{
|
|
|
|
|
|
friend EMsgManager;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouse();
|
2017-10-26 17:17:30 +08:00
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouse(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const EString &name
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouse(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const MOUSE_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouse(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const EString &name,
|
|
|
|
|
|
const MOUSE_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setCallback(
|
|
|
|
|
|
const MOUSE_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><EFBFBD><F3B6A8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void bindWith(
|
|
|
|
|
|
EScene * pParentScene
|
|
|
|
|
|
) override;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><EFBFBD><F3B6A8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
|
|
|
|
|
|
virtual void bindWith(
|
|
|
|
|
|
ENode * pParentNode
|
|
|
|
|
|
) override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void _callOn() override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
MOUSE_LISTENER_CALLBACK m_Callback;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>갴<EFBFBD><EAB0B4><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-11-03 12:51:01 +08:00
|
|
|
|
class EListenerMousePress :
|
|
|
|
|
|
public EListenerMouse
|
2017-10-26 17:17:30 +08:00
|
|
|
|
{
|
|
|
|
|
|
public:
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMousePress();
|
2017-10-26 17:17:30 +08:00
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMousePress(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const EString &name
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMousePress(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const MOUSE_PRESS_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMousePress(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const EString &name,
|
|
|
|
|
|
const MOUSE_PRESS_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setCallback(
|
|
|
|
|
|
const MOUSE_PRESS_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void _callOn() override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
MOUSE_PRESS_LISTENER_CALLBACK m_Callback;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-11-03 12:51:01 +08:00
|
|
|
|
class EListenerMouseClick :
|
|
|
|
|
|
public EListenerMouse
|
2017-10-26 17:17:30 +08:00
|
|
|
|
{
|
|
|
|
|
|
public:
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouseClick();
|
2017-10-26 17:17:30 +08:00
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouseClick(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const EString &name
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouseClick(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const MOUSE_CLICK_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouseClick(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const EString &name,
|
|
|
|
|
|
const MOUSE_CLICK_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setCallback(
|
|
|
|
|
|
const MOUSE_CLICK_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void _callOn() override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
bool m_bPressed;
|
|
|
|
|
|
MOUSE_CLICK_LISTENER_CALLBACK m_Callback;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-11-03 12:51:01 +08:00
|
|
|
|
class EListenerMouseDoubleClick :
|
|
|
|
|
|
public EListenerMouse
|
2017-10-26 17:17:30 +08:00
|
|
|
|
{
|
|
|
|
|
|
public:
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouseDoubleClick();
|
2017-10-26 17:17:30 +08:00
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouseDoubleClick(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const EString &name
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouseDoubleClick(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const MOUSE_DBLCLK_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouseDoubleClick(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const EString &name,
|
|
|
|
|
|
const MOUSE_DBLCLK_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setCallback(
|
|
|
|
|
|
const MOUSE_DBLCLK_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void _callOn() override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
bool m_bPressed;
|
|
|
|
|
|
MOUSE_DBLCLK_LISTENER_CALLBACK m_Callback;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD><CFB6><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-11-03 12:51:01 +08:00
|
|
|
|
class EListenerMouseDrag :
|
|
|
|
|
|
public EListenerMouse
|
2017-10-26 17:17:30 +08:00
|
|
|
|
{
|
|
|
|
|
|
public:
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouseDrag();
|
2017-10-26 17:17:30 +08:00
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouseDrag(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const EString &name
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouseDrag(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const MOUSE_DRAG_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerMouseDrag(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const EString &name,
|
|
|
|
|
|
const MOUSE_DRAG_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setCallback(
|
|
|
|
|
|
const MOUSE_DRAG_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void _callOn() override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
EPoint m_Begin;
|
|
|
|
|
|
MOUSE_DRAG_LISTENER_CALLBACK m_Callback;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-11-03 12:51:01 +08:00
|
|
|
|
class EListenerKeyboard :
|
2017-10-26 17:17:30 +08:00
|
|
|
|
public EListener
|
|
|
|
|
|
{
|
|
|
|
|
|
friend EMsgManager;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerKeyboard();
|
2017-10-26 17:17:30 +08:00
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerKeyboard(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const EString &name
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerKeyboard(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const KEY_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerKeyboard(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const EString &name,
|
|
|
|
|
|
const KEY_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setCallback(
|
|
|
|
|
|
const KEY_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><EFBFBD><F3B6A8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void bindWith(
|
|
|
|
|
|
EScene * pParentScene
|
|
|
|
|
|
) override;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><EFBFBD><F3B6A8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
|
|
|
|
|
|
virtual void bindWith(
|
|
|
|
|
|
ENode * pParentNode
|
|
|
|
|
|
) override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void _callOn() override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
KEY_LISTENER_CALLBACK m_Callback;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
2017-11-03 12:51:01 +08:00
|
|
|
|
class EListenerKeyboardPress :
|
|
|
|
|
|
public EListenerKeyboard
|
2017-10-26 17:17:30 +08:00
|
|
|
|
{
|
|
|
|
|
|
friend EMsgManager;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerKeyboardPress();
|
2017-10-26 17:17:30 +08:00
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerKeyboardPress(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const EString &name
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerKeyboardPress(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const KEY_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerKeyboardPress(
|
2017-10-26 17:17:30 +08:00
|
|
|
|
const EString &name,
|
|
|
|
|
|
const KEY_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void _callOn() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2017-10-28 18:48:21 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
|
|
|
|
|
|
typedef std::function<void(ENode *active, ENode *passive, int relation)> PHYSICS_LISTENER_CALLBACK;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ײ<EFBFBD><D7B2>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
typedef std::function<void(ENode *active, ENode *passive)> COLLISION_LISTENER_CALLBACK;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-11-03 12:51:01 +08:00
|
|
|
|
class EListenerPhysics :
|
2017-10-28 18:48:21 +08:00
|
|
|
|
public EListener
|
|
|
|
|
|
{
|
|
|
|
|
|
friend EPhysicsManager;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerPhysics();
|
2017-10-28 18:48:21 +08:00
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerPhysics(
|
2017-10-28 18:48:21 +08:00
|
|
|
|
const EString &name
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerPhysics(
|
2017-10-28 18:48:21 +08:00
|
|
|
|
const PHYSICS_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerPhysics(
|
2017-10-28 18:48:21 +08:00
|
|
|
|
const EString &name,
|
|
|
|
|
|
const PHYSICS_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setCallback(
|
|
|
|
|
|
const PHYSICS_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>볡<EFBFBD><EBB3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void bindWith(
|
|
|
|
|
|
EScene * pParentScene
|
|
|
|
|
|
) override;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void bindWith(
|
|
|
|
|
|
ENode * pParentNode
|
|
|
|
|
|
) override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void _callOn() override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
PHYSICS_LISTENER_CALLBACK m_Callback;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
class EListenerPhysicsContact :
|
|
|
|
|
|
public EListenerPhysics
|
2017-10-28 18:48:21 +08:00
|
|
|
|
{
|
|
|
|
|
|
friend EMsgManager;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerPhysicsContact();
|
2017-10-28 18:48:21 +08:00
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerPhysicsContact(
|
2017-10-28 18:48:21 +08:00
|
|
|
|
const EString &name
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerPhysicsContact(
|
2017-10-28 18:48:21 +08:00
|
|
|
|
const COLLISION_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-11-03 12:51:01 +08:00
|
|
|
|
EListenerPhysicsContact(
|
2017-10-28 18:48:21 +08:00
|
|
|
|
const EString &name,
|
|
|
|
|
|
const COLLISION_LISTENER_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void _callOn() override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
COLLISION_LISTENER_CALLBACK m_Callback;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2017-10-26 17:17:30 +08:00
|
|
|
|
}
|