打包Cocos2d-x工程为PC项目

<1>第一步,得到整体的大.exe

1.复制cocos2d-x-2.2文件下的Release.win32文件侠到桌面。

2.将项目下的Resources里的资源复制到Release.win32文件里面。

3.除exe文件、资源和dll文件外,其它文件全部删除以节省空间。

4,将.exe, dll,资源文件全部拷贝到桌面上

5,选中所有要打包的文件-->右键-->添加到压缩文件-->创建自解压格式压缩文件(X)

6,高级-->自解压选项

7,更新   更新方式:解压并更新文件  覆盖方式:覆盖所有文件(L)

   文本和图标 从文件加载自解压文件图标(I)-->浏览到程序图标

   模式  临时模式:解包到临时文件(T) 安静模式:全部隐藏

   设置  设置程序-->提取后运行(F)-->写入要执行的exe文件名字

8,确定-->得到打包后的一个最终的PC版本.exe文件


<2>第二步,打包安装包

原文地址:

http://wenku.baidu.com/link?url=Np4iXjfLfw9pK7Yu1dTk-7Tj6qNivYMy4zClXdDIP_JjdZsj_pzhmK_tWkr_osRb5us2gZi3RTBC-YmkiKeTAVewqlNm6qkNXEYev3C0VXy&qq-pf-to=pcqq.c2c

1,解决方案-->右键-->新建项目

2,其它项目类型-->Visual Studio Installer 

3,把整体的.exe文件,文件icon, 并搜索msiexec.exe放到应用程序文件夹

4,在用户的"程序"菜单 添加文件夹,建立.exe快捷键 和 卸载快捷键 到用户的"程序"菜单并修改图标

5,建立.exe快捷键 到用户桌面,薚修改图标

6,左键项目,提取:ProductCode, 并修改作者

7,在卸载快捷键Arguments 写上:/x ProductCode, 比如:/x {2ED1741A-3CFC-4C62-97E8-9496F42CF725}

8,得到.msi


<3>.msi和.exe区别

有些软件的正本里面同时含有.msi程序和Setup.exe程序,例如Symantec AntiVirus客户端的软件里就含有Symantec AntiVirus.MSI和Setup.exe两个安装程序。一般情况下随便用其一安装Symantec AntiVirus客户端,结果是一样的。但是如果我们的操作系统(安装环境)没有安装某些程序,则.MSI有可能不能运行,这时就要用Setup.exe来安装Symantec AntiVirus客户端。Setup.exe可以利用Setup.ini来先安装运行.MSI需要的软件,建造一个较全的安装环境,最后再调用.MSI程序。所以当你确定你的安装环境不缺少什么应该安装的程序时,可以直接运行.MSI来安装软件的副本。对于Symantec AntiVirus客户端软件来说,Setup.exe的一个主要功能就是先安装WindowsInstaller.exe最新版,因为所有的.MSI程序都需要系统里装有WindowsInstaller.exe才能正常运行。


<4>PC 版本分辨率适配

<1>满意的
#include "main.h"
#include "AppDelegate.h"
#include "CCEGLView.h"
#include "Tool.h"
USING_NS_CC;

int APIENTRY _tWinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPTSTR    lpCmdLine,
                       int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);

    // create the application instance
    AppDelegate app;
    CCEGLView* eglView = CCEGLView::sharedOpenGLView();
	eglView->setFullScreen(true);
    eglView->setViewName(a2u("我是掼蛋王").c_str());
    //eglView->setFrameSize(1024, 768);  //小屏幕
	//eglView->setFrameSize(1920, 1080); //全屏
	
	//屏幕大小设置
	int width = GetSystemMetrics(SM_CXSCREEN);
	int height = GetSystemMetrics(SM_CYSCREEN);

	float cx = width/(1920/1024.0);
	float cy = height/(1080/768.0);

	eglView->setFrameSize(cx, cy);

    return CCApplication::sharedApplication()->run();  
}

<2>不太好
#include "main.h"
#include "AppDelegate.h"
#include "CCEGLView.h"
#include "Tool.h"
USING_NS_CC;

int APIENTRY _tWinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPTSTR    lpCmdLine,
                       int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);

    // create the application instance
    AppDelegate app;
    CCEGLView* eglView = CCEGLView::sharedOpenGLView();
	eglView->setFullScreen(true);
    eglView->setViewName(a2u("我是掼蛋王").c_str());
    //eglView->setFrameSize(1024, 768);  //小屏幕
	//eglView->setFrameSize(1920, 1080); //全屏
	
	//屏幕大小设置
	int width = GetSystemMetrics(SM_CXSCREEN);
	int height = GetSystemMetrics(SM_CYSCREEN);

	float cx = 0, cy = 0;

	float wh = 1024/768.0;  //屏幕宽高比
	float scalex = width/1024.0; //原因就在于这里不是等比例变化
	float scaley = height/768.0;
	if(scalex >= scaley)
	{
		cx = width/scalex;
		cy = cx/wh;
	}
	else
	{
		cy = height/scaley;
		cx = cy*wh;
	}

	eglView->setFrameSize(cx, cy);

    return CCApplication::sharedApplication()->run();  
}





猜你喜欢

转载自blog.csdn.net/themagickeyjianan/article/details/33322661