示例#1
0
def main():
	t1 = TextField()
	t1.x = t1.y = 50
	t1.size = 30
	t1.text = "Hello World!"
	addChild(t1)

	t2 = TextField()
	t2.x = 50
	t2.y = 150
	t2.text = "Hello Pylash~"
	t2.rotation = 30
	t2.size = 50
	t2.textColor = "#FF4500"
	t2.weight = TextFormatWeight.BOLD
	addChild(t2)

	t3 = TextField()
	t3.x = 300
	t3.y = 130
	t3.text = "Based on Python3, PyQt4"
	t3.alpha = 0.7
	t3.size = 40
	t3.textColor = "#0000FF"
	t3.italic = True
	addChild(t3)
示例#2
0
def gameOver(e):
	global player, scoreTxt, stageLayer, keyboardEnabled

	keyboardEnabled = False

	stageLayer.removeAllEventListeners()

	scoreTxt.remove()
	player.animation.stop()

	resultTxt = TextField()
	resultTxt.text = "Final Score: %s" % score
	resultTxt.size = 40
	resultTxt.weight = TextFormatWeight.BOLD
	resultTxt.textColor = "orangered"
	resultTxt.x = (stage.width - resultTxt.width) / 2
	resultTxt.y = 250
	stageLayer.addChild(resultTxt)

	hintTxt = TextField()
	hintTxt.text = "Double Click to Restart"
	hintTxt.size = 35
	hintTxt.textColor = "red"
	hintTxt.x = (stage.width - hintTxt.width) / 2
	hintTxt.y = 320
	stageLayer.addChild(hintTxt)

	# add double click event to restart
	stageLayer.addEventListener(MouseEvent.DOUBLE_CLICK, startGame)
示例#3
0
def gameInit(result):
	global dataList, stageLayer

	dataList = result

	# create stage layer
	stageLayer = Sprite()
	addChild(stageLayer)

	# add FPS
	fps = FPS()
	addChild(fps)

	# add background
	bg = Bitmap(BitmapData(dataList["bg"]))
	stageLayer.addChild(bg)

	# add some text fields
	titleTxt = TextField()
	titleTxt.text = "Get Furit"
	titleTxt.size = 70
	titleTxt.textColor = "red"
	titleTxt.x = (stage.width - titleTxt.width) / 2
	titleTxt.y = 100
	stageLayer.addChild(titleTxt)

	hintTxt = TextField()
	hintTxt.text = "Tap to Start the Game!~"
	hintTxt.textColor = "red"
	hintTxt.size = 40
	hintTxt.x = (stage.width - hintTxt.width) / 2
	hintTxt.y = 300
	stageLayer.addChild(hintTxt)

	engineTxt = TextField()
	engineTxt.text = "- Powered by Pylash -"
	engineTxt.textColor = "red"
	engineTxt.size = 20
	engineTxt.weight = TextFormatWeight.BOLD
	engineTxt.italic = True
	engineTxt.x = (stage.width - engineTxt.width) / 2
	engineTxt.y = 500
	stageLayer.addChild(engineTxt)

	# add event that the game will start when you click
	stageLayer.addEventListener(MouseEvent.MOUSE_UP, startGame)

	# add keyboard events to control player
	stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown)
	stage.addEventListener(KeyboardEvent.KEY_UP, keyUp)
示例#4
0
def gameInit(result):
	global beginningLayer, dataList, loadingPage

	loadingPage.remove()

	# save the data which is loaded
	dataList = result

	# create a Sprite object
	beginningLayer = Sprite()
	# push the Sprite object into display list to show
	addChild(beginningLayer)

	# add background
	bg = Bitmap(BitmapData(dataList["bg"], 330, 300))
	beginningLayer.addChild(bg)

	# add some text fields
	title = TextField()
	title.text = "Find Character"
	title.font = "Microsoft YaHei"
	title.size = 60
	title.weight = TextFormatWeight.BOLD
	title.x = (stage.width - title.width) / 2
	title.y = 150
	beginningLayer.addChild(title)

	hintTxt = TextField()
	hintTxt.text = "Tap to Start The Game"
	hintTxt.font = "Microsoft YaHei"
	hintTxt.size = 30
	hintTxt.x = (stage.width - hintTxt.width) / 2
	hintTxt.y = 300
	beginningLayer.addChild(hintTxt)

	engineTxt = TextField()
	engineTxt.text = "- Powered by Pylash -"
	engineTxt.font = "Microsoft YaHei"
	engineTxt.size = 20
	engineTxt.italic = True
	engineTxt.x = (stage.width - engineTxt.width) / 2
	engineTxt.y = 400
	beginningLayer.addChild(engineTxt)

	# add event that game will start when you click
	beginningLayer.addEventListener(MouseEvent.MOUSE_UP, startGame)
示例#5
0
def gameInit(result):
	global beginningLayer, dataList, loadingPage

	loadingPage.remove()

	# save the data which is loaded
	dataList = result

	# create a Sprite object
	beginningLayer = Sprite()
	# push the Sprite object into display list to show
	addChild(beginningLayer)

	# add background
	bg = Bitmap(BitmapData(dataList["bg"], 330, 300))
	beginningLayer.addChild(bg)

	# add some text fields
	title = TextField()
	title.text = "Find Character"
	title.font = "Microsoft YaHei"
	title.size = 60
	title.weight = TextFormatWeight.BOLD
	title.x = (stage.width - title.width) / 2
	title.y = 150
	beginningLayer.addChild(title)

	hintTxt = TextField()
	hintTxt.text = "Tap to Start The Game"
	hintTxt.font = "Microsoft YaHei"
	hintTxt.size = 30
	hintTxt.x = (stage.width - hintTxt.width) / 2
	hintTxt.y = 300
	beginningLayer.addChild(hintTxt)

	engineTxt = TextField()
	engineTxt.text = "- Powered by Pylash -"
	engineTxt.font = "Microsoft YaHei"
	engineTxt.size = 20
	engineTxt.italic = True
	engineTxt.x = (stage.width - engineTxt.width) / 2
	engineTxt.y = 400
	beginningLayer.addChild(engineTxt)

	# add event that game will start when you click
	beginningLayer.addEventListener(MouseEvent.MOUSE_UP, startGame)
示例#6
0
    def addResultLayer(self, *text):
        resultLayer = Sprite()
        self.addChild(resultLayer)

        for i in text:
            txt = TextField()
            txt.font = "Microsoft YaHei"
            txt.text = i
            txt.size = 40
            txt.textAlign = TextFormatAlign.CENTER
            txt.x = stage.width / 2
            txt.y = resultLayer.height + 20
            txt.textColor = "orangered"
            txt.weight = TextFormatWeight.BOLD
            resultLayer.addChild(txt)

        # add a botton used for restart
        restartBtn = Sprite()
        restartBtn.graphics.beginFill("yellow")
        restartBtn.graphics.lineStyle(3, "orangered")
        restartBtn.graphics.drawRect(0, 0, 200, 60)
        restartBtn.graphics.endFill()
        restartBtn.x = (stage.width - restartBtn.width) / 2
        restartBtn.y = resultLayer.height + 50
        resultLayer.addChild(restartBtn)

        restartTxt = TextField()
        restartTxt.font = "Microsoft YaHei"
        restartTxt.text = "Restart"
        restartTxt.textColor = "orangered"
        restartTxt.size = 30
        restartTxt.x = (restartBtn.width - restartTxt.width) / 2
        restartTxt.y = (restartBtn.height - restartTxt.height) / 2
        restartBtn.addChild(restartTxt)

        def restart(e):
            self.start()

            resultLayer.remove()

        restartBtn.addEventListener(MouseEvent.MOUSE_UP, restart)

        # make the result layer locate at vertical center
        resultLayer.y = (stage.height - resultLayer.height) / 2
示例#7
0
    def addResultLayer(self, *text):
        resultLayer = Sprite()
        self.addChild(resultLayer)

        for i in text:
            txt = TextField()
            txt.font = "Microsoft YaHei"
            txt.text = i
            txt.size = 40
            txt.textAlign = TextFormatAlign.CENTER
            txt.x = stage.width / 2
            txt.y = resultLayer.height + 20
            txt.textColor = "orangered"
            txt.weight = TextFormatWeight.BOLD
            resultLayer.addChild(txt)

            # add a botton used for restart
        restartBtn = Sprite()
        restartBtn.graphics.beginFill("yellow")
        restartBtn.graphics.lineStyle(3, "orangered")
        restartBtn.graphics.drawRect(0, 0, 200, 60)
        restartBtn.graphics.endFill()
        restartBtn.x = (stage.width - restartBtn.width) / 2
        restartBtn.y = resultLayer.height + 50
        resultLayer.addChild(restartBtn)

        restartTxt = TextField()
        restartTxt.font = "Microsoft YaHei"
        restartTxt.text = "Restart"
        restartTxt.textColor = "orangered"
        restartTxt.size = 30
        restartTxt.x = (restartBtn.width - restartTxt.width) / 2
        restartTxt.y = (restartBtn.height - restartTxt.height) / 2
        restartBtn.addChild(restartTxt)

        def restart(e):
            self.start()

            resultLayer.remove()

        restartBtn.addEventListener(MouseEvent.MOUSE_UP, restart)

        # make the result layer locate at vertical center
        resultLayer.y = (stage.height - resultLayer.height) / 2
示例#8
0
def creatTxt(Txt, Size, X, Y, Color):
    global stageLayer
    txt = TextField()
    txt.text = Txt
    txt.size = Size
    txt.x = X
    txt.y = Y
    txt.color = Color
    stageLayer.addChild(txt)
    return txt
示例#9
0
    def startLevel(self, char):
        # get random position of target
        targetX = random.randint(0, 9)
        targetY = random.randint(0, 9)

        self.blockLayer = Sprite()
        self.blockLayer.name = "xxx"
        self.blockLayer.x = 50
        self.blockLayer.y = 50
        self.blockLayer.alpha = 0.7
        self.blockLayer.mouseChildren = False
        self.addChild(self.blockLayer)

        shapeLayer = Sprite()
        self.blockLayer.addChild(shapeLayer)

        txtLayer = Sprite()
        self.blockLayer.addChild(txtLayer)

        # create blocks with a character
        for i in range(10):
            for j in range(10):
                block = Shape()
                block.x = j * 50
                block.y = i * 50
                block.graphics.beginFill("#33CCFF")
                block.graphics.lineStyle(5, "#0066FF")
                block.graphics.drawRect(0, 0, 50, 50)
                block.graphics.endFill()
                shapeLayer.addChild(block)

                txt = TextField()
                txt.size = 20
                txt.font = "Microsoft YaHei"

                # when this block is target
                if i == targetY and j == targetX:
                    txt.text = char[1]

                    block.isTarget = True
                # when this block is not target
                else:
                    txt.text = char[0]

                    block.isTarget = False

                txt.x = block.x + (50 - txt.width) / 2
                txt.y = block.y + (50 - txt.height) / 2
                txtLayer.addChild(txt)

        self.blockLayer.addEventListener(MouseEvent.MOUSE_UP, self.check)
示例#10
0
    def startLevel(self, char):
        # get random position of target
        targetX = random.randint(0, 9)
        targetY = random.randint(0, 9)

        self.blockLayer = Sprite()
        self.blockLayer.name = "xxx"
        self.blockLayer.x = 50
        self.blockLayer.y = 50
        self.blockLayer.alpha = 0.7
        self.blockLayer.mouseChildren = False
        self.addChild(self.blockLayer)

        shapeLayer = Sprite()
        self.blockLayer.addChild(shapeLayer)

        txtLayer = Sprite()
        self.blockLayer.addChild(txtLayer)

        # create blocks with a character
        for i in range(10):
            for j in range(10):
                block = Shape()
                block.x = j * 50
                block.y = i * 50
                block.graphics.beginFill("#33CCFF")
                block.graphics.lineStyle(5, "#0066FF")
                block.graphics.drawRect(0, 0, 50, 50)
                block.graphics.endFill()
                shapeLayer.addChild(block)

                txt = TextField()
                txt.size = 20
                txt.font = "Microsoft YaHei"

                # when this block is target
                if i == targetY and j == targetX:
                    txt.text = char[1]

                    block.isTarget = True
                    # when this block is not target
                else:
                    txt.text = char[0]

                    block.isTarget = False

                txt.x = block.x + (50 - txt.width) / 2
                txt.y = block.y + (50 - txt.height) / 2
                txtLayer.addChild(txt)

        self.blockLayer.addEventListener(MouseEvent.MOUSE_UP, self.check)
示例#11
0
def gameOver():
	global stageLayer, selectedCharacter, start, enemyNum, isMouseDownAtGameLayer

	for o in AttackCharacter.ourList:
		o.animaSet.currentAnimation.removeAllEventListeners()
		o.animaSet.currentAnimation.stop()

	for o in Enemy.enemyList:
		o.animaSet.currentAnimation.removeAllEventListeners()
		o.animaSet.currentAnimation.stop()

	start = False

	stageLayer.mouseEnabled = False
	stageLayer.mouseChildren = False

	if selectedCharacter:
		selectedCharacter.remove()

	selectedCharacter = None

	enemyNum = 0
	isMouseDownAtGameLayer = False

	resultLayer = Sprite()
	addChild(resultLayer)

	# add hint of game over
	hintTxt = TextField()
	hintTxt.textColor = "red"
	hintTxt.text = "Game Over!"
	hintTxt.weight = TextFormatWeight.BOLD
	hintTxt.size = 50
	hintTxt.x = (stage.width - hintTxt.width) / 2
	hintTxt.y = (stage.height - hintTxt.height) / 2 - 40
	resultLayer.addChild(hintTxt)

	# add restart button
	def clickRestartBtn(e):
		global money, lives, loopIndex, stageLayer, fps, terrain

		AttackCharacter.ourList = []
		Enemy.enemyList = []
		
		loopIndex = 0
		money = 200
		lives = 10

		terrain = copy.deepcopy(terrainList)

		stageLayer.remove()
		fps.remove()

		resultLayer.remove()

		gameInit()

	normal = Sprite()
	normal.graphics.beginFill("#666666")
	normal.graphics.lineStyle(3, "#222222")
	normal.graphics.drawRect(0, 0, 130, 60)
	normal.graphics.endFill()

	txt = TextField()
	txt.text = "RESTART"
	txt.textColor = "white"
	txt.size = 20
	txt.x = (normal.width - txt.width) / 2
	txt.y = (normal.height - txt.height) / 2
	normal.addChild(txt)

	over = Sprite()
	over.graphics.beginFill("#888888")
	over.graphics.lineStyle(3, "#222222")
	over.graphics.drawRect(0, 0, 130, 60)
	over.graphics.endFill()

	txt = TextField()
	txt.text = "RESTART"
	txt.textColor = "white"
	txt.size = 20
	txt.x = (over.width - txt.width) / 2
	txt.y = (over.height - txt.height) / 2
	over.addChild(txt)

	restartBtn = Button(normal, over)
	restartBtn.x = (stage.width - restartBtn.width) / 2
	restartBtn.y = stage.height / 2 + 30
	resultLayer.addChild(restartBtn)

	restartBtn.addEventListener(MouseEvent.MOUSE_UP, clickRestartBtn)
示例#12
0
def initCtrlLayer():
	global ctrlLayer, selectedCharacter, startBtn, moneyTxt, livesTxt, money, lives

	def selectCharacter(e):
		global selectedCharacter

		name = e.currentTarget.name

		# create selectedCharacter
		selectedCharacter = Sprite()
		selectedCharacter.name = name
		selectedCharacter.mouseShelter = False
		stageLayer.addChild(selectedCharacter)

		bmp = Bitmap(BitmapData(dataList[name + "_mov"], 0, 0, 48, 48))
		selectedCharacter.addChild(bmp)

		# make selectedCharacter move to mouse's position
		selectedCharacter.x = e.offsetX - selectedCharacter.width / 2
		selectedCharacter.y = e.offsetY - selectedCharacter.height / 2

	# draw the background of the ctrlLayer
	ctrlLayer.graphics.beginFill("#333333")
	ctrlLayer.graphics.lineStyle(3, "#222222")
	ctrlLayer.graphics.drawRect(0, 0, 150, stage.height)
	ctrlLayer.graphics.endFill()

	# list of our characters
	ourList = ["guanyu", "xiahoudun", "soldier1"]

	# show selectors of our characters
	selectorsLayer = Sprite()
	ctrlLayer.addChild(selectorsLayer)

	for i, v in enumerate(ourList):
		selector = Sprite()
		selector.name = v
		selectorsLayer.addChild(selector)

		# the appearance of the character
		bmp = Bitmap(BitmapData(dataList[v + "_mov"], 0, 0, 48, 48))
		selector.addChild(bmp)

		# show the cost of the character
		costTxt = TextField()
		costTxt.text = charactersData[v]["cost"]
		costTxt.textColor = "white"
		costTxt.x = (bmp.width - costTxt.width) / 2
		costTxt.y = bmp.height + 10
		selector.addChild(costTxt)

		selector.y = i * 88

		selector.addEventListener(MouseEvent.MOUSE_DOWN, selectCharacter)

	selectorsLayer.x = (ctrlLayer.width - selectorsLayer.width) / 2
	selectorsLayer.y = 40

	# add lives and money text
	livesTxt = TextField()
	livesTxt.text = "Lives: %s" % lives
	livesTxt.x = (ctrlLayer.width - livesTxt.width) / 2
	livesTxt.y = stage.height - 150
	livesTxt.textColor = "white"
	ctrlLayer.addChild(livesTxt)

	moneyTxt = TextField()
	moneyTxt.text = "Money: %s" % money
	moneyTxt.x = (ctrlLayer.width - moneyTxt.width) / 2
	moneyTxt.y = livesTxt.y + 30
	moneyTxt.textColor = "white"
	ctrlLayer.addChild(moneyTxt)

	# add a button to start game
	def clickStartBtn(e):
		global start, enemyNum

		start = True

		enemyNum = 0

		e.currentTarget.state = ButtonState.DISABLED

	normal = Sprite()
	normal.graphics.beginFill("#666666")
	normal.graphics.lineStyle(3, "#222222")
	normal.graphics.drawRect(0, 0, 100, 60)
	normal.graphics.endFill()

	txt = TextField()
	txt.text = "START"
	txt.textColor = "white"
	txt.size = 20
	txt.x = (normal.width - txt.width) / 2
	txt.y = (normal.height - txt.height) / 2
	normal.addChild(txt)

	over = Sprite()
	over.graphics.beginFill("#888888")
	over.graphics.lineStyle(3, "#222222")
	over.graphics.drawRect(0, 0, 100, 60)
	over.graphics.endFill()

	txt = TextField()
	txt.text = "START"
	txt.textColor = "white"
	txt.size = 20
	txt.x = (over.width - txt.width) / 2
	txt.y = (over.height - txt.height) / 2
	over.addChild(txt)

	disabled = Sprite()
	disabled.graphics.beginFill("#666666")
	disabled.graphics.lineStyle(3, "#222222")
	disabled.graphics.drawRect(0, 0, 100, 60)
	disabled.graphics.endFill()

	txt = TextField()
	txt.text = "START"
	txt.textColor = "#333333"
	txt.size = 20
	txt.x = (disabled.width - txt.width) / 2
	txt.y = (disabled.height - txt.height) / 2
	disabled.addChild(txt)

	startBtn = Button(normal, over, None, disabled)
	startBtn.x = (ctrlLayer.width - startBtn.width) / 2
	startBtn.y = stage.height - 80
	ctrlLayer.addChild(startBtn)

	startBtn.addEventListener(MouseEvent.MOUSE_UP, clickStartBtn)

	ctrlLayer.x = stage.width - ctrlLayer.width
示例#13
0
def gameOver():
    global stageLayer, selectedCharacter, start, enemyNum, isMouseDownAtGameLayer

    for o in AttackCharacter.ourList:
        o.animaSet.currentAnimation.removeAllEventListeners()
        o.animaSet.currentAnimation.stop()

    for o in Enemy.enemyList:
        o.animaSet.currentAnimation.removeAllEventListeners()
        o.animaSet.currentAnimation.stop()

    start = False

    stageLayer.mouseEnabled = False
    stageLayer.mouseChildren = False

    if selectedCharacter:
        selectedCharacter.remove()

    selectedCharacter = None

    enemyNum = 0
    isMouseDownAtGameLayer = False

    resultLayer = Sprite()
    addChild(resultLayer)

    # add hint of game over
    hintTxt = TextField()
    hintTxt.textColor = "red"
    hintTxt.text = "Game Over!"
    hintTxt.weight = TextFormatWeight.BOLD
    hintTxt.size = 50
    hintTxt.x = (stage.width - hintTxt.width) / 2
    hintTxt.y = (stage.height - hintTxt.height) / 2 - 40
    resultLayer.addChild(hintTxt)

    # add restart button
    def clickRestartBtn(e):
        global money, lives, loopIndex, stageLayer, fps, terrain

        AttackCharacter.ourList = []
        Enemy.enemyList = []

        loopIndex = 0
        money = 200
        lives = 10

        terrain = copy.deepcopy(terrainList)

        stageLayer.remove()
        fps.remove()

        resultLayer.remove()

        gameInit()

    normal = Sprite()
    normal.graphics.beginFill("#666666")
    normal.graphics.lineStyle(3, "#222222")
    normal.graphics.drawRect(0, 0, 130, 60)
    normal.graphics.endFill()

    txt = TextField()
    txt.text = "RESTART"
    txt.textColor = "white"
    txt.size = 20
    txt.x = (normal.width - txt.width) / 2
    txt.y = (normal.height - txt.height) / 2
    normal.addChild(txt)

    over = Sprite()
    over.graphics.beginFill("#888888")
    over.graphics.lineStyle(3, "#222222")
    over.graphics.drawRect(0, 0, 130, 60)
    over.graphics.endFill()

    txt = TextField()
    txt.text = "RESTART"
    txt.textColor = "white"
    txt.size = 20
    txt.x = (over.width - txt.width) / 2
    txt.y = (over.height - txt.height) / 2
    over.addChild(txt)

    restartBtn = Button(normal, over)
    restartBtn.x = (stage.width - restartBtn.width) / 2
    restartBtn.y = stage.height / 2 + 30
    resultLayer.addChild(restartBtn)

    restartBtn.addEventListener(MouseEvent.MOUSE_UP, clickRestartBtn)
示例#14
0
def initCtrlLayer():
    global ctrlLayer, selectedCharacter, startBtn, moneyTxt, livesTxt, money, lives

    def selectCharacter(e):
        global selectedCharacter

        name = e.currentTarget.name

        # create selectedCharacter
        selectedCharacter = Sprite()
        selectedCharacter.name = name
        selectedCharacter.mouseShelter = False
        stageLayer.addChild(selectedCharacter)

        bmp = Bitmap(BitmapData(dataList[name + "_mov"], 0, 0, 48, 48))
        selectedCharacter.addChild(bmp)

        # make selectedCharacter move to mouse's position
        selectedCharacter.x = e.offsetX - selectedCharacter.width / 2
        selectedCharacter.y = e.offsetY - selectedCharacter.height / 2

    # draw the background of the ctrlLayer
    ctrlLayer.graphics.beginFill("#333333")
    ctrlLayer.graphics.lineStyle(3, "#222222")
    ctrlLayer.graphics.drawRect(0, 0, 150, stage.height)
    ctrlLayer.graphics.endFill()

    # list of our characters
    ourList = ["guanyu", "xiahoudun", "soldier1"]

    # show selectors of our characters
    selectorsLayer = Sprite()
    ctrlLayer.addChild(selectorsLayer)

    for i, v in enumerate(ourList):
        selector = Sprite()
        selector.name = v
        selectorsLayer.addChild(selector)

        # the appearance of the character
        bmp = Bitmap(BitmapData(dataList[v + "_mov"], 0, 0, 48, 48))
        selector.addChild(bmp)

        # show the cost of the character
        costTxt = TextField()
        costTxt.text = charactersData[v]["cost"]
        costTxt.textColor = "white"
        costTxt.x = (bmp.width - costTxt.width) / 2
        costTxt.y = bmp.height + 10
        selector.addChild(costTxt)

        selector.y = i * 88

        selector.addEventListener(MouseEvent.MOUSE_DOWN, selectCharacter)

    selectorsLayer.x = (ctrlLayer.width - selectorsLayer.width) / 2
    selectorsLayer.y = 40

    # add lives and money text
    livesTxt = TextField()
    livesTxt.text = "Lives: %s" % lives
    livesTxt.x = (ctrlLayer.width - livesTxt.width) / 2
    livesTxt.y = stage.height - 150
    livesTxt.textColor = "white"
    ctrlLayer.addChild(livesTxt)

    moneyTxt = TextField()
    moneyTxt.text = "Money: %s" % money
    moneyTxt.x = (ctrlLayer.width - moneyTxt.width) / 2
    moneyTxt.y = livesTxt.y + 30
    moneyTxt.textColor = "white"
    ctrlLayer.addChild(moneyTxt)

    # add a button to start game
    def clickStartBtn(e):
        global start, enemyNum

        start = True

        enemyNum = 0

        e.currentTarget.state = ButtonState.DISABLED

    normal = Sprite()
    normal.graphics.beginFill("#666666")
    normal.graphics.lineStyle(3, "#222222")
    normal.graphics.drawRect(0, 0, 100, 60)
    normal.graphics.endFill()

    txt = TextField()
    txt.text = "START"
    txt.textColor = "white"
    txt.size = 20
    txt.x = (normal.width - txt.width) / 2
    txt.y = (normal.height - txt.height) / 2
    normal.addChild(txt)

    over = Sprite()
    over.graphics.beginFill("#888888")
    over.graphics.lineStyle(3, "#222222")
    over.graphics.drawRect(0, 0, 100, 60)
    over.graphics.endFill()

    txt = TextField()
    txt.text = "START"
    txt.textColor = "white"
    txt.size = 20
    txt.x = (over.width - txt.width) / 2
    txt.y = (over.height - txt.height) / 2
    over.addChild(txt)

    disabled = Sprite()
    disabled.graphics.beginFill("#666666")
    disabled.graphics.lineStyle(3, "#222222")
    disabled.graphics.drawRect(0, 0, 100, 60)
    disabled.graphics.endFill()

    txt = TextField()
    txt.text = "START"
    txt.textColor = "#333333"
    txt.size = 20
    txt.x = (disabled.width - txt.width) / 2
    txt.y = (disabled.height - txt.height) / 2
    disabled.addChild(txt)

    startBtn = Button(normal, over, None, disabled)
    startBtn.x = (ctrlLayer.width - startBtn.width) / 2
    startBtn.y = stage.height - 80
    ctrlLayer.addChild(startBtn)

    startBtn.addEventListener(MouseEvent.MOUSE_UP, clickStartBtn)

    ctrlLayer.x = stage.width - ctrlLayer.width