gen_xml_resources.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. """
  2. typical usage example
  3. your project structure
  4. game\
  5. data\
  6. images\*.png
  7. xmls
  8. gen_xml_resources.py
  9. go to game folder and run:
  10. gen_xml_resources.py -d data -i images -o xmls/out.xml
  11. """
  12. import os
  13. import shutil
  14. import glob
  15. def gen_xml(args):
  16. wildcard = "*.*"
  17. path = args.data + "/" + args.images
  18. filelist = glob.glob(path + "/" + args.wildcard)
  19. print filelist
  20. print path
  21. dest = open(args.data + "/" + args.out, "w")
  22. write = dest.write
  23. write("<resources>\n")
  24. write("\t<set path=\"%s\"/>\n" % (args.images, ))
  25. if args.sfactor != 1:
  26. write("\t<set scale_factor=\"%s\"/>\n" % (args.sfactor, ))
  27. if not args.load:
  28. write("\t<set load=\"false\"/>\n")
  29. if not args.atlasses:
  30. write("\t<atlas>\n")
  31. for file in filelist:
  32. name = os.path.split(file)[1]
  33. if args.atlasses:
  34. write("\t<atlas>\n\t")
  35. write("\t\t<image file='%s'/>\n" % (name))
  36. if args.atlasses:
  37. write("\t</atlas>\n")
  38. if not args.atlasses:
  39. write("\t</atlas>\n")
  40. write("</resources>\n")
  41. dest.close()
  42. if __name__ == "__main__":
  43. import argparse
  44. parser = argparse.ArgumentParser(description = "generates xml file with image resources")
  45. parser.add_argument("-d", "--data", help = "root data folder", default = ".", required = True)
  46. parser.add_argument("-s", "--sfactor", help = "scale factor", default = 1)
  47. parser.add_argument("-i", "--images", help = "folder with images. path relative to --data", default = ".")
  48. parser.add_argument("-o", "--out", help = "output xml file name", default = "out.xml")
  49. parser.add_argument("-w", "--wildcard", help = "default is '*.png'", default = "*.png")
  50. parser.add_argument("-l", "--load", help = "preload files?", action="store_true", default = True)
  51. parser.add_argument("-a", "--atlasses", help = "separate atlasses for each file?", action="store_true", default = False)
  52. args = parser.parse_args()
  53. gen_xml(args)