VS2010一键配置cocos2d-x开发,帅呆了

5 篇文章 0 订阅
3 篇文章 0 订阅

用VS2010开发cocos2d-x时,是不是很麻烦???在网上看了很多方法,没一个我喜欢的,都忒麻烦了,受不了, 自己写了一个脚本,每次建立一个新项目时,只要运行一下就行了。我们来看看代码

# -*- coding: utf-8 -*-
import os
import shutil

''' 你需要自己把以下三个变量的值改为你自己实际的路径,libdll根据自己需要添加 '''
cocos2dx = "D:\ProgramTool\coco\cocos2d-2.1beta3-x-2.1.1"
cocoslibdll = "D:\ProgramTool\coco\cocos2d-2.1beta3-x-2.1.1\Debug.win32"
libdll = ["libcocos2d.lib", "libCocosDenshion.lib", "glew32.lib", "libBox2D.lib", 
          "libcocos2d.dll", "libCocosDenshion.dll", "glew32.dll", "libxml2.dll", "iconv.dll", "zlib1.dll", "libtiff.dll", "pthreadVCE2.dll"]

def correctbase():
    global cocos2dx
    if os.path.isdir(cocos2dx) == False:
        return False
    if cocos2dx[len(cocos2dx)-2] != os.sep:
        cocos2dx += os.sep
    file = ["cocos2dx", "CocosDenshion", "external"]
    for name in file:
        if os.path.isdir(cocos2dx + name) == False:
            return False
    return cocos2dx

def change():
    cocos2dx = correctbase()
    if cocos2dx == False:
        print("base dir \'cocos2dx\' is error ")
        return
    
    filelist = os.listdir(os.curdir)
    for name in filelist:
        if os.path.splitext(name)[1] != ".vcxproj":
            continue
        try:
            file = open(os.curdir + os.sep +name, "r+", encoding = 'utf-8')
            lines = file.readlines()
            file.seek(0, os.SEEK_SET)
            file.truncate(0)
            for oneline in lines:
                if str.find(oneline, "<AdditionalIncludeDirectories>") != -1:
                    line = oneline.replace("$(SolutionDir)", cocos2dx)
                    file.write(line)
                else:
                    file.write(oneline)
            file.close()
        except IOError as e:
            print(e)

def copylibdll():
    global cocoslibdll
    global libdll
    if os.path.isdir(cocoslibdll) == False:
        print("dir \'cocoslibdll\' is error ")
        return
    if cocoslibdll[len(cocoslibdll) - 2] != os.sep:
        cocoslibdll += os.sep

    if os.path.isdir("..\\..\\Debug.win32") == False:
        os.mkdir("..\\..\\Debug.win32")
    if os.path.isdir("..\\..\\Release.win32") == False:
        os.mkdir("..\\..\\Release.win32")
        
    for name in libdll:
        filepath = cocoslibdll + name
        if os.path.exists(filepath) == True:
            if os.path.splitext(filepath)[1] == ".lib":
                shutil.copy(filepath, os.getcwd())
            else:
                shutil.copy(filepath, "..\\..\\Debug.win32")
                shutil.copy(filepath, "..\\..\\Release.win32")

def copypicture():
    if os.path.isdir("..\\..\\Debug.win32") == False:
        os.mkdir("..\\..\\Debug.win32")
    if os.path.isdir("..\\..\\Release.win32") == False:
        os.mkdir("..\\..\\Release.win32")
    resourcedir = "..\\Resources\\"
    filename = ["CloseNormal.png", "CloseSelected.png", "HelloWorld.png"]
    for name in filename:
        filepath = resourcedir + name
        if os.path.exists(filepath) == True:
                shutil.copy(filepath, "..\\..\\Debug.win32")
                shutil.copy(filepath, "..\\..\\Release.win32")

def changeusersetting():
    filelist = os.listdir(os.curdir)
    for name in filelist:
        if os.path.splitext(name)[1] != ".user":
            continue
        try:
            file = open(os.curdir + os.sep +name, "r+")
            lines = file.readlines()
            file.seek(0, os.SEEK_SET)
            file.truncate(0)
            for oneline in lines:
                if str.find(oneline, "$(ProjectDir)..\\Resources") != -1 and str.find(oneline, "Debug|Win32") != -1:
                    line = oneline.replace("$(ProjectDir)..\\Resources", "..\..\Debug.win32")
                    file.write(line)
                elif str.find(oneline, "$(ProjectDir)..\\Resources") != -1 and str.find(oneline, "Release|Win32") != -1:
                    line = oneline.replace("$(ProjectDir)..\\Resources", "..\..\Release.win32")
                    file.write(line)
                else:
                    file.write(oneline)
            file.close()
        except IOError as e:
            print(e)
            
if __name__ == "__main__":
    change()
    copylibdll()
    copypicture()
    changeusersetting()


现在,我们来看看这里面都做了什么事,首先,我会把工程的附加包含目录中使用到的$(SolutionDir)改为cocos2d-x所在的目录,如下图:


接着,我又把所有lib拷贝到当前文件夹,把所有dll拷贝到Debug.win32和Release.win32

然后呢,我又会把cocos2d-x自己生成的CloseNormal.png,CloseSelected.png,HelloWorld.png也拷贝到Debug.win32和Release.win32

最后,我把工作目录也改到相应的Debug.win32和Release.win32,这样就可以直接调试了

就这么简单,一个脚本搞定,网上那些拷贝来拷贝去的做法忒麻烦了,有些博文甚至还说要拷贝到系统文件夹下。。。。


要把这个脚本复制到项目工作目录下哦,就是拷贝到xxxxx.win32.vcxproj文件所在目录,vs2012我没安装,没测试过,用vs2012的朋友,自己测试一下哦

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值