class TestLayer(cocos.layer.Layer): def __init__(self): super(TestLayer, self).__init__() x, y = director.get_window_size() self.color = [127, 127, 127, 255] self.label = Label(time.ctime(), (x / 2, y / 2)) self.label.do(Rotate(360, 10)) self.add(self.label) self.schedule_interval(self.update_time, .1) def update_time(self, dt): self.label.element.text = time.ctime() self.color[:3] = [self._change_color(self.color[i]) for i in range(3)] self.label.element.color = self.color def _change_color(self, old_color): new_color = old_color + random.randint(-10, 10) if new_color > 255: new_color = 255 if new_color < 0: new_color = 0 return new_color
def __init__(self, scene): from cocos.text import Label from cocos.actions import FadeIn from zombie.constants import VERSION super(TitleScreen, self).__init__() self.scene = scene title_label = Label( 'Zombie+ Ultra', font_name='Extrude', font_size=48, anchor_x='center', anchor_y='center', ) version_label = Label( VERSION, font_name='TinyUnicode', font_size=32, anchor_x='center', ) title_label.position = 320, 240 version_label.position = 320, (240 / 4) * 3 title_label.do(FadeIn(duration=10)) version_label.do(FadeIn(duration=10)) self.add(title_label) self.add(version_label)
class TestLayer(cocos.layer.Layer): def __init__(self): super( TestLayer, self ).__init__() x,y = director.get_window_size() self.color = [127, 127, 127, 255] self.label = Label(time.ctime(), (x/2, y/2)) self.label.do( Rotate( 360, 10 ) ) self.add( self.label ) self.schedule_interval(self.update_time, .1) def update_time(self, dt): self.label.element.text = time.ctime() self.color[:3] = [self._change_color(self.color[i]) for i in range(3)] self.label.element.color = self.color def _change_color(self, old_color): new_color = old_color + random.randint(-10, 10) if new_color > 255: new_color = 255 if new_color < 0: new_color = 0 return new_color
def __init__(self): super().__init__() width, height = director.get_window_size() paused = Label(_("PAUSE"), font_name="Ubuntu", font_size=64, bold=True, color=Options.FONT_COLOR, anchor_x="center", anchor_y="center") paused.position = width // 2, height // 2 paused.do(Repeat(FadeOut(0.3) + FadeIn(0.3))) # blink self.add(paused)
def __init__(self, win=False): super(GameOver, self).__init__(32, 32, 32, 64) w, h = director.get_window_size() if win: soundex.play('oh_yeah.mp3') msg = 'YOU WIN' else: soundex.play('no.mp3') msg = 'GAME OVER' label = Label(msg, font_name='Edit Undo Line BRK', font_size=54, anchor_y='center', anchor_x='center') label.position = (w / 2.0, h / 2.0) self.add(label) angle = 5 duration = 0.05 accel = 2 rot = Accelerate(Rotate(angle, duration // 2), accel) rot2 = Accelerate(Rotate(-angle * 2, duration), accel) effect = rot + (rot2 + Reverse(rot2)) * 4 + Reverse(rot) label.do(Repeat(Delay(5) + effect)) if hiscore.hiscore.is_in(status.status.score): self.hi_score = True label = Label( 'Enter your name:', font_name='Edit Undo Line BRK', font_size=36, anchor_y='center', anchor_x='center', color=(32, 32, 32, 255), ) label.position = (w / 2.0, h / 2.0) label.position = (w // 2, 300) self.add(label) self.name = Label( '', font_name='Edit Undo Line BRK', font_size=36, anchor_y='center', anchor_x='center', color=(32, 32, 32, 255), ) self.name.position = (w // 2, 250) self.add(self.name) else: self.hi_score = False
def __init__( self, win = False): super(GameOver,self).__init__( 32,32,32,64) w,h = director.get_window_size() if win: soundex.play('oh_yeah.mp3') msg = 'YOU WIN' else: soundex.play('no.mp3') msg = 'GAME OVER' label = Label(msg, font_name='Edit Undo Line BRK', font_size=54, anchor_y='center', anchor_x='center' ) label.position = ( w/2.0, h/2.0 ) self.add( label ) angle = 5 duration = 0.05 accel = 2 rot = Accelerate(Rotate( angle, duration//2 ), accel) rot2 = Accelerate(Rotate( -angle*2, duration), accel) effect = rot + (rot2 + Reverse(rot2)) * 4 + Reverse(rot) label.do( Repeat( Delay(5) + effect ) ) if hiscore.hiscore.is_in( status.status.score ): self.hi_score = True label = Label('Enter your name:', font_name='Edit Undo Line BRK', font_size=36, anchor_y='center', anchor_x='center', color=(32,32,32,255), ) label.position = ( w/2.0, h/2.0 ) label.position = (w//2, 300) self.add( label ) self.name= Label('', font_name='Edit Undo Line BRK', font_size=36, anchor_y='center', anchor_x='center', color=(32,32,32,255), ) self.name.position=(w//2,250) self.add(self.name) else: self.hi_score = False
class HUDLayer(Layer): def __init__(self): super().__init__() self.position = (440, 10) # left-bottom corner # hint region self.hint = ColorLayer(128, 128, 128, 128, 240, 120) self.hint.position = (0, 460) self.add(self.hint, z=-1) self.level = self.create_text(0, 380) self.lines = self.create_text(0, 300) self.score = self.create_text(0, 220) self.msg = Label("", font_name="Kristen ITC", font_size=46, color=(176, 48, 96, 255), anchor_x="left", anchor_y="bottom") self.msg.position = (0, 50) self.add(self.msg) def create_text(self, x, y): text = Label("", font_name="Kristen ITC", font_size=32, color=(105, 105, 105, 255), anchor_x="left", anchor_y="bottom") text.position = (x, y) self.add(text) return text def draw(self): self.level.element.text = "level " + str(stats.level) self.lines.element.text = "lines " + str(stats.lines) self.score.element.text = "score " + str(stats.score) stats.next_block.draw((self.position[0]-Settings.SQUARE_SIZE, self.position[1]-Settings.SQUARE_SIZE)) if stats.msg_queue: self.show_msg(stats.msg_queue.popleft()) def show_msg(self, msg): self.msg.element.text = msg self.msg.do(Show() + Delay(1) + Hide())
class MessageLayer(Layer): def show_message(self, message, callback=None): width, height = director.get_window_size() self.message = Label(message, font_size=52, font_name='Times New Roman', anchor_x='center', anchor_y='center') self.message.position = (width/2.0, height) self.add(self.message) actions = Accelerate(MoveBy( (0,-height/2.0), duration=0.5)) + \ Delay(1) + \ Accelerate(MoveBy( (0,-height/2.0), duration=0.5)) + \ Hide() if callback: actions += CallFunc( callback ) self.message.do( actions )
def __init__(self, message): """Initialize an error layer.""" super(ErrorLayer, self).__init__() w, h = director.get_window_size() lbl_title = Label("Fatal Error", bold=True, font_size=64, anchor_x="center", anchor_y="center", color=(255, 255, 255, 0)) lbl_title.position = w * 0.5, h * 0.75 lbl_title.do(FadeIn(1)) self.add(lbl_title) lbl_message = Label(message, anchor_x="center", anchor_y="center", font_size=12, color=(255, 255, 255, 0)) lbl_message.position = w * 0.5, h * 0.5 lbl_message.do(FadeIn(1)) self.add(lbl_message) lbl_advice = Label( "Please restart the application once you have fixed the problem.", font_size=10, anchor_x="center", anchor_y="center", color=(255, 255, 255, 0)) lbl_advice.position = w * 0.5, h * 0.25 lbl_advice.do(Accelerate(FadeIn(3), 2)) self.add(lbl_advice)
class MessageLayer(Layer): def show_message(self, msg, callback=None): w, h = director.get_window_size() self.msg = Label(msg, font_size=52, font_name='Arial', anchor_y='center', anchor_x='center') self.msg.position = (w // 2.0, h) self.add(self.msg) actions = Accelerate(MoveBy((0, -h / 2.0), duration=0.5)) + \ Delay(1) + \ Accelerate(MoveBy((0, -h / 2.0), duration=0.5)) + \ Hide() if callback: actions += CallFunc(callback) self.msg.do(actions)
class TestLayer(cocos.layer.Layer): def __init__(self): super( TestLayer, self ).__init__() x,y = director.get_window_size() self.color1 = [255, 0, 0, 255] self.color2 = [0, 0, 255, 255] self.label = Label('', (x//2, y//2)) self.label.do( Rotate( 360, 10 ) ) self.label.do( Repeat( Delay(1) + CallFunc(self.set_color, 0) + Delay(1) + CallFunc(self.set_color, 1) + Delay(1) + CallFunc(self.set_color, 2) )) self.add(self.label) self.set_color(2) def set_color(self, color_selector): colors = [ (255, 32, 64, 255), (0, 240, 100, 255), (90, 90, 250, 255) ] color = colors[color_selector] text = "(%s, %s, %s, %s)"%color self.label.element.text = text self.label.element.color = color
class TestLayer(cocos.layer.Layer): def __init__(self): super(TestLayer, self).__init__() x, y = director.get_window_size() self.color1 = [255, 0, 0, 255] self.color2 = [0, 0, 255, 255] self.label = Label('', (x // 2, y // 2)) self.label.do(Rotate(360, 10)) self.label.do( Repeat( Delay(1) + CallFunc(self.set_color, 0) + Delay(1) + CallFunc(self.set_color, 1) + Delay(1) + CallFunc(self.set_color, 2))) self.add(self.label) self.set_color(2) def set_color(self, color_selector): colors = [(255, 32, 64, 255), (0, 240, 100, 255), (90, 90, 250, 255)] color = colors[color_selector] text = "(%s, %s, %s, %s)" % color self.label.element.text = text self.label.element.color = color
def __init__(self, win): super(GameOver, self).__init__(32, 32, 32, 64) width, height = director.get_window_size() if win == 'win': #play win sound msg = 'You win!' elif win == 'lose': #play fail sound msg = 'Game Over Man!' else: #tie print "tie" msg = 'Tie! Awe Muffin!' label = Label(msg, font_name='Times New Roman', font_size=54, anchor_x='center', anchor_y='center') label.position = (width/2.0, height/2.0) self.add(label) angle = 5 duration = 0.05 accel = 2 rotation = Accelerate(Rotate(angle, duration//2), accel) rotation2 = Accelerate(Rotate(-angle*2, duration), accel) effect = rotation + (rotation2 + Reverse(rotation2)) * 4 + Reverse(rotation) label.do(Repeat(Delay(5) + effect))
def __init__(self, message): """Initialize an error layer.""" super(ErrorLayer, self).__init__() w, h = director.get_window_size() lbl_title = Label("Fatal Error", bold=True, font_size=64, anchor_x="center", anchor_y="center", color=(255,255,255,0)) lbl_title.position = w * 0.5, h * 0.75 lbl_title.do(FadeIn(1)) self.add(lbl_title) lbl_message = Label(message, anchor_x="center", anchor_y="center", font_size=12, color=(255,255,255,0)) lbl_message.position = w * 0.5, h * 0.5 lbl_message.do(FadeIn(1)) self.add(lbl_message) lbl_advice = Label("Please restart the application once you have fixed the problem.", font_size=10, anchor_x="center", anchor_y="center", color=(255,255,255,0)) lbl_advice.position = w * 0.5, h * 0.25 lbl_advice.do(Accelerate(FadeIn(3), 2)) self.add(lbl_advice)
def _show_spell_label(self, user, spell): label = Label(spell, anchor_x="center", font_size=16, font_name=Globals.FONT_NAME) label.position = user.spellWheel.position[0]+Globals.LABEL_OFFSET[0],user.spellWheel.position[1]+Globals.LABEL_OFFSET[1] label.opacity = 0 label.do(FadeIn(0.2) + Delay(1.0) + FadeOut(0.5) + Remove()) self.add(label)
class GameScreen(ColorLayer): is_event_handler = True def __init__(self): super(GameScreen, self).__init__(0xBF907A, 0x806052, 0xFFC0A3, 0x403029) # Placeholders self.answer = "0" self.question = None # Initialize game self.game = Game( game_engine=GameEngine.BuildGameEngineFromStatesAndTransitions( GAME_STATES_FILENAME, GAME_TRANSITIONS_FILENAME), player_name=playerName, difficulty_level=difficultyLevel) # Create required labels. self.timer_label = Label("00", font_name="Times New Roman", font_size=32, anchor_x='center', anchor_y='center') self.question_label = Label("Question Text", font_name="Times New Roman", font_size=32, anchor_x='center', anchor_y='center') self.answer_label = Label("Answer Text", font_name="Times New Roman", font_size=32, anchor_x='center', anchor_y='center') self.score_board_label = Label("Score: ", font_name="Times New Roman", font_size=32, anchor_x='center', anchor_y='center') self.instruction_label = Label("Press Enter to submit answer!", font_name="Times New Roman", font_size=32, anchor_x='center', anchor_y='center') self.timer_label.position = ( director._window_virtual_width / 10) * 9, director._window_virtual_height / 10 self.question_label.position = director._window_virtual_width / 2, director._window_virtual_height / 2 self.answer_label.position = director._window_virtual_width / 2, director._window_virtual_height / 2 - 50 self.score_board_label.position = director._window_virtual_width / 10, director._window_virtual_height / 10 self.instruction_label.position = director._window_virtual_width / 2, ( director._window_virtual_height / 10) * 9 self.add(self.instruction_label) self.add(self.timer_label) self.add(self.question_label) self.add(self.score_board_label) self.add(self.answer_label) self.display_question() # Method that checks if timer is done at intervals of 1 second. def is_timer_done(self, callback, *args, **kwargs): if self.timer_label.element.text == '0': self.handle_answer() def display_question(self): # Reinitialize answer to empty string. self.answer = "" self.answer_label.element.text = "_" self.question = self.game.get_question() self.question_label.element.text = str(self.question) self.timer_label.element.text = str(self.question.time) # Schedule callback to check for timer every second. self.schedule_interval(callback=self.is_timer_done, interval=1) # Add action for timer. self.timer_label.do(UpdateTimerAction(self.question.time)) def handle_answer(self): if not self.answer: self.answer = 10 if self.game.submit_answer(int(self.answer)): print("Correct Answer") else: print("Incorrect Answer") # Update Score board. self.score_board_label.element.text = " Score: {}".format( self.game.get_current_state()) # If not game over, continue with next question. if not self.game.is_game_over(): self.display_question() else: # Move to next screen with score. director.replace(FadeTransition(Scene(ScoreBoardScreen()))) def on_key_press(self, key, modifiers): if symbol_string(key) == "ENTER": self.handle_answer() else: print(key - ord('0')) self.answer += chr(key) self.answer_label.element.text = self.answer def on_exit(self): global game game = self.game super(GameScreen, self).on_exit()
def __init__( self, win = False): super(GameOver,self).__init__( 32,32,32,64) w,h = director.get_window_size() self.win = win if win: soundex.play('sounds/you_win.mp3') msg = 'FART IN LOVE' else: soundex.play('sounds/game_over_01.mp3') msg = 'GAME OVER' label = Label(msg, font_name=FONT_NAME, font_size=54, anchor_y='center', anchor_x='center' ) label.position = ( w/2.0, h/2.0 ) self.add( label ) angle = 5 duration = 0.05 accel = 2 rot = Accelerate(Rotate( angle, duration//2 ), accel) rot2 = Accelerate(Rotate( -angle*2, duration), accel) effect = rot + (rot2 + Reverse(rot2)) * 4 + Reverse(rot) label.do( Repeat( Delay(5) + effect ) ) if hiscore.hiscore.is_in( state.score ): self.hi_score = True label = Label('Enter your name:', font_name=FONT_NAME, font_size=36, anchor_y='center', anchor_x='center', color=(32,32,32,255), ) label.position = ( w/2.0, h/2.0 ) label.position = (w//2, 130) self.add( label ) self.name= Label('', font_name=FONT_NAME, font_size=36, anchor_y='center', anchor_x='center', color=(32,32,32,255), ) self.name.position=(w//2,80) self.add(self.name) else: self.hi_score = False if not self.win: label = Label("Press 'R' to restart level", font_name=FONT_NAME, font_size=18, anchor_y='center', anchor_x='center' ) label.position = ( w/2.0, 20 ) self.add( label )
def __init__(self): super(MainLayer, self).__init__() skip = Label("Натисніть ПРОБІЛ, щоб пропустити", position = (100,550), color = (255,0,0, 255), font_size = 25, bold = True) skip.do(Blink (20,20)) self.add(skip) self.img_h = image.load('res/animation/level1_monsters/hell_hound/hell-hound-run.png') self.img_grid_h = image.ImageGrid(self.img_h, 1, 5, item_width=67, item_height=31) self.anim_h = image.Animation.from_image_sequence(self.img_grid_h[0:], 0.2, loop=True) self.hell_hound = cocos.sprite.Sprite(self.anim_h) self.hell_hound.position = (-100, 180) self.hell_hound.scale = 2 self.hell_hound.scale_x = -1 self.add(self.hell_hound) self.portal = cocos.sprite.Sprite('res/animation/catscene/portal.png') self.portal.position = (500, 500) self.portal.scale = 0.3 self.add(self.portal) self.img = pyglet.image.load('res/animation/catscene/Character_03/Idle/idle_sheet.png') self.img_grid = pyglet.image.ImageGrid(self.img, 1, 13, item_width=64, item_height=64 ) self.anim = pyglet.image.Animation.from_image_sequence(self.img_grid[0:], 0.1, loop=True) self.hero_1 = cocos.sprite.Sprite(self.anim) self.hero_1.scale = 2.2 self.hero_1.position = (300, 180) self.add(self.hero_1) self.img_1 = pyglet.image.load('res/animation/catscene/girl/Idle_Png/idle_sheet.png') self.img_grid_1 = pyglet.image.ImageGrid(self.img_1, 1, 5, item_width=128, item_height=128 ) self.anim_1 = pyglet.image.Animation.from_image_sequence(self.img_grid_1[0:], 0.1, loop=True) self.hero_2 = cocos.sprite.Sprite(self.anim_1) self.hero_2.position = (200, 190) self.hero_2.scale = 1.6 self.add(self.hero_2) self.img_2 = pyglet.image.load('res/animation/idle/idlesheet.png') self.img_grid_2 = pyglet.image.ImageGrid(self.img_2, 1, 4, item_width=50, item_height=37 ) self.anim_2 = pyglet.image.Animation.from_image_sequence(self.img_grid_2[0:], 0.2, loop=True) self.hero_3 = cocos.sprite.Sprite(self.anim_2) self.hero_3.position = (100, 180) self.hero_3.scale = 2.2 self.add(self.hero_3) self.img_3 = pyglet.image.load('res/animation/level3_monsters/demon boss/demon-idle.png') self.img_grid_3 = pyglet.image.ImageGrid(self.img_3, 1, 6, item_width=160, item_height=144 ) self.anim_3 = pyglet.image.Animation.from_image_sequence(self.img_grid_3[0:], 0.1, loop=True) self.demon = cocos.sprite.Sprite(self.anim_3) self.demon.position = (400, 500) self.demon.scale = 1.4 self.add(self.demon) self.hell_hound.do(MoveTo((1000, 180), 11)) self.hero_3.do(MoveBy((170, 0), 3) + Delay(9.5) + MoveBy((1000, 0), 7.5)) self.hero_1.do(MoveBy((100,0), 3) + Delay(8.5) + FadeOut(0.5)) self.hero_2.do(MoveBy((250,0), 3) + Delay(8.5) + FadeOut(0.5)) self.portal.do(FadeOut(0) + MoveTo((700, 300), 5) + FadeIn(1) + Delay(7.5) + FadeOut(0.5)) self.demon.do(FadeOut(0) + MoveTo((700, 350), 5) + FadeIn(4) + Delay(1) + MoveTo((550, 250), 1) + Delay(2) + MoveTo((550, 1000), 1)) self.schedule(self.update)