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
浙公网安备 33010602011771号