#! /usr/local/bin/python import os import sys #BASIC SCRIPT PRESETS width = 320 # Width of your game in 'true' pixels (ignoring zoom) height = 240 # Height of your game in 'true' pixels zoom = 2 # How chunky you want your pixels src = 'src/' # Name of the source folder under the project folder (if there is one!) preloader = 'Preloader' # Name of the preloader class flexBuilder = True # Whether or not to generate a Default.css file menuState = 'MenuState' # Name of menu state class playState = 'PlayState' # Name of play state class #Get name of project if len(sys.argv) <= 1: sys.exit(0) project = sys.argv[1] #Generate basic game class filename = project+'/'+src+project+'.as'; try: fo = open(filename, 'w') except IOError: print('Can\'t open '+filename+' for writing.') sys.exit(0) lines = [] lines.append('package\r\n') lines.append('{\r\n') lines.append('\timport org.flixel.*;\r\n') lines.append('\t[SWF(width="'+str(width*zoom)+'", height="'+str(height*zoom)+'", backgroundColor="#000000")]\r\n') lines.append('\t[Frame(factoryClass="Preloader")]\r\n') lines.append('\r\n') lines.append('\tpublic class '+project+' extends FlxGame\r\n') lines.append('\t{\r\n') lines.append('\t\tpublic function '+project+'()\r\n') lines.append('\t\t{\r\n') lines.append('\t\t\tsuper('+str(width)+','+str(height)+','+menuState+','+str(zoom)+');\r\n') lines.append('\t\t}\r\n') lines.append('\t}\r\n') lines.append('}\r\n') fo.writelines(lines) fo.close() #Generate preloader filename = project+'/'+src+preloader+'.as'; try: fo = open(filename, 'w') except IOError: print('Can\'t open '+filename+' for writing.') sys.exit(0) lines = [] lines.append('package\r\n') lines.append('{\r\n') lines.append('\timport org.flixel.system.FlxPreloader;\r\n') lines.append('\r\n') lines.append('\tpublic class '+preloader+' extends FlxPreloader\r\n') lines.append('\t{\r\n') lines.append('\t\tpublic function '+preloader+'()\r\n') lines.append('\t\t{\r\n') lines.append('\t\t\tclassName = "'+project+'";\r\n') lines.append('\t\t\tsuper();\r\n') lines.append('\t\t}\r\n') lines.append('\t}\r\n') lines.append('}\r\n') fo.writelines(lines) fo.close() #Generate Default.css if flexBuilder: filename = project+'/'+src+'Default.css'; try: fo = open(filename, 'w') except IOError: print('Can\'t open '+filename+' for writing.') sys.exit(0) fo.write('Add this: "-defaults-css-url Default.css"\nto the project\'s additonal compiler arguments.') fo.close() #Generate game menu filename = project+'/'+src+menuState+'.as'; try: fo = open(filename, 'w') except IOError: print('Can\'t open '+filename+' for writing.') sys.exit(0) lines = [] lines.append('package\r\n') lines.append('{\r\n') lines.append('\timport org.flixel.*;\r\n') lines.append('\r\n') lines.append('\tpublic class '+menuState+' extends FlxState\r\n') lines.append('\t{\r\n') lines.append('\t\toverride public function create():void\r\n') lines.append('\t\t{\r\n') lines.append('\t\t\tvar t:FlxText;\r\n') lines.append('\t\t\tt = new FlxText(0,FlxG.height/2-10,FlxG.width,"'+project+'");\r\n') lines.append('\t\t\tt.size = 16;\r\n') lines.append('\t\t\tt.alignment = "center";\r\n') lines.append('\t\t\tadd(t);\r\n') lines.append('\t\t\tt = new FlxText(FlxG.width/2-50,FlxG.height-20,100,"click to play");\r\n') lines.append('\t\t\tt.alignment = "center";\r\n') lines.append('\t\t\tadd(t);\r\n') lines.append('\t\t\t\r\n') lines.append('\t\t\tFlxG.mouse.show();\r\n') lines.append('\t\t}\r\n') lines.append('\r\n') lines.append('\t\toverride public function update():void\r\n') lines.append('\t\t{\r\n') lines.append('\t\t\tsuper.update();\r\n') lines.append('\r\n') lines.append('\t\t\tif(FlxG.mouse.justPressed())\r\n') lines.append('\t\t\t{\r\n') lines.append('\t\t\t\tFlxG.mouse.hide();\r\n') lines.append('\t\t\t\tFlxG.switchState(new PlayState());\r\n') lines.append('\t\t\t}\r\n') lines.append('\t\t}\r\n') lines.append('\t}\r\n') lines.append('}\r\n') fo.writelines(lines) fo.close() #Generate basic game state filename = project+'/'+src+playState+'.as'; try: fo = open(filename, 'w') except IOError: print('Can\'t open '+filename+' for writing.') sys.exit(0) lines = [] lines.append('package\r\n') lines.append('{\r\n') lines.append('\timport org.flixel.*;\r\n') lines.append('\r\n') lines.append('\tpublic class '+playState+' extends FlxState\r\n') lines.append('\t{\r\n') lines.append('\t\toverride public function create():void\r\n') lines.append('\t\t{\r\n') lines.append('\t\t\tadd(new FlxText(0,0,100,"INSERT GAME HERE"));\r\n') lines.append('\t\t}\r\n') lines.append('\t}\r\n') lines.append('}\r\n') fo.writelines(lines) fo.close() print('Successfully generated game class, preloader, menu state, and play state.')