把 Cocos2d 嵌入 Qt 窗口中(1)

原创 2012年03月31日 13:37:41

cocos2dx\platform\qt\CCEGLView_qt.cpp

bool CCEGLView::Create(int iWidth, int iHeight)
中包含了是如何利用QGLWidget 来创建一个窗体的。


或者是先创建号GLWidget, 然后通过 

bool CCEGLView::SetWindow(GLWidget* window)
来制定窗口。


增加QWidget 来导出控件.


cocos2dx\platform\qt\CCEGLView_qt.h:

public:
    QWidget *widget;

cocos2dx\platform\qt\CCEGLView_qt.cpp:

bool CCEGLView::Create(int iWidth, int iHeight)
{
    widget = new QWidget;
    widget->setAttribute(Qt::WA_PaintOnScreen);
    widget->setFixedSize(iWidth, iHeight);
    m_window = new GLWidget(iWidth,iHeight, CCDirector::sharedDirector(), widget);

    m_window->setMouseMoveFunc(&cocos2d::mouseMove);
    m_window->setMousePressFunc(&cocos2d::mousePress);
    m_window->setMouseReleaseFunc(&cocos2d::mouseRelease);

    m_window->setWindowFlags(m_window->windowFlags()& ~Qt::WindowMaximizeButtonHint);
    m_window->setFixedSize(iWidth, iHeight);

    widget->show();

    m_bIsSubWindow = true;

    bIsInit = true;
    s_pMainWindow = this;

    m_sSizeInPoint.width = iWidth;
    m_sSizeInPoint.height = iHeight;
    m_bOrientationInitVertical = (CCDeviceOrientationPortrait == m_eInitOrientation
                || kCCDeviceOrientationPortraitUpsideDown == m_eInitOrientation) ? true : false;

	return true;
}


重新编译libcocos2d


HelloWorld

修改 AppDelegate.cpp 
bool AppDelegate::initInstance() 

#if (CC_TARGET_PLATFORM == CC_PLATFORM_QT)
        CCEGLView * pMainWnd = new CCEGLView();
        CC_BREAK_IF(! pMainWnd|| ! pMainWnd->Create(480, 320));

// 添加, 这个widget还不能向外保留接口,比如把window 声明为public 变量,从外部访问它。具体原因还不知道

        QWidget *window = new QWidget();
        window->setAttribute(Qt::WA_DeleteOnClose);
        QHBoxLayout *layout = new QHBoxLayout(window);
        layout->addWidget(pMainWnd->widget);
        window->show();
#endif



cocos2d-x 基础系列 (09) 将cocos2d-x导入到Qt creator工程中

Qt creator是一个计算机图形的开源库,在嵌入式领域有着举足轻重的作用,开发时间早,而且很成熟,可以用来写coco2d-x的代码。 导入工程的方法很简单,打开Qt Creator -> File...
  • WAN_EXE
  • WAN_EXE
  • 2017年03月28日 13:03
  • 277

Cocos2d-x 3.X Qt MinGW版本编译运行

自Cocos2d-x 3.X引入了C++ 11特性,在Windows平台上的支持就仅限VS 2012,其实还可以尝试MinGW版本,GitHub上有MinGW版本的Qt Creator工程。 地...

将cocos2d渲染窗体嵌入到qt中

开发游戏编辑器时用到,一个比较简单的实现,参考了将ogre嵌入到qt的方法。 主要做法是通过重写CCEGLView源码,稍微改变了其中的两个函数,改写后的函数能够传递句柄,让cocos2d引擎渲染到我...

cocos2d + qt

  • 2017年08月23日 15:00
  • 81KB
  • 下载

cocos2d-html5官方教程1(中文)

  • 2013年04月20日 13:15
  • 824KB
  • 下载

用cocos2d 2.1制作一个过河小游戏(1): 总概

今天老师布置了任务,要大家分小组设计“牧师与恶魔过河”的you'xi

cocos2d android-1

  • 2014年11月07日 18:01
  • 25.4MB
  • 下载

Cocos2d-Android-1游戏开发

  • 2015年03月11日 15:35
  • 24.29MB
  • 下载

使用cocos2d制作【水果忍者】的类似游戏part1

在这篇教程里,你将会学习到使用强大的cocos2d、box2d库和一些预制工具,来制作一个切东西的iPhone游戏,类似于Halfbrick Studios公司的水果忍者。 在大多数切东西的游戏...

cocos2d-android-1

  • 2016年10月04日 11:14
  • 4.69MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:把 Cocos2d 嵌入 Qt 窗口中(1)
举报原因:
原因补充:

(最多只允许输入30个字)