为cocos2dx-3.x以上版本工程指定统一通用的引擎路径

<1>本人也是根据网友提供的一些资料进行测试及总结,新建工程后,务必运行一遍新项目,拷贝VS_Setting.py到项目proj.win32路径下,用编辑器打开VS_Setting.py文件,修改文件中以下变量,根据个人指定引擎的目录进行修改。修改完成后保存关闭文件,双击运行一遍VS_Setting.py,点击VS,出现以下第一个弹框,选“重新加载”,删除新建工程下的cocos引擎,重新生成该项目即可。(3.0rc0、3.2版本的安装引擎和项目自带引擎的目录结构不同,请务必复制一份项目自带引擎作为所有项目通用的引擎进行引用,且目录确定后不能进行变动,3.2以上引擎可以直接将cocos安装引擎作为通用引擎)

 为cocos2dx-3.x以上版本工程指定统一通用的引擎路径

为cocos2dx-3.x以上版本工程指定统一通用的引擎路径

 

 

 

 

 

<2>注:除三个基本的外部工程外,如需要引用哪个新的外部工程就去cocos安装引擎下的debug中找到该外部工程的lib、dll文件,复制到项目下的pro.win32>>Debug.win32下,然后,项目>>属性>>链接器>>输入>>附加依赖项,加入该lib库的名字即可。

 为cocos2dx-3.x以上版本工程指定统一通用的引擎路径为cocos2dx-3.x以上版本工程指定统一通用的引擎路径



 

 

 

 

 

 

<3>项目移植android时,首先记得复制以下路径的这两个包放置于android工程的src,鼠标拖进去即可,将jni文件夹下的Android.mk文件中的路径改为指定引擎的绝对路径,勾选项目>>属性>>Builders>>CDT Builder,运行。

 

 

为cocos2dx-3.x以上版本工程指定统一通用的引擎路径

为cocos2dx-3.x以上版本工程指定统一通用的引擎路径

 

更改为:

为cocos2dx-3.x以上版本工程指定统一通用的引擎路径为cocos2dx-3.x以上版本工程指定统一通用的引擎路径



 

 

 

 

 

<4>项目移植IOS时,在win32下,首先复制

IOS_Setting.py到项目的proj.ios_mac\项目名.xcodeproj\ 该路径下,双击运行即可,在Mac机对应版本引擎的projects目录记得放入一份创建项目时自带的引擎,该引擎位置指定为此目录,不能改变。

 为cocos2dx-3.x以上版本工程指定统一通用的引擎路径

为cocos2dx-3.x以上版本工程指定统一通用的引擎路径

 

 

 

<5>下面贴出VS_Setting.py文件的代码


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

'''你需要自己把以cocos2dx1变量的值改为你自己实际的路径'''
cocos2dx1 = "D:\\cocos2d-x-3.6\\projects\\cocos2d"


cocos2dx2 = cocos2dx1+"\\cocos\\2d"
cocos2dx4 = "$(_COCOS_HEADER_WIN32_END);"
cocos2dx5 = cocos2dx1+"\\cocos\\editor-support;"
cocos2dx6 = cocos2dx1+"\\cocos;"
cocos2dx7 = cocos2dx1+"\\cocos\\platform;"
cocos2dx8 = cocos2dx1+"\\cocos\\platform\\desktop;"
cocos2dx9 = cocos2dx1+"\\external\\glfw3\\include\\win32;"
cocos2dx10 = cocos2dx1+"\\external\\win32-specific\\gles\\include\\OGLES;"
cocos2dx11 = cocos2dx1+"\\external\\freetype2\\include\\win32\\freetype2;"
cocos2dx12 = cocos2dx1+"\\external\\freetype2\\include\\win32\\"
cocos2dx13 ="$(_COCOS_LIB_WIN32_END);libcocos2d.lib"


PropsFile = ["cocos2d_headers.props", "cocos2dx.props"]

 


'''检查引擎版本'''
def correctbase():
 global cocos2dx1
 if os.path.isdir(cocos2dx1) == False:  
  print("correctbase() is error ")
  return False
 if cocos2dx1[len(cocos2dx1)-2] != os.sep: 
  cocos2dx1 += os.sep
 file = ["cocos", "external"]
 for name in file:
  if os.path.isdir(cocos2dx1 + name) == False:
   print("correctbase() is error ")
   return False
 return cocos2dx1

 

 

'''将项目的C\C++属性中的附加包含目录的EngineRoot,改变为引擎目录'''
def change():
 cocos2dx1 = correctbase()
 if cocos2dx1 == False:
  print("change() is error ")
  return
 rename1="..\\proj.win32\\cocos2dx.props"
 rename2="..\\proj.win32\\cocos2d_headers.props"
 print rename1
 print rename2

 #更改“项目名.vcxproj”文件
 filelist1 = os.listdir(os.curdir) 
 for name in filelist1:    
  if os.path.splitext(name)[1] != ".vcxproj": 
   continue

  #修改1
  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, "Import") != -1:
     line1 = oneline.replace("..\\cocos2d\\cocos\\2d\\cocos2dx.props",rename1)
     file.write(line1)
    else:
     file.write(oneline)
   file.close()
  except IOError as e:
   print(e)

  #修改2
  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, "Import") != -1:
     line2 = oneline.replace("..\\cocos2d\\cocos\\2d\\cocos2d_headers.props",rename2)
     file.write(line2)
    else:
     file.write(oneline)
   file.close()
  except IOError as e:
   print(e)

  #修改3
  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, "") != -1:
     line3 = oneline.replace("$(EngineRoot)",cocos2dx1)
     file.write(line3)
    else:
     file.write(oneline)
   file.close()
  except IOError as e:
   print(e)


  #修改4
  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, "") != -1:
     line4 = oneline.replace("$(_COCOS_LIB_WIN32_END)",cocos2dx13)
     file.write(line4)
    else:
     file.write(oneline)
   file.close()
  except IOError as e:
   print(e)

  #修改5
  xx= cocos2dx4+cocos2dx5+cocos2dx6+cocos2dx7+cocos2dx8+cocos2dx9+cocos2dx10+cocos2dx11
  print xx
  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, "") != -1:
     line5 = oneline.replace("$(_COCOS_HEADER_WIN32_END)",cocos2dx4+cocos2dx5+cocos2dx6+cocos2dx7+cocos2dx8+cocos2dx9+cocos2dx10+cocos2dx11+cocos2dx12)
     file.write(line5)
    else:
     file.write(oneline)
   file.close()
  except IOError as e:
   print(e)

 


'''添加cocos2d_headers.props、cocos2d.props文件到proj.win32目录'''
def copyProps():
 global cocos2dx2
 global PropsFile
 if os.path.isdir(cocos2dx2) == False:
  print("copyProps() is error ")
  return
 if cocos2dx2[len(cocos2dx2) - 2] != os.sep:
  cocos2dx2 += os.sep
  
 for name in PropsFile:
  filepath = cocos2dx2 + name
  if os.path.exists(filepath) == True:
   if os.path.splitext(filepath)[1] == ".props":
    shutil.copy(filepath, os.getcwd())  
   else:
    print("copyProps() is error ")

 

if __name__ == "__main__":
 change()
 copyProps()

 

 

 


 

<6>下面贴出IOS_Setting.py文件的代码

 

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

'''IOS的引擎路径默认是项目外的位置,也就是cocos安装引擎的projects文件夹下'''


'''将项目的C\C++属性中的附加包含目录的EngineRoot,改变为引擎目录'''
def change():
 #更改“项目名.pbxproj文件
 filelist1 = os.listdir(os.curdir) 
 for name in filelist1:    
  if os.path.splitext(name)[1] != ".pbxproj": 
   continue

  #修改1
  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, "$(SRCROOT)") != -1:
     line1 = oneline.replace("$(SRCROOT)/../cocos2d","$(SRCROOT)/../../cocos2d")
     file.write(line1)
     print line1
    else:
     file.write(oneline)
   file.close()
  except IOError as e:
   print(e)


if __name__ == "__main__":
 change()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值