AKever

导航

Cocos2dx(1) 环境&helloworld

1.配置win7,vs2010,cocos2dx2.1.3(http://www.cocos2d-x.org/);

2.将cocos2dx引擎包解压在自己自定义文件夹下,运行引擎包中的“install-templates-msvc.bat”文件,将cocos2dx引入vs;

3.打开引擎包中的“cocos2d-win32.vc2010.sln”解决方案文件,进入到vs;

4.第一次进入,将项目“生成解决方案”(编译,时间有点久);

5.运行自带的helloworld和例子,设置启动项(project-cpp下的HelloCpp,TestCpp),Debug;

6.生成解决方案结束,可直接在解决方案中新建项目,项目路径与引擎包自带的HelloWorld项目同一路径

外:如需在任意目录下新建cocos2dx项目

  (1)修改cocos2x目录下的\template\msvc\CCAppWiz.win32\Scripts\1033\default.js

   将文件中”$(SolutionDir)“替换成你当前机器上cocos2dx的安装路径,如(D:\Cocos\cocos2d-2.1rc0-x-2.1.3)

   替换时,注意书写替换路劲,如(“D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\”)

  (1)修改完后保存,重新运行引擎包中的“install-templates-msvc.bat”文件,重新打开vs,随处新建项目

  附:(1)中修改主要是在default.js的function AddConfigurations(proj, strProjectName);方法中,修改后如下

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 = 'D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\$(Configuration).win32\\'
                config.IntermediateDirectory = '$(Configuration).win32\\';
            } else {
                config.OutputDirectory = 'D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\$(ConfigurationName).win32'
                config.IntermediateDirectory = '$(ConfigurationName).win32';
            }

            // Compiler settings
            var CLTool = config.Tools('VCCLCompilerTool');

            // Additional Inlcude Directories
            var strAddIncludeDir = '.;..\\Classes';
            strAddIncludeDir += ';D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\cocos2dx';
            strAddIncludeDir += ';D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\cocos2dx\\include';
            strAddIncludeDir += ';D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\cocos2dx\\kazmath\\include';
            strAddIncludeDir += ';D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\cocos2dx\\platform\\win32';
            strAddIncludeDir += ';D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\cocos2dx\\platform\\third_party\\win32';
            strAddIncludeDir += ';D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\cocos2dx\\platform\\third_party\\win32\\OGLES';
            
            if (wizard.FindSymbol('CC_USE_BOX2D')) {
                strAddIncludeDir += ';D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\external';
            }
            if (wizard.FindSymbol('CC_USE_CHIPMUNK')) {
                strAddIncludeDir += ';D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\external\\chipmunk\\include\\chipmunk';
            }
            if (wizard.FindSymbol('CC_USE_COCOS_DENSHION_SIMPLE_AUDIO_ENGINE')) {
                strAddIncludeDir += ';D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\CocosDenshion\\include';
            }
            if (wizard.FindSymbol('CC_USE_LUA')) {
                strAddIncludeDir += ';D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\scripting\\lua\\cocos2dx_support';
                strAddIncludeDir += ';D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\scripting\\lua\\tolua';
                strAddIncludeDir += ';D:\\Cocos\\cocos2d-2.1rc0-x-2.1.3\\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 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';
            }
            LinkTool.AdditionalLibraryDirectories = '$(OutDir)';
            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;
    }
}

  Reference:http://blog.csdn.net/rabbitlbj/article/details/8218076

posted on 2013-11-08 09:31  AKever  阅读(453)  评论(0)    收藏  举报