VS2010 cocos2d-x 工程配置

上网查了下window下cocos2d-x的工程配置方法,一种是直接cocos2d-x工程下建子工程,另一种是每次新建完工程后自己配置一下,貌似都不太方便。所以还是自己动手改下工程模板的js配置,以后建工程都方便点。
1.我的cocos2d-x放在.C:\DevTools\cocos2d-x (已经生成好debug及release,别忘了生成下)

2.打开Cocos2d-x目录下面的default .js文件 (路径:C:\DevTools\cocos2d-x\template\ms vc\CCAppWiz.win32\Scripts\1033)


修改以上几处代码,重新执行下install-templates-msvc。(转载请注明出处!)





附上修改的代码,自己diy修改下目录。试一下新建工程,看下能否debug和release吧!
function LogInfo(strInfo) {  
    var FileSys = new ActiveXObject("Scripting.FileSystemObject");  
    var strLogPath = "\\CCApplicationWizardLog.txt"  
    var file = FileSys.OpenTextFile(strLogPath, 8, true);  
    file.WriteLine(strInfo);     
    file.Close();          
}  
  
function OnFinish(selProj, selObj) {  
    try {  
        // Create symbols based on the project name  
        var strProjectPath = wizard.FindSymbol('PROJECT_PATH');  
        var strProjectName = wizard.FindSymbol('PROJECT_NAME');  
  
        //         var WizardVersion = wizard.FindSymbol('WIZARD_VERSION');  
        //         if(WizardVersion >= 8.0)  
        //         {  
        //         }  
  
        // Create symbols based on the project name  
        var strSafeProjectName = CreateSafeName(strProjectName);  
        wizard.AddSymbol("SAFE_PROJECT_NAME", strSafeProjectName);  
        wizard.AddSymbol("NICE_SAFE_PROJECT_NAME", strSafeProjectName.substr(0, 1).toUpperCase() + strSafeProjectName.substr(1))  
        wizard.AddSymbol("UPPERCASE_SAFE_PROJECT_NAME", strSafeProjectName.toUpperCase());  
  
        // Set current year symbol  
        var d = new Date();  
        var nYear = 0;  
        nYear = d.getFullYear();  
        wizard.AddSymbol("CC_CURRENT_YEAR", nYear);  
        wizard.AddSymbol("CC_CURRENT_DATE", d.toString());  
  
        // Create project and configurations  
        selProj = CreateCustomProject(strProjectName, strProjectPath);  
        AddConfigurations(selProj, strProjectName);  
        AddFilters(selProj);  
  
        var InfFile = CreateCustomInfFile();  
        AddFilesToCustomProj(selProj, strProjectName, strProjectPath, InfFile);  
        AddPchSettings(selProj);  
        InfFile.Delete();  
  
        selProj.Object.Save();  
    }  
    catch (e) {  
        if (e.description.length != 0)  
            SetErrorInfo(e);  
        return e.number;  
    }  
}  
  
function CreateCustomProject(strProjectName, strProjectPath) {  
    try {  
        var strProjTemplatePath = wizard.FindSymbol('PROJECT_TEMPLATE_PATH');  
        var strProjTemplate = '';  
        var WizardVersion = wizard.FindSymbol('WIZARD_VERSION');   
        if(WizardVersion >= 10.0)  
            strProjTemplate = strProjTemplatePath + '\\default.vcxproj';  
        else  
            strProjTemplate = strProjTemplatePath + '\\default.vcproj';  
  
        var Solution = dte.Solution;  
        var strSolutionName = "";  
        if (wizard.FindSymbol("CLOSE_SOLUTION")) {  
            Solution.Close();  
            strSolutionName = wizard.FindSymbol("VS_SOLUTION_NAME");  
            if (strSolutionName.length) {  
                var strSolutionPath = strProjectPath.substr(0, strProjectPath.length - strProjectName.length);  
                Solution.Create(strSolutionPath, strSolutionName);  
            }  
        }  
  
        // Create vcproj.user file  
        var FileSys = new ActiveXObject("Scripting.FileSystemObject");  
        var strUserTarget = "";  
        if(WizardVersion >= 10.0)  
            strUserTarget = strProjectName + ".win32.vcxproj.user";  
        else  
            strUserTarget = strProjectName + ".win32.vcproj.user";  
  
        var strUserPath = FileSys.BuildPath(strProjectPath+"\\proj.win32", strUserTarget);  
  
        var astrParentPath = new Array();  
        astrParentPath[0] = strProjectPath;  
        while (astrParentPath.length) {  
            var strPath = astrParentPath.pop();  
            var strParentPath = FileSys.GetParentFolderName(strPath);  
  
            if (!FileSys.FolderExists(strParentPath)) {  
                astrParentPath.push(strPath);  
                astrParentPath.push(strParentPath);  
                continue;  
            }  
            else {  
                if (!FileSys.FolderExists(strPath)) {  
                    FileSys.CreateFolder(strPath);  
                }  
                var strWin32ProjectPath = strPath + "\\proj.win32";  
  
                if (!FileSys.FolderExists(strWin32ProjectPath)) {  
                    FileSys.CreateFolder(strWin32ProjectPath);  
                }  
            }  
        }  
  
        var file = FileSys.OpenTextFile(strUserPath, 2, true);  
        var strUserValue = "";  
        if(WizardVersion >= 10.0)  
            strUserValue = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n"  
                 + "<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n"  
                 + "  <PropertyGroup>\r\n"  
                 + "    <ShowAllFiles>false</ShowAllFiles>\r\n"  
                 + "    <LocalDebuggerWorkingDirectory Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">$(ProjectDir)..\\Resources</LocalDebuggerWorkingDirectory>\r\n"  
                 + "    <LocalDebuggerWorkingDirectory Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">$(ProjectDir)..\\Resources</LocalDebuggerWorkingDirectory>\r\n"  
                 + "    <DebuggerFlavor Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">WindowsLocalDebugger</DebuggerFlavor>\r\n"  
                 + "    <DebuggerFlavor Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">WindowsLocalDebugger</DebuggerFlavor>\r\n"  
                 + "  </PropertyGroup>\r\n"  
                 + "  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\r\n"  
                 + "    <LocalDebuggerEnvironment>PATH=$(Cocos2dx)\\Debug.win32%3b$(PATH)</LocalDebuggerEnvironment>\r\n"  
                 + " </PropertyGroup>\r\n"  
                 + " <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\r\n"  
                 + "    <LocalDebuggerEnvironment>PATH=$(Cocos2dx)\\Release.win32%3b$(PATH)</LocalDebuggerEnvironment>\r\n"  
                 + " </PropertyGroup>\r\n"  
                 + "</Project>";  
        else  
            strUserValue = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n"  
                 + "<VisualStudioUserFile\r\n"  
                 + "    ProjectType=\"Visual C++\"\r\n"  
                 + "    Version=\"9.00\"\r\n"  
                 + "    ShowAllFiles=\"false\"\r\n"  
                 + "    >\r\n"  
                 + "    <Configurations>\r\n"  
                 + "        <Configuration\r\n"  
                 + "            Name=\"Debug|Win32\"\r\n"  
                 + "            >\r\n"  
                 + "            <DebugSettings\r\n"  
                 + "                WorkingDirectory=\"$(ProjectDir)..\\Resources\\\"\r\n"  
                 + "            />\r\n"  
                 + "        </Configuration>\r\n"  
                 + "        <Configuration\r\n"  
                 + "            Name=\"Release|Win32\"\r\n"  
                 + "            >\r\n"  
                 + "            <DebugSettings\r\n"  
                 + "                WorkingDirectory=\"$(ProjectDir)..\\Resources\\\"\r\n"  
                 + "            />\r\n"  
                 + "        </Configuration>\r\n"  
                 + "    </Configurations>\r\n"  
                 + "</VisualStudioUserFile>";  
        file.WriteLine(strUserValue);  
        file.Close();   
  
        // Create project file  
        var strProjectNameWithExt = '';  
        if(WizardVersion >= 10.0)  
            strProjectNameWithExt = strProjectName + '.win32.vcxproj';  
        else  
            strProjectNameWithExt = strProjectName + '.win32.vcproj';  
  
        var oTarget = wizard.FindSymbol("TARGET");  
        var prj;  
        if (wizard.FindSymbol("WIZARD_TYPE") == vsWizardAddSubProject)  // vsWizardAddSubProject  
        {  
            var prjItem = oTarget.AddFromTemplate(strProjTemplate, strProjectNameWithExt);  
            prj = prjItem.SubProject;  
        }  
        else {  
            prj = oTarget.AddFromTemplate(strProjTemplate, strProjectPath+"\\proj.win32\\", strProjectNameWithExt);  
        }  
        return prj;  
    }  
    catch (e) {  
        throw e;  
    }  
}  
  
function AddFilters(proj) {  
    try {  
        // Add the folders to your project  
        var strSrcFilter = wizard.FindSymbol('SOURCE_FILTER');  
        var group = proj.Object.AddFilter('source');  
        group.Filter = strSrcFilter;  
  
        strSrcFilter = wizard.FindSymbol('INCLUDE_FILTER');  
        group = proj.Object.AddFilter('include');  
        group.Filter = strSrcFilter;  
  
        strSrcFilter = wizard.FindSymbol('RESOURCE_FILTER');  
        group = proj.Object.AddFilter('resource');  
        group.Filter = strSrcFilter;  
    }  
    catch (e) {  
        throw e;  
    }  
}  
  
// Configurations data  
var nNumConfigs = 2;  
  
var astrConfigName = new Array();  
astrConfigName[0] = "Debug";  
astrConfigName[1] = "Release";  
  
function AddConfigurations(proj, strProjectName) {  
    try {  
        var nCntr;  
        for (nCntr = 0; nCntr < nNumConfigs; nCntr++) {  
            // Check if it's Debug configuration  
            var bDebug = false;  
            if (astrConfigName[nCntr].search("Debug") != -1)  
                bDebug = true;  
  
            // General settings  
            var config = proj.Object.Configurations(astrConfigName[nCntr]);  
  
            //             if(wizard.FindSymbol("CC_USE_UNICODE"))  
            config.CharacterSet = charSetUnicode;  
            //             else  
            //                config.CharacterSet = charSetMBCS;  
  
            var WizardVersion = wizard.FindSymbol('WIZARD_VERSION');   
            if(WizardVersion >= 10.0) {  
                config.OutputDirectory = '$(SolutionDir)$(Configuration).win32\\'  
                config.IntermediateDirectory = '$(Configuration).win32\\';  
            } else {  
                config.OutputDirectory = '$(SolutionDir)$(ConfigurationName).win32'  
                config.IntermediateDirectory = '$(ConfigurationName).win32';  
            }  
  
            // Compiler settings  
            var CLTool = config.Tools('VCCLCompilerTool');  
  
            // Additional Inlcude Directories  
            var strAddIncludeDir = '.;..\\Classes';  
            strAddIncludeDir += ';$(Cocos2dx)cocos2dx';  
            strAddIncludeDir += ';$(Cocos2dx)cocos2dx\\include';  
            strAddIncludeDir += ';$(Cocos2dx)cocos2dx\\kazmath\\include';  
            strAddIncludeDir += ';$(Cocos2dx)cocos2dx\\platform\\win32';  
            strAddIncludeDir += ';$(Cocos2dx)cocos2dx\\platform\\third_party\\win32';  
            strAddIncludeDir += ';$(Cocos2dx)cocos2dx\\platform\\third_party\\win32\\OGLES';  
              
            if (wizard.FindSymbol('CC_USE_BOX2D')) {  
                strAddIncludeDir += ';$(Cocos2dx)external';  
            }  
            if (wizard.FindSymbol('CC_USE_CHIPMUNK')) {  
                strAddIncludeDir += ';$(Cocos2dx)external\\chipmunk\\include\\chipmunk';  
            }  
            if (wizard.FindSymbol('CC_USE_COCOS_DENSHION_SIMPLE_AUDIO_ENGINE')) {  
                strAddIncludeDir += ';$(Cocos2dx)CocosDenshion\\include';  
            }  
            if (wizard.FindSymbol('CC_USE_LUA')) {  
                strAddIncludeDir += ';$(Cocos2dx)scripting\\lua\\cocos2dx_support';  
                strAddIncludeDir += ';$(Cocos2dx)scripting\\lua\\tolua';  
                strAddIncludeDir += ';$(Cocos2dx)scripting\\lua\\lua';  
            }  
            CLTool.AdditionalIncludeDirectories = strAddIncludeDir;  
  
            CLTool.UsePrecompiledHeader = pchNone;  // pchUseUsingSpecific;  
            CLTool.WarningLevel = warningLevel_3;  
            if (bDebug) {  
                CLTool.RuntimeLibrary = rtMultiThreadedDebugDLL;  
                CLTool.MinimalRebuild = true;  
                CLTool.DebugInformationFormat = debugEditAndContinue;  
                CLTool.BasicRuntimeChecks = runtimeBasicCheckAll;  
                CLTool.Optimization = optimizeDisabled;  
            }  
            else {  
                CLTool.RuntimeLibrary = rtMultiThreadedDLL;  
                CLTool.ExceptionHandling = false;  
                CLTool.DebugInformationFormat = debugDisabled;  
            }  
  
            var strDefines = GetPlatformDefine(config);  
            strDefines += "_WINDOWS;STRICT;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS";  
            if (bDebug)  
                strDefines += "_DEBUG;COCOS2D_DEBUG=1;";  
            else  
                strDefines += "NDEBUG";  
            CLTool.PreprocessorDefinitions = strDefines;  
  
            // Disable special warning  
            CLTool.DisableSpecificWarnings = "4267;4251;4244";  
  
            // Linker settings  
            var LinkTool = config.Tools('VCLinkerTool');  
            LinkTool.SubSystem = subSystemWindows;  
            LinkTool.TargetMachine = machineX86;  
            if (bDebug) {  
                LinkTool.LinkIncremental = linkIncrementalYes;  
                LinkTool.GenerateDebugInformation = true;  
            }  
            else {  
                LinkTool.LinkIncremental = linkIncrementalNo;  
            }  
  
            // Additional Library Directories  
            var strAddDepends = 'libcocos2d.lib libExtensions.lib opengl32.lib glew32.lib';  
            if (wizard.FindSymbol('CC_USE_BOX2D')) {  
                strAddDepends += ' libBox2d.lib';  
            }  
            if (wizard.FindSymbol('CC_USE_CHIPMUNK')) {  
                strAddDepends += ' libchipmunk.lib';  
            }  
            if (wizard.FindSymbol('CC_USE_COCOS_DENSHION_SIMPLE_AUDIO_ENGINE')) {  
                strAddDepends += ' libCocosDenshion.lib';  
            }  
            if (wizard.FindSymbol('CC_USE_LUA')) {  
                strAddDepends += ' liblua.lib';  
            }  
  
            if (bDebug) {  
                LinkTool.AdditionalLibraryDirectories = '$(Cocos2dx)Debug.win32\\';  
            }  
            else {  
                LinkTool.AdditionalLibraryDirectories = '$(Cocos2dx)Release.win32\\';  
            }  
  
            LinkTool.AdditionalDependencies = strAddDepends;  
  
            // Resource settings  
            var RCTool = config.Tools("VCResourceCompilerTool");  
            RCTool.Culture = rcEnglishUS;  
            RCTool.AdditionalIncludeDirectories = "$(IntDir)";  
            if (bDebug)  
                RCTool.PreprocessorDefinitions = "_DEBUG";  
            else  
                RCTool.PreprocessorDefinitions = "NDEBUG";  
  
            // MIDL settings  
            var MidlTool = config.Tools("VCMidlTool");  
            MidlTool.MkTypLibCompatible = false;  
            if (IsPlatformWin32(config))  
                MidlTool.TargetEnvironment = midlTargetWin32;  
            if (bDebug)  
                MidlTool.PreprocessorDefinitions = "_DEBUG";  
            else  
                MidlTool.PreprocessorDefinitions = "NDEBUG";  
            MidlTool.HeaderFileName = strProjectName + ".h";  
            MidlTool.InterfaceIdentifierFileName = strProjectName + "_i.c";  
            MidlTool.ProxyFileName = strProjectName + "_p.c";  
            MidlTool.GenerateStublessProxies = true;  
            MidlTool.TypeLibraryName = "$(IntDir)/" + strProjectName + ".tlb";  
            MidlTool.DLLDataFileName = "";  
  
            // Post-build settings  
//            var PostBuildTool = config.Tools("VCPostBuildEventTool");  
//            PostBuildTool.Description = "Performing copy resource from Resource to OutDir...";  
//            PostBuildTool.CommandLine = "xcopy /E /Q /Y \"$(ProjectDir)Resource\\*.*\" \"$(OutDir)\"";  
        }  
    }  
    catch (e) {  
        throw e;  
    }  
}  
  
function AddPchSettings(proj) {  
    try {  
        //         var files = proj.Object.Files;  
        //         var fStdafx = files("StdAfx.cpp");  
        //   
        //         var nCntr;  
        //         for(nCntr = 0; nCntr < nNumConfigs; nCntr++)  
        //         {  
        //             var config = fStdafx.FileConfigurations(astrConfigName[nCntr]);  
        //             config.Tool.UsePrecompiledHeader = pchCreateUsingSpecific;  
        //         }  
    }  
    catch (e) {  
        throw e;  
    }  
}  
  
function DelFile(fso, strWizTempFile) {  
    try {  
        if (fso.FileExists(strWizTempFile)) {  
            var tmpFile = fso.GetFile(strWizTempFile);  
            tmpFile.Delete();  
        }  
    }  
    catch (e) {  
        throw e;  
    }  
}  
  
function CreateCustomInfFile() {  
    try {  
        var fso, TemplatesFolder, TemplateFiles, strTemplate;  
        fso = new ActiveXObject('Scripting.FileSystemObject');  
  
        var TemporaryFolder = 2;  
        var tfolder = fso.GetSpecialFolder(TemporaryFolder);  
  
        var strWizTempFile = tfolder.Path + "\\" + fso.GetTempName();  
  
        var strTemplatePath = wizard.FindSymbol('TEMPLATES_PATH');  
        var strInfFile = strTemplatePath + '\\Templates.inf';  
        wizard.RenderTemplate(strInfFile, strWizTempFile);  
  
        var WizTempFile = fso.GetFile(strWizTempFile);  
  
        return WizTempFile;  
    }  
    catch (e) {  
        throw e;  
    }  
}  
  
function GetTargetName(strName, strProjectName) {  
    try {  
        var strTarget = strName;  
  
        var nIndex = strName.indexOf("root");  
  
        if (nIndex >= 0) {  
            strTarget = strName.substring(0, nIndex) + strProjectName + strName.substring(nIndex + 4, strName.length);  
        }  
  
        var strTemp = "../../../../../scripting/lua";  
        nIndex = strTarget.indexOf(strTemp);  
        if (nIndex >= 0) {  
            strTarget = "Classes" + strTarget.substring(nIndex + strTemp.length, strTarget.length);  
        }  
  
        return strTarget;  
    }  
    catch (e) {  
        throw e;  
    }  
}  
  
function AddFilesToCustomProj(proj, strProjectName, strProjectPath, InfFile) {  
    try {  
        var strTemplatePath = wizard.FindSymbol('TEMPLATES_PATH');  
  
        var strTpl = '';  
        var strName = '';  
  
        var strTextStream = InfFile.OpenAsTextStream(1, -2);  
        while (!strTextStream.AtEndOfStream) {  
            strTpl = strTextStream.ReadLine();  
            if (strTpl != '') {  
                strName = strTpl;  
                var strTarget = GetTargetName(strName, strProjectName);  
                var strTemplate = strTemplatePath + '\\' + strTpl;  
                var strFile = strProjectPath + '\\' + strTarget;  
  
                var bCopyOnly = true;  //"true" will only copy the file from strTemplate to strTarget without rendering/adding to the project  
                var strExt = strName.substr(strName.lastIndexOf("."));  
                if (strExt == ".h" || strExt == ".cpp" || strExt == ".c" || strExt == ".rc")  
                    bCopyOnly = false;  
                wizard.RenderTemplate(strTemplate, strFile, bCopyOnly);  
  
                // don't add these files to the project  
                if (strTarget == strProjectName + ".h" ||  
                   strTarget == strProjectName + "ps.mk" ||  
                   strTarget == strProjectName + "ps.def")  
                    continue;  
  
                proj.Object.AddFile(strFile);  
            }  
        }  
        strTextStream.Close();  
    }  
    catch (e) {  
        throw e;  
    }  
}  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
3D ToolKit for cocos2dx 是一个简单的cocos2d-x 3D扩展,可以方便地在cocos2dx环境中创建3D图形。 基于cocos2d-x 2.2开发。 已实现功能: 1,向量和矩阵运算。 2,扩展的3D相机。(支持 透视投影 和 正交投影) 3,3D Sprite。(支持空间变换,更换mesh,更换shader) 4,扩展的shader program和uniform回调。 实现原理:http://www.cocoachina.com/bbs/read.php?tid=181942 目前iOS和Win32工程可用。 注意:如果你按下面方法成功编译了Demo工程,但是运行的时候崩溃,可能是由于cocos2d-x 2.2的一个bug造成的,解决办法看这里:https://github.com/wantnon2/3DToolKit-for-cocos2dx/issues/1 编译运行Demo工程: 一,iOS (IDE: Xcode): 1,下载一个cocos2d-x 2.2(如果没有的话)。 2,在cocos2d-x-2.2目录下新建一个文件夹myProject,再在myProject下建一个文件夹3DToolKitDemo。 3,git下来的HelloCpp文件夹放到3DToolKitDemo文件夹中。 4,编译运行HelloCpp中的ios工程。 二,Win32 (IDE: vs2010): 1,下载一个cocos2d-x 2.2(如果没有的话)。 2,在cocos2d-x-2.2目录下新建一个文件夹myProject,再在myProject下建一个文件夹3DToolKitDemo。 3,git下来的HelloCpp文件夹放到3DToolKitDemo文件夹中。 4,打开cocos2d-x-2.2下的cocos2d-win32.vc2010.sln。 5,将demo的win32工程添加到解决方案中,并设为启动项。 6,编译运行。 注意:如果遇到"无法打开xxx.lib"错误,可以在解决方案管理器中选择TestCpp工程,将其设为启动项并编译。编译成功后重新将demo工程设为启动项再运行。 在自己的cocos2dx项目中使用ToolKit: 一,iOS (IDE: Xcode): 1,将c3dToolKit文件夹添加到项目中。 2,将c3dDefaultResource文件夹拷贝到Resources目录下,并将c3dDefaultResource以“蓝色文件夹”的形式添加到项目中。 3,在需要使用的地方包含头文件"c3dToolKit.h"。 二,win32 (IDE: vs2010): 1,在工程的 属性->C ->附加包含目录中 中配置c3dToolKit文件夹路径。 2,将c3dDefaultResource文件夹拷贝到Resources目录下。 3,在需要使用的地方包含头文件"c3dToolKit.h"。 代码:https://github.com/wantnon2/3DToolKit-for-cocos2dx

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值