2D开源游戏框架

posts(19) comments(34) trackbacks(0)
  • 联系
  • RSS 2.0 Feed 聚合
  • 管理

公告

我是Lwq49

新版的OGF 0.8.1.0项目代码已上传了!
QQ:21038481
MSN:lwq49@msn.com
欢迎大家加入OGF开源项目小组,Q群是:42407090
目标:打造类似Popcap的开源游戏开发框架

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类(18)

  •  Lego机器人(3)
  •  开源游戏框架(15)

随笔档案(19)

  • 2007年10月 (1)
  • 2007年9月 (18)

文章分类

  •  Lego机器人
  •  开源游戏框架

相册

  • Lego

在CSDN上的开源游戏框架旧文章

  • 开源游戏框架

最新随笔

  • 1. 继续放出OGF 0.8.1版的源代码,请多多支持!!!
  • 2. 关于鼠标消息处理机制的调整
  • 3. 实在佩服D鬼佬,将兴趣与艺术相结合
  • 4. OGF 0.81 debug版代码发布
  • 5. OGF框架范例11 图形对象及对象的区域
  • 6. OGF开发近况 20070806
  • 7. OGF框架之网络应用(下)
  • 8. OGF框架之网络应用(上)
  • 9. OGF框架范例07 布局器
  • 10. OGF框架范例06 物件动作

搜索

  •  

积分与排名

  • 积分 - 23089
  • 排名 - 752

最新评论

  • 1. re: 一些乐高NXT相关的网站与博客
  • 评论内容较长,点击标题查看
  • --business loans
  • 2. re: OGF 0.81 debug版代码发布
  • libc.lib在哪里
  • --j
  • 3. re: 一些乐高NXT相关的网站与博客
  • 评论内容较长,点击标题查看
  • --home loans
  • 4. re: 继续放出OGF 0.8.1版的源代码,请多多支持!!!
  • 谢谢分享,下下来研究下!
  • --Nation
  • 5. re: 一些乐高NXT相关的网站与博客
  • 评论内容较长,点击标题查看
  • --thesis service

阅读排行榜

评论排行榜

View Post

OGF框架范例03 事件机制

Sample03
简介:
键盘,鼠标事件的演示。
键盘、鼠标是游戏中主要的输入设备,往往会要求获取当前鼠标对象、鼠标坐标等。该例展示了OGF框架的事件处理机制,并介绍如何运用。

1.在GameBody.h文件重载OnMouseMove(),OnMouseClick(),OnMouseIn(),OnMouseOut(),OnMouseOver(),OnKeyPass()事件.

2.在GameBody.cpp文件底部添加以下代码:

//鼠标移动
bool CMyGameBody::OnMouseMove(float x, float y){
 char  szText[128];

 sprintf(szText, "Mouse Move:x=%f, y=%f", x, y);
 IGameObject* pGameObject = (IGameObject*)m_pCurrentSection->GetGameView()->GetObject("default\\default\\Text");
 //查询接口方法1
 IGameObjectText* pIGOText = (IGameObjectText*)pGameObject->QueryInterface(IID_IGameObjectText, VER_IGameObjectText);
 pIGOText->SetText(szText);
 return true;
}

//鼠标点击
bool CMyGameBody::OnMouseClick(CGameScene* pGameScene, CGameLayer* pGameLayer, IGameObject* pGameObject, int nType, int nKey){
 char  szText[128];

 sprintf(szText, "Object:%s Clicked", pGameObject->GetObjectName());
 //查询接口方法2
 IGameObjectText* pIGOText = GET_OBJECTPTR_INTERFACE(pGameObject, IGameObjectText);
 pIGOText->SetText(szText);
 return true;
}

//鼠标移入
bool CMyGameBody::OnMouseIn(CGameScene* pGameScene, CGameLayer* pGameLayer, IGameObject* pGameObject){
 char  szText[128];

 sprintf(szText, "Mov In:%s", pGameObject->GetObjectName());
 //查询接口方法2
 IGameObjectText* pIGOText = GET_OBJECTPTR_INTERFACE(pGameObject, IGameObjectText);
 pIGOText->SetText(szText);
 return true;
}

//鼠标移出
bool CMyGameBody::OnMouseOut(CGameScene* pGameScene, CGameLayer* pGameLayer, IGameObject* pGameObject){
 char  szText[128];

 sprintf(szText, "Mov Out:%s", pGameObject->GetObjectName());
 //查询接口方法2
 IGameObjectText* pIGOText = GET_OBJECTPTR_INTERFACE(pGameObject, IGameObjectText);
 pIGOText->SetText(szText);
 return true;
}

//鼠标移过
bool CMyGameBody::OnMouseOver(CGameScene* pGameScene, CGameLayer* pGameLayer, IGameObject* pGameObject){
 char  szText[128];

 sprintf(szText, "Mov Over:%s", pGameObject->GetObjectName());
 //查询接口方法2
 IGameObjectText* pIGOText = GET_OBJECTPTR_INTERFACE(pGameObject, IGameObjectText);
 pIGOText->SetText(szText);
 return true;
}

//键盘事件
bool CMyGameBody::OnKeyPass(int nType, int nKey, char cChar){
 char  szText[128];

 sprintf(szText, "Type:%d Key:%d Char:%c", nType, nKey, cChar);
 IGameObject* pGameObject = (IGameObject*)m_pCurrentSection->GetGameView()->GetObject("default\\default\\Text");
 //查询接口方法1
 IGameObjectText* pIGOText = (IGameObjectText*)pGameObject->QueryInterface(IID_IGameObjectText, VER_IGameObjectText);
 pIGOText->SetText(szText);

 return true;
}

3.编译并运行项目 

运行结果:
运行后在屏幕中心显示"None"字样,当任意键点击后会显示:"Key:xx",当鼠标点击后会显示:"Mouse Clicked"等.在OGF框架中,键盘,鼠标的事件触发后会分发至CGameBody类的OnMouseMove(),OnMouseClick(),OnMouseIn(),OnMouseOut(),OnMouseOver(),OnKeyPass()事件中,游戏可在这些事件中进行回调处理

posted on 2007-09-10 23:51 lwq49 阅读(871) 评论(0)  编辑 收藏 引用 所属分类: 开源游戏框架


只有注册用户登录后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
  • 继续放出OGF 0.8.1版的源代码,请多多支持!!!
  • 关于鼠标消息处理机制的调整
  • OGF 0.81 debug版代码发布
  • OGF框架范例11 图形对象及对象的区域
  • OGF开发近况 20070806
  • OGF框架之网络应用(下)
  • OGF框架之网络应用(上)
  • OGF框架范例07 布局器
  • OGF框架范例06 物件动作
  • OGF框架范例05 计时器
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


 
Powered by:
C++博客
Copyright © lwq49