📄 gameobject.cpp
字号:
// <p> WORD wZ</p>
//
// <p>Returns: void</p>
//************************************
void CGameObject::SetZOffset(WORD wZ){
m_GameBasalInfo.Z += wZ;
NotifiyChange();
}
//************************************
// <p>Description: 设置缩放</p>
// <p>Parameters: </p>
// <p> _SIZE siSize</p>
//
// <p>Returns: void</p>
//************************************
void CGameObject::SetScaling(_SIZE siSize){
//siSize.cx = siSize.cx*m_BasalInfo.Size.cx;
//siSize.cy = siSize.cy*m_BasalInfo.Size.cy;
SetSize(_SIZE(siSize.cx*m_BasalInfo.Size.cx, siSize.cy*m_BasalInfo.Size.cy));
m_GameBasalInfo.Scaling = siSize;
}
//************************************
// <p>Description: 设置缩放</p>
// <p>Parameters: </p>
// <p> _SIZE siSize</p>
//
// <p>Returns: void</p>
//************************************
void CGameObject::SetScalingOffset(_SIZE siSize){
//siSize.cx = (siSize.cx+m_GameBasalInfo.Scaling.cx)*m_BasalInfo.Size.cx;
//siSize.cy = (siSize.cy+m_GameBasalInfo.Scaling.cy)*m_BasalInfo.Size.cy;
SetSize(_SIZE((siSize.cx+m_GameBasalInfo.Scaling.cx)*m_BasalInfo.Size.cx, (siSize.cy+m_GameBasalInfo.Scaling.cy)*m_BasalInfo.Size.cy));
m_GameBasalInfo.Scaling = siSize;
}
//************************************
// <p>Description: 设置深度</p>
// <p>Parameters: </p>
// <p> DWORD dwDepth</p>
//
// <p>Returns: void</p>
//************************************
void CGameObject::SetDepth(DWORD dwDepth){
m_BasalInfo.Depth = dwDepth;
NotifiyChange();
}
//************************************
// <p>Description: 设置中心</p>
// <p>Parameters: </p>
// <p> _POINT piPoint</p>
//
// <p>Returns: void</p>
//************************************
void CGameObject::SetAnchorPosition(_POINT piPoint){
m_BasalInfo.AnchorPos = piPoint;
NotifiyChange();
}
//************************************
// <p>Description: 设置中心</p>
// <p>Parameters: </p>
// <p> _POINT piPoint</p>
//
// <p>Returns: void</p>
//************************************
void CGameObject::SetAnchorPositionOffset(_POINT piPoint){
m_BasalInfo.AnchorPos.x += piPoint.x;
m_BasalInfo.AnchorPos.y += piPoint.y;
NotifiyChange();
}
//************************************
// <p>Description: 设置大小</p>
// <p>Parameters: </p>
// <p> _SIZE siSize</p>
//
// <p>Returns: void</p>
//************************************
void CGameObject::SetSize(_SIZE siSize){
m_BasalInfo.Size = siSize;
//设置比例
m_GameBasalInfo.Scaling.cx = siSize.cx/m_BasalInfo.Size.cx;
m_GameBasalInfo.Scaling.cy = siSize.cy/m_BasalInfo.Size.cy;
m_GameBasalInfo.Region.right = m_GameBasalInfo.Region.left + siSize.cx;
m_GameBasalInfo.Region.bottom = m_GameBasalInfo.Region.top + siSize.cy;
NotifiyChange();
}
//************************************
// <p>Description: 返回角度</p>
//
// <p>Returns: float</p>
//************************************
float CGameObject::GetAngle(){
return m_GameBasalInfo.Angle*180.0f/M_PI;
}
//************************************
// <p>Description: 返回透明</p>
//
// <p>Returns: WORD</p>
//************************************
WORD CGameObject::GetAlpha(){
return m_GameBasalInfo.Alpha;
}
//************************************
// <p>Description: 返回Z空间</p>
//
// <p>Returns: WORD</p>
//************************************
WORD CGameObject::GetZ(){
return m_GameBasalInfo.Z;
}
//************************************
// <p>Description: 返回缩放</p>
//
// <p>Returns: _SIZE</p>
//************************************
_SIZE CGameObject::GetScaling(){
return m_GameBasalInfo.Scaling;
}
//************************************
// <p>Description: 返回深度</p>
//
// <p>Returns: DWORD</p>
//************************************
DWORD CGameObject::GetDepth(){
return m_BasalInfo.Depth;
}
//************************************
// <p>Description: 返回大小</p>
//
// <p>Returns: _SIZE</p>
//************************************
_SIZE CGameObject::GetSize(){
return m_BasalInfo.Size;
}
//************************************
// <p>Description: 返回区域</p>
//
// <p>Returns: _RECT</p>
//************************************
_RECT CGameObject::GetRegion(){
return m_GameBasalInfo.Region;
}
//************************************
// <p>Description: 返回基本信息</p>
//
// <p>Returns: BASALINFO&</p>
//************************************
BASALINFO& CGameObject::GetBasalInfo(){
return m_BasalInfo;
}
//************************************
// <p>Description: 返回基本信息</p>
//
// <p>Returns: GAMEBASALINFO&</p>
//************************************
GAMEBASALINFO& CGameObject::GetGameBasalInfo(){
return m_GameBasalInfo;
}
//************************************
// <p>Description: 碰撞检测</p>
// <p>Parameters: </p>
// <p> IGameObject * IGameObject</p>
// <p> bool bFlag</p>
//
// <p>Returns: bool</p>
//************************************
bool CGameObject::Hitting(IGameObject* IGameObject, bool bFlag){
_POINT piSelf, piOther, piOtherAnchor;
_SIZE siSelf, siOther;
piSelf = GetScreenPosition();
piSelf.x -= m_BasalInfo.AnchorPos.x;
piSelf.y -= m_BasalInfo.AnchorPos.y;
piOther = IGameObject->GetScreenPosition();
piOtherAnchor = IGameObject->GetAnchorPosition();
piOther.x -= piOtherAnchor.x;
piOther.y -= piOtherAnchor.y;
siSelf = GetSize();
siOther = IGameObject->GetSize();
//完全包含检测
if(bFlag){
if(piSelf.x<=piOther.x && piSelf.y<=piOther.y && (piSelf.x+siSelf.cx)>=(piOther.x+siOther.cx) && (piSelf.y+siOther.cy)>=(piOther.y+siOther.cy))
return true;
}
//触碰检测
else{
}
return false;
}
//************************************
// <p>Description: 碰撞检测</p>
// <p>Parameters: </p>
// <p> float x</p>
// <p> float y</p>
//
// <p>Returns: bool</p>
//************************************
bool CGameObject::Hitting(float x, float y){
_RECT rcRegion = m_GameBasalInfo.Region + m_BasalInfo.ContainerPos;
return rcRegion.Hitting(x, y);
}
//************************************
// <p>Description: 通知变动</p>
//************************************
void CGameObject::NotifiyChange(){
if(m_pParent){
IBaseObject* pParent = GET_OBJECTPTR_INTERFACE(m_pParent, IBaseObject);
//自动更新类型
if(pParent && pParent->GetCacheType()==1){
pParent->NotifiyChange();
}
}
}
//************************************
// <p>Description: =重载</p>
// <p>Parameters: </p>
// <p> CGameObject& GameObject</p>
//
// <p>Returns: CGameObject&</p>
//************************************
CGameObject& CGameObject::operator=(const CGameObject& GameObject){
//m_pParent = GameObject.m_pParent;
m_lpGDI = GameObject.m_lpGDI;
m_enGameType = GameObject.m_enGameType;
m_bClipping = GameObject.m_bClipping;
CopyMemory((LPVOID)(&m_BasalInfo), &GameObject.m_BasalInfo, sizeof(m_BasalInfo));
CopyMemory((LPVOID)(&m_GameBasalInfo), &GameObject.m_GameBasalInfo, sizeof(m_GameBasalInfo));
CopyMemory((LPVOID)(&m_szName), &GameObject.m_szName, sizeof(m_szName));
return *this;
}
//************************************
// <p>Description: 设置剪裁</p>
// <p>Parameters: </p>
// <p> bool bFlag</p>
//
// <p>Returns: void</p>
//************************************
void CGameObject::SetClipping(bool bFlag){
m_bClipping = bFlag;
NotifiyChange();
}
//************************************
// <p>Description: 鼠标移动</p>
// <p>Parameters: </p>
// <p> float x</p>
// <p> float y</p>
// <p> int nType</p>
// <p> int nKey</p>
//
// <p>Returns: bool</p>
//************************************
bool CGameObject::OnMouseMove(float x, float y, UINT nComboKey){
return true;
}
//************************************
// <p>Description: 鼠标点击</p>
// <p>Parameters: </p>
// <p> float x</p>
// <p> float y</p>
// <p> int nType</p>
// <p> int nKey</p>
//
// <p>Returns: bool</p>
//************************************
bool CGameObject::OnMouseClick(float x, float y, int nType, UINT nMessage, UINT nComboKey){
return true;
}
//************************************
// <p>Description: 鼠标点击</p>
// <p>Parameters: </p>
// <p> float x</p>
// <p> float y</p>
// <p> int nType</p>
// <p> int nKey</p>
//
// <p>Returns: bool</p>
//************************************
bool CGameObject::OnMouseDBClick(float x, float y, UINT nMessage, UINT nComboKey){
return true;
}
//************************************
// <p>Description: 鼠标点击</p>
// <p>Parameters: </p>
// <p> float x</p>
// <p> float y</p>
// <p> int nKey</p>
//
// <p>Returns: bool</p>
//************************************
//bool CGameObject::OnMouseUp(float x, float y, int nKey){
// return true;
//}
//************************************
// <p>Description: 鼠标点击</p>
// <p>Parameters: </p>
// <p> float x</p>
// <p> float y</p>
// <p> int nKey</p>
//
// <p>Returns: bool</p>
//************************************
//bool CGameObject::OnMouseDown(float x, float y, int nKey){
// return true;
//}
//************************************
// <p>Description: 鼠标移入</p>
// <p>Parameters: </p>
// <p> float x</p>
// <p> float y</p>
// <p> int nType</p>
// <p> int nKey</p>
//
// <p>Returns: bool</p>
//************************************
bool CGameObject::OnMouseIn(float x, float y, int nType, UINT nMessage, UINT nComboKey){
return true;
}
//************************************
// <p>Description: 鼠标移出</p>
// <p>Parameters: </p>
// <p> float x</p>
// <p> float y</p>
// <p> int nType</p>
// <p> int nKey</p>
//
// <p>Returns: bool</p>
//************************************
bool CGameObject::OnMouseOut(float x, float y, int nType, UINT nMessage, UINT nComboKey){
return true;
}
//************************************
// <p>Description: 鼠标移过</p>
// <p>Parameters: </p>
// <p> float x</p>
// <p> float y</p>
// <p> int nType</p>
// <p> int nKey</p>
//
// <p>Returns: bool</p>
//************************************
bool CGameObject::OnMouseOver(float x, float y, int nType, UINT nMessage, UINT nComboKey){
return true;
}
//************************************
// <p>Description: 键盘事件</p>
//
// <p>Returns: bool</p>
//************************************
bool CGameObject::OnKeyPass(TCHAR nKey, UINT nFlag){
return true;
}
//************************************
// <p>Description: 键盘事件</p>
// <p>Parameters: </p>
// <p> UINT nKey</p>
// <p> UINT nFlag</p>
//
// <p>Returns: bool</p>
//************************************
bool CGameObject::OnKeyUp(UINT nKey, UINT nFlag){
return true;
}
//************************************
// <p>Description: 键盘事件</p>
// <p>Parameters: </p>
// <p> UINT nKey</p>
// <p> UINT nFlag</p>
//
// <p>Returns: bool</p>
//************************************
bool CGameObject::OnKeyDown(UINT nKey, UINT nFlag){
return true;
}
//************************************
// <p>Description: 每帧回调消息</p>
//
// <p>Returns: bool</p>
//************************************
bool CGameObject::OnFrameEvent(){
return true;
}
//************************************
// <p>Description: 调用事件消息</p>
//
// <p>Returns: bool</p>
//************************************
bool CGameObject::OnAttemperEvent(){
return true;
}
//************************************
// <p>Description: 焦点丢失事件消息</p>
//************************************
void CGameObject::FocusLost()
{
return;
}
//************************************
// <p>Description: 焦点获取事件消息</p>
//************************************
void CGameObject::FocusGain()
{
return;
}
//************************************
// <p>Description: 接口查询</p>
// <p>Parameters: </p>
// <p> const IID & Guid</p>
// <p> DWORD dwQueryVer</p>
//
// <p>Returns: void*</p>
//************************************
void* CGameObject::QueryInterface(const IID &Guid, DWORD dwQueryVer){
QUERYINTERFACE(IGameObject,Guid,dwQueryVer);
QUERYINTERFACE(IBaseObject,Guid,dwQueryVer);
QUERYINTERFACE_IUNKNOWNEX(IGameObject,Guid,dwQueryVer);
return NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -