Blame view

ios/cocos2d/tools/particle/convert_YCoordFlipped.py 2.17 KB
520389e3   xiaoyu   接入cocos源码,编译未通过,继续修改
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
  #!/usr/bin/python
  #ConvertYCoordFlipped.py
  
  import plistlib
  import os.path
  import argparse
  import glob
  import shutil
  
  #keys in dictionary
  metaDataKey = 'metaData'
  yCoordFlippedConvertedKey = 'yCoordFlippedConverted'
  yCoordFlippedKey = 'yCoordFlipped'
  
  #check if the particle file has been converted
  def checkFlippedConvertFlag(plistDict):
      if(not plistDict.has_key(metaDataKey)):
          return False
      else:
          metaDict = plistDict.get(metaDataKey)
          if(not metaDict.has_key(yCoordFlippedConvertedKey)):
              return False
          else:
              return metaDict.get(yCoordFlippedConvertedKey) is 1
  
  #write flag to indicate to file has been converted
  def writeFlippedConvertFlag(plistDict):
      metaDict = dict()
      metaDict.update(yCoordFlippedConverted = 1)
      plistDict.update(metaData = metaDict)
  
  #process file
  def processConvertFile(filename):
      #print a line to separate files
      print ('')
      if(not os.path.isfile(filename)):
          print(filename + ' dose not exist!')
          return
      print('Begin process particle file: ' + filename)
      fp = open(filename, 'r')
      pl = plistlib.readPlist(fp) 
  
      if (not pl.has_key(yCoordFlippedKey)):
          print('Skip plist file: ' + filename + ' for there is no key for yCoordFlipped,')
      else:
          if(not checkFlippedConvertFlag(pl)):
              backupFileName = filename+'.backup'
              print('Write backup file to ' + backupFileName)
              shutil.copyfile(filename,backupFileName)
              print('converting...')
              pl[yCoordFlippedKey] = -pl[yCoordFlippedKey]
              writeFlippedConvertFlag(pl)
              print('converted...')
              print('Write new plist file to ' + filename)
              plistlib.writePlist(pl,filename)
          else:
              print('Skip a converted file ' + filename)
  
  # -------------- entrance --------------
  if __name__ == '__main__':
      argparser = argparse.ArgumentParser()
      argparser.add_argument("file", nargs = "+",help = "specify a file or a patten")
      #argparser.add_argument("-r", "--recursive",action = "store_true", help = "recursive folder or not")
      args = argparser.parse_args()
  
      for file in args.file:
          processConvertFile(file)