Esempio n. 1
0
class GenericControllerBehavior(CtrlBehavior):
	def __init__(self):
		super(GenericControllerBehavior, self).__init__()
		global behavior_name
		self.display_name = behavior_name
		self.label = Label("", font_size=9, font_name="Cabin Regular", anchor_x="center", anchor_y="top", color=(255, 255, 255, 255))
		self.init_attribute('control_distance', 'ControlDistance', (0,1000), 'generic_controller_default_control_distance', 10)
		
	def associate(self, behavior):
		super(GenericControllerBehavior, self).associate(behavior)
		self.set_control_menu_mode()
	
	def update(self):
		super(GenericControllerBehavior, self).update()
		if self.controlled_attribute:
			distance = self.object.translation.distance(self.association.object.translation)
			distance_ratio = max(0, min(1.3, distance * 1.0 / self.attributes['control_distance'].value) - 0.3)
			value = self.controlled_attribute.range[0] + (distance_ratio * (self.controlled_attribute.range[1] - self.controlled_attribute.range[0]))
			self.controlled_attribute.set(value)
	
	def draw_foreground(self):
		super(GenericControllerBehavior, self).draw_foreground()
		if self.controlled_attribute:
			coords = self.object.screen_coords()
			self.label.position = coords.x, coords.y - 10
			self.label.element.text = "%s: %s" % (self.controlled_attribute.display_name, self.controlled_attribute.to_string())
			self.label.element.color = (255, 255, 255, int(self.object.alpha() * 255))
			self.label.draw()
Esempio n. 2
0
    def __init__(self):
        super(Credits, self).__init__()

        opts = {
            'font_name': 'against myself',
            'font_size': 70,
            'anchor_x': 'center',
            'anchor_y': 'center',
        }

        label = Label('Credits', color=(0x00, 0x00, 0x00, 0xff), **opts)
        label.position = 400, 500
        self.add(label, z=1)

        label = Label('Credits', color=(0xff, 0xff, 0xff, 0xff), **opts)
        label.position = 400, 503
        self.add(label, z=2)

        shadow = DEVELOPERS.replace("white", "black")
        developers = HTMLLabel(shadow, width=760, height=300, multiline=True)
        developers.position = 20, 298
        self.add(developers, z=1)

        developers = HTMLLabel(DEVELOPERS, width=760, height=300, multiline=True)
        developers.position = 20, 300
        self.add(developers, z=2)
Esempio n. 3
0
	def reload(self, model, hero_name):
		w, h = director.get_window_size()
		sc = 1920/w
		self.model = model
		self.name = hero_name
		if self.name == 'wizard':
			self.hero = self.model.heroes[self.name]
			self.sprite = Sprite(Images.hero_icons[self.name], (1600//sc, 900//sc), scale = 1/sc)
			self.sprite_black = Sprite(Images.hero_icons_black[self.name], (1600//sc, 900//sc), scale = 1/sc)
			self.label = Label('%d' %self.hero.stats.health, font_name='Times New Roman', font_size=20//sc, anchor_x='center', anchor_y='center', color = (255, 0, 0, 255) )
			self.label.position = 1600//sc, 870//sc
		if self.name == 'priest':
			self.hero = self.model.heroes[self.name]
			self.sprite = Sprite(Images.hero_icons[self.name], (1720//sc, 900//sc), scale = 1/sc)
			self.sprite_black = Sprite(Images.hero_icons_black[self.name], (1720//sc, 900//sc), scale = 1/sc)
			self.label = Label('%d' %self.hero.stats.health, font_name='Times New Roman', font_size=20//sc, anchor_x='center', anchor_y='center', color = (255, 0, 0, 255) )
			self.label.position = 1720//sc, 870//sc
		if self.name == 'warrior':
			self.hero = self.model.heroes[self.name]
			self.sprite = Sprite(Images.hero_icons[self.name], (1600//sc, 780//sc), scale = 1/sc)
			self.sprite_black = Sprite(Images.hero_icons_black[self.name], (1600//sc, 780//sc), scale = 1/sc)
			self.label = Label('%d' %self.hero.stats.health, font_name='Times New Roman', font_size=20//sc, anchor_x='center', anchor_y='center', color = (255, 0, 0, 255) )
			self.label.position = 1600//sc, 750//sc
		if self.name == 'rogue':
			self.hero = self.model.heroes[self.name]
			self.sprite = Sprite(Images.hero_icons[self.name], (1720//sc, 780//sc), scale = 1/sc)
			self.sprite_black = Sprite(Images.hero_icons_black[self.name], (1720//sc, 780//sc), scale = 1/sc)
			self.label = Label('%d' %self.hero.stats.health, font_name='Times New Roman', font_size=20//sc, anchor_x='center', anchor_y='center', color = (255, 0, 0, 255) )
			self.label.position = 1720//sc, 750//sc
Esempio n. 4
0
 def __init__(self, wave):
     super().__init__()
     w, h = director.get_window_size()
     self.wave = wave
     self.font_title = {
         'font_name': _font_,
         'font_size': 72,
         'anchor_y': 'top',
         'anchor_x': 'center'
     }
     title = Label('GameOver', **self.font_title)
     title.position = (w/2., h)
     self.add(title, z=1)
     self.font_label = {
         'font_name': _font_,
         'font_size': 40,
         'anchor_y': 'top',
         'anchor_x': 'center'
     }
     label = Label('Enter your name:', **self.font_label)
     label.position = (w/2., 600.)
     self.add(label)
     self.name = Label('', color=(192, 192, 192, 255), **self.font_label)
     self.name.position = (w/2., 530.)
     self.add(self.name)
Esempio n. 5
0
 def on_key_press(self, k, m):
     if k == key.BACKSPACE:
         self.name.element.text = self.name.element.text[0:-1]
         return True
     elif k == key.ENTER:
         if len(self.name.element.text) <= 2:
             w, h = director.get_window_size()
             label_s = Label(
                 'Name too short! Choose at least 3 characters',
                 font_name=_font_,
                 font_size=20,
                 anchor_y='top',
                 anchor_x='center')
             label_s.position = (w/2., 700.)
             self.add(label_s)
         elif len(self.name.element.text) >= 15:
             w, h = director.get_window_size()
             label_l = Label(
                 'Name too long! Not more than 15 characters allowed',
                 font_name=_font_,
                 font_size=20,
                 anchor_y='top',
                 anchor_x='center')
             label_l.position = (w/2., 750.)
             self.add(label_l)
         else:
             new_score(self.name.element.text, self.wave)
             director.pop()
         return True
     elif k == key.ESCAPE:
         director.pop()
         return True
     return False
Esempio n. 6
0
 def __init__(self, wave):
     super().__init__()
     self.wave = wave
     if check_score(wave) is False:
         self.in_highscore = False
     else:
         self.place = check_score(wave)
         self.in_highscore = True
     w, h = director.get_window_size()
     text1 = Label('+++ Game Over! +++',
                   font_name=_font_,
                   font_size=30,
                   anchor_x='center',
                   anchor_y='center')
     text1.position = w/2., h/2. + 65
     if self.in_highscore:
         text2 = Label(
             'You reached wave %d ' % wave +
             'and place %d of the highscore' % self.place,
             font_name=_font_,
             font_size=20,
             anchor_x='center',
             anchor_y='center')
     else:
         text2 = Label(
             'You reached wave %d' % wave,
             font_name=_font_,
             font_size=20,
             anchor_x='center',
             anchor_y='center')
     text2.position = w/2., h/2.
     self.add(text1)
     self.add(text2)
Esempio n. 7
0
    def create_page_select(self):
        '''创建关卡选择的页面选择器'''
        levels = self.get_all_level()
        count_pre_pages = 10
        pages = len(levels) // count_pre_pages + 1
        self.page_count = pages
        last_page = Label('上一页')
        next_page = Label('下一页')
        y = 100
        lx = 320 - 54
        nx = 320 + 10
        for i in range(pages):
            # 从中间开始放页码
            if i < pages / 2:
                x = 320 - (pages / 2 - i) * 20
                lx = 320 - pages / 2 * 20 - 64
            else:
                x = 320 + (i - pages / 2) * 20
                nx = 320 + pages / 2 * 20 + 10
            label = Label(str(i + 1), position=(x, y))
            last_page.position = (lx, y)
            next_page.position = (nx, y)
            r = Rect(label.x, label.y, 10, 16)
            self.page_select.append([r, label])
            self.add(label)

        lr = Rect(last_page.x, last_page.y, 50, 20)
        nr = Rect(next_page.x, next_page.y, 50, 20)
        self.page_select.append([lr, last_page])
        self.page_select.append([nr, next_page])
        self.add(last_page)
        self.add(next_page)
Esempio n. 8
0
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(Layer2, self).__init__(231, 76, 60, 1000)

        # Same Label code as before but this time with different text
        text = Label("This is the second scene")
        text.position = director._window_virtual_width / 2, director._window_virtual_height / 2
        self.add(text)
Esempio n. 10
0
class IntroLayer(Layer):
    is_event_handler = True
    def __init__(self):
        super(IntroLayer, self).__init__()
        self.img = pyglet.resource.image('background.png')
        self.intro_text = Label('Made by some Asshole:', font_size=24,
                           font_name='Times New Roman',
                           color=(255,255,255,255),
                           anchor_x='left',
                           anchor_y='bottom')
        self.intro_text.position = (0, 0)
        self.add(self.intro_text)
    def draw(self):
        glPushMatrix()
        self.transform()
        self.intro_text.draw()
        self.img.blit(0, 0)
        glPopMatrix()
    def start_game(self):
        scene = Scene()
        scene.add(MultiplexLayer(
                         MainMenu(),
                         OptionsMenu(),
                         HiScoresLayer(),
                         ), z=1)
        scene.add(BackgroundLayer(), z=0)
        director.push(ShuffleTransition(scene, 1.5))
    def on_key_press(self, k, m):
        if k in (pyglet.window.key.ENTER, pyglet.window.key.ESCAPE, pyglet.window.key.SPACE):
            self.start_game()
            return True
    def on_mouse_press(self, x, y, b, m):
        self.start_game()
        return True
Esempio n. 11
0
	def __init__(self):
		super().__init__(*Options.BACKGROUND_COLOR)

		version = Label(font_name=Options.FONT_NAME, font_size=16,
		                color=Options.FONT_COLOR_NOT_SELECTED,
		                anchor_x="right", anchor_y="bottom")
		version.position = director.get_window_size()[0] - 5, 5
		version.element.text = _("Version: {}").format(Options.VERSION)
		self.add(version)
Esempio n. 12
0
	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)
Esempio n. 13
0
 def __init__(self):
     super(Start, self).__init__()
     label = Label('打砖块', font_size=42)
     label2 = Label('press any key to start')
     label.position = (230, 300)
     label2.position = (240, 150)
     self.count = 0
     self.add(label)
     self.add(label2)
     self.schedule(self.update)
Esempio n. 14
0
	def __init__( self, win):
		super(GameOver,self).__init__( 32,32,32,64)

		w,h = director.get_window_size()
		if (win == False):
			label = Label('Game Over', font_name='Edit Undo Line BRK', font_size=54, anchor_y='center', anchor_x='center' )
		if (win == True):
			label = Label('You Won', 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 )
Esempio n. 15
0
    def __init__(self):
        super(ReaderScene, self).__init__()
        self.text = ""
        if(self.text_file):
            self.text = data.load(self.text_file).read()

        self.font_item['text'] = self.text
        label = Label(**self.font_item )
        label.content_width = 300
        self.label = label
        self.add(label,z=9999)
Esempio n. 16
0
 def __init__(self):
     width, height = director.get_window_size()
     super(HiScoresLayer, self).__init__(32, 32, 32, 16, width=width, height=height-86)
     self.font_title = {}
     self.font_title['font_name'] = 'Times New Roman'
     self.font_title['font_size'] = 72
     self.font_title['color'] = (204, 164, 164, 255)
     self.font_title['anchor_x'] = 'center'
     self.font_title['anchor_y'] = 'top'
     title = Label('Scores!', **self.font_title)
     title.position = (width/2.0, height)
     self.add(title, z=1)
     self.table = None
Esempio n. 17
0
    def __init__(self):
        # Remember that I need to pass in an RGBA colour value because it's a ColorLayer
        super(Layer1, self).__init__(155, 89, 182, 1000)

        # I make a simple label with no extra parameters such as font or anchors
        text = Label("This is the first scene")

        # For the position, I do something we haven't done before
        # We've been making the position static, but we don't exactly know the width and height of a player's window
        # Therefore, getting the virtual height and width and then just dividing them by two is a safer bet
        text.position = director._window_virtual_width / 2, director._window_virtual_height / 2

        # And lastly we add it
        self.add(text)
Esempio n. 18
0
 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)
Esempio n. 19
0
    def __init__(self):
        super(LogoLayer, self).__init__()

        self.img = pyglet.resource.image("jungle.png")
        self.img.anchor_x = self.img.width / 2
        self.img.anchor_y = self.img.height / 2

        name = Label("Man Is But A Worm", font_name=FONT, font_size=40, anchor_x="center", anchor_y="center")
        name.position = WIDTH / 2, HEIGHT * 3 / 4
        self.add(name)

        info = Label("Press space to act", font_name=FONT, font_size=18, anchor_x="center", anchor_y="center")
        info.position = WIDTH / 2, HEIGHT / 5
        self.add(info)

        sound.start_music()
Esempio n. 20
0
	def draw(self):
		w, h = director.get_window_size()
		sc = 1920/w
		self.label = Label('%d' %self.money, font_name='Times New Roman', font_size=20//sc, anchor_x='center', anchor_y='center', color = (255, 0, 0, 255))
		self.label.position = (1670//sc, 1030//sc)
		self.label.draw()
		for c in self.portraits:
			self.portraits[c].draw()
Esempio n. 21
0
class Interface(Layer):
	def __init__(self, model):
		self.model = model
		self.portraits = {'wizard': Hero_portriat_DM(), 'priest': Hero_portriat_DM(),
						 'warrior': Hero_portriat_DM(),'rogue': Hero_portriat_DM()}
		for c in self.portraits:
			self.portraits[c].reload(model, c)
		self.money = starting_money
		
	def draw(self):
		w, h = director.get_window_size()
		sc = 1920/w
		self.label = Label('%d' %self.money, font_name='Times New Roman', font_size=20//sc, anchor_x='center', anchor_y='center', color = (255, 0, 0, 255))
		self.label.position = (1670//sc, 1030//sc)
		self.label.draw()
		for c in self.portraits:
			self.portraits[c].draw()
Esempio n. 22
0
    def __init__(self, title, choices, callback, explanation=None, width=400):
        super(ChoiceLayer, self).__init__()
        self.callback = callback
        self.add(ColorLayer(20, 20, 20, 150), z=-2)
        w, h = director.get_window_size()

        y = h - 256
        but = Label(title, color=(0, 0, 0, 255), position=(w//2, y),
            anchor_x='center', anchor_y='top', font_size=24)
        x1 = w//2 - but.element.content_width // 2
        x2 = w//2 + but.element.content_width // 2
        y2 = y
        self.add(but)
        y -= but.element.content_height + 10

        if explanation:
            but = Label(explanation, multiline=True, color=(0, 0, 0, 255),
                position=(w//2, y), width=width, anchor_x='center',
                anchor_y='top', font_size=14, align='center',
                font_name='Prototype')
            self.add(but)
            x1 = min(w//2 - width // 2, x1)
            x2 = max(w//2 + width // 2, x2)
            y -= but.element.content_height + 10

        y -= 32

        self.choice_buts = []
        for choice in choices:
            but = Label(choice, color=(0, 0, 0, 255), position=(w//2, y),
                anchor_x='center',  anchor_y='bottom', font_size=20,
                font_name='Prototype')
            self.add(but, z=1)
            self.choice_buts.append(but)
            x = w//2 - but.element.content_width // 2
            x1 = min(x, x1)
            x2 = max(w//2 + but.element.content_width // 2, x2)
            but.rect = Rect(x, y, but.element.content_width,
                but.element.content_height)
            y1 = y
            y -= but.element.content_height

        self.patch_dimensions = (x1, y1, x2-x1, y2-y1)

        self.ninepatch = NinePatch(pyglet.resource.image('border-9p.png'))
Esempio n. 23
0
 def __init__(self, scene, message, next_layer=None):
     from cocos.text import Label
     
     super(MessageScreen, self).__init__()
     
     self.scene = scene
     self.next_layer = next_layer
     
     label = Label(
         message,
         font_name='TinyUnicode',
         font_size=32,
         anchor_x='center',
         anchor_y='center',
     )
     
     label.position = 320, 240
     self.add(label)
Esempio n. 24
0
    def __init__(self):
        # First thing we do in the class is to initialize the parent class, Layer, which is why I called the super function in this case
        super(HelloWorld, self).__init__()
        # Then I make a Cocos Label object to display the text.
        hello_world_label = Label(
            "Hello World!",  # The first thing the Label class requires is a piece of text to display
            font_name = "Times New Roman", # The next thing we need to input a font. Feel free to replace it with any font you like.
            font_size = 32,  # The third input I give is a font size for the text
            anchor_x = 'center',  # This input parameter tells cocos to anchor the text to the middle of the X axis
            anchor_y = 'center'  # Similar to the input above, this parameter tells cocos to anchor the text to the middle of the Y axis
        )

        # Now I need to give the text its position.
        hello_world_label.position = 320, 240

        # Lastly I need to add the label to the layer
        # self refers to the object, which in this case is the layer
        self.add(hello_world_label)
Esempio n. 25
0
	def draw(self):
		w, h = director.get_window_size()
		sc = 1920/w
		if (self.skill.learnt):
			self.sprite.draw()
			if self.skill.cd_left:
				self.label = Label('%d' %self.skill.cd_left, font_name='Times New Roman', font_size=20//sc, anchor_x='center', anchor_y='center', color = (255, 0, 0, 255) )
				self.label.position = ((1208)//sc, (899 - skill_pos[self.number])//sc)
				self.label.draw()
Esempio n. 26
0
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 )
Esempio n. 27
0
 def __init__(self):
     super(IntroLayer, self).__init__()
     self.img = pyglet.resource.image('background.png')
     self.intro_text = Label('Made by some Asshole:', font_size=24,
                        font_name='Times New Roman',
                        color=(255,255,255,255),
                        anchor_x='left',
                        anchor_y='bottom')
     self.intro_text.position = (0, 0)
     self.add(self.intro_text)
Esempio n. 28
0
    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)
Esempio n. 29
0
    def __init__(self):
        super(LogoLayer, self).__init__()

        # self.img = pyglet.resource.image('jungle.png')
        # self.img.anchor_x = self.img.width / 2
        # self.img.anchor_y = self.img.height / 2

        name = Label('Man Is But A Worm',
            font_name = FONT, font_size = 40,
            anchor_x = 'center', anchor_y = 'center')
        name.position = WIDTH / 2, HEIGHT * 3 / 4
        self.add(name)

        info = Label('Press space to act',
            font_name = FONT, font_size = 18,
            anchor_x = 'center', anchor_y = 'center')
        info.position = WIDTH / 2, HEIGHT / 5
        self.add(info)

        sound.start_music()
Esempio n. 30
0
class FileInfoLayer(Layer):

	is_event_handler = False

	def __init__(self, text='', position=(0, 0), **kwargs):
		print("INIT >>> FileInfoLayer.init() ")
		super(FileInfoLayer, self).__init__()
		self.model = None
		self.background = cocos.layer.util_layers.ColorLayer(0, 0, 0, 128, 1000, 30)
		self.label = Label(
			"Label1", x=10, y=10,
			font_name='Gill Sans',
			font_size=10,
		    color=(250, 250, 250, 255),
		    anchor_x = "left",
		    anchor_y = "baseline",
		    multiline = False
		)

		self.add(self.background, name="background")
		self.add(self.label, name="label")


	def on_slideshow_model_update(self, model):
		print("FileInfoLayer.ON_SLIDESOW_MODEL_UPDATE")
		self.model = model
		self.label.element.text = self.text
		print("FileInfoLayer: %s" % self.text)

	def on_draw(self):
		self.background.draw()
		self.label.draw()

	@property
	def text(self):
		if self.model is None:
			return ''
		else:
			return '%d / %d: %s' % \
		        (self.model.current_id+1, self.model.total_files,
		        self.model.current_file)
Esempio n. 31
0
    def _load_interface(self):
        self._load_button_gen("button", "exit", events.emit_show_city_generic, "button_exit", 0, 1, 0.95)
        self._load_button_gen("display", "city_table", events.emit_return_to_map, "button_city_table", 0, 1, 1)
        self.label_cityname = Label(director.core.query_mover("Transarctica").in_city, (director.window.width * self.button_positions["label_cityname"]["X"], director.window.height*self.button_positions["label_cityname"]["Y"]), color=(210,200,128,255), font_name="Arial", bold=True, font_size=24, anchor_x="center", anchor_y="center")
        self.add(self.label_cityname)
        label_stores_1 = self._load_label_gen("label_stores_1")
        self.add(label_stores_1, name="label_stores_1")
        self.get("label_stores_1").element.text=" "
        label_stores_2 = self._load_label_gen("label_stores_2")
        self.add(label_stores_2, name="label_stores_2")
        self.get("label_stores_2").element.text=" "
        label_stores_3 = self._load_label_gen("label_stores_3")
        self.add(label_stores_3, name="label_stores_3")
        self.get("label_stores_3").element.text=" "
        label_lignite_you_have = self._load_label_gen("label_lignite_you_have")
        self.add(label_lignite_you_have, name="label_lignite_you_have")
        self.get("label_lignite_you_have").element.text=" "

        for j in range(50):
            self.button_positions["sprite_trade_bracket"+str(j)] = {"X": 0.05+(0.225*(j%4)),"Y": 1.03-(0.183*(j//4))}
            self.button_positions["trade_bracket"+str(j)] = {"X": 0.05+(0.225*(j%4)),"Y": 0.804-(0.183*(j//4))}
            self.button_positions["button_buy"+str(j)] = {"X": 0.225+(0.225*(j%4)),"Y": 0.896-(0.183*(j//4))}
            self.button_positions["button_sell"+str(j)] = {"X": 0.225+(0.225*(j%4)),"Y": 0.846-(0.183*(j//4))}
        self._load_trade_boxes()
Esempio n. 32
0
    def toggle_hotkeys_menu(self):
        # Toggles the hotkeys menu on/off

        if self.hotkeysMenuOn:
            # self.remove(self.hotkeysMenu)
            # self.remove(self.title)

            for key in self.hotkeysList:
                self.remove(key)
                self.cm.remove_tricky(key)
            for num in self.keyNumList:
                self.remove(num)
            self.hotkeysList = []
            self.keyNumList = []

        else:
            # self.add(self.hotkeysMenu,z=20)
            # self.title = Label(text="Hotkeys:",font_name='Rabiohead',anchor_y='center',position=(10,630),font_size=20,color=(0,0,0,255),multiline=False)
            # self.add(self.title,z=25)
            x = 10
            y = 600
            for hotkey in self.hotkeys:
                if self.hotkeys[hotkey]:
                    y -= 50
                    keyNum = hotkey - 48
                    newKey = Label(text="Key: %s" % keyNum,font_name='Rabiohead',anchor_y='center',position=(x,y),font_size=12,color=(0,0,0,255),multiline=False)
                    x+=70
                    newLabel = HotkeyLabel((x,y),self.hotkeys[hotkey])
                    self.hotkeysList.append(newLabel)
                    self.cm.add(newLabel)
                    self.keyNumList.append(newKey)
                    self.add(newLabel,z=25)
                    self.add(newKey,z=25)
                    x -= 70

        self.hotkeysMenuOn = not self.hotkeysMenuOn
Esempio n. 33
0
def main():
    global m
    director.init()

    m = ScrollingManager()

    fg = ScrollableLayer()
    l = Label('foreground')
    l.position = (100, 100)
    fg.add(l)
    m.add(fg)

    bg = ScrollableLayer(parallax=.5)
    l = Label('background, parallax=.5')
    l.position = (100, 100)
    bg.add(l)
    m.add(bg)

    if autotest:
        m.do( 
              Delay(1) + CallFunc(update_focus, 100, 200) +
              Delay(1) + CallFunc(update_focus, 200, 100) +
              Delay(1) + CallFunc(update_focus, 200, 200)
            )

    main_scene = cocos.scene.Scene(m)

    keyboard = key.KeyStateHandler()
    director.window.push_handlers(keyboard)

    def update(dt):
        m.fx += (keyboard[key.RIGHT] - keyboard[key.LEFT]) * 150 * dt
        m.fy += (keyboard[key.DOWN] - keyboard[key.UP]) * 150 * dt
        m.set_focus(m.fx, m.fy)
    main_scene.schedule(update)

    director.run (main_scene)
Esempio n. 34
0
    def __init__(self):
        global p2_score  # accesses the score for both players to display it in the final message
        global p1_score
        super(endLayer, self).__init__(
            52, 152, 219, 1000
        )  # initialize this layer with the same conditions as the previous one
        #text = Label("You Won!")
        print(
            IDENTIFIER)  #print diagnostic info so we know which player this is
        score = 0
        opScore = -1
        if IDENTIFIER == "client1":  # if you are the first, assign the score appropraitely
            score = p2_score
            opScore = p1_score
        else:  # otherwise, flip flop the score values
            score = p1_score
            opScore = p2_score
        message = "You Lost.  Try Again Next Time!"  # set the losing message
        if score > opScore:
            message = "You Won, Congrats!"  # but overwrite it if your score was better

        #print ("we did it patrick, we saved the city")
        text = Label(
            message)  # create a label with your victory / loss message
        text2 = Label(
            "Your Score: " + str(score) + " Opponent Score: " +
            str(opScore))  # create another label with the player scores

        text2.position = director._window_virtual_width / 4, (
            director._window_virtual_height /
            2) - 30  #place the two different text labels

        text.position = director._window_virtual_width / 4, director._window_virtual_height / 2

        self.add(text)  # add the text to the scenen
        self.add(text2)
Esempio n. 35
0
 def __init__(self):
     super(EndGame, self).__init__()
     self.background = ColorLayer(0, 0, 0, 170)
     self.label = Label()
Esempio n. 36
0
    def __init__(self):
        """
        label:
        players:
        grass:
        projectiles:
        controllers:
        robots:
        castle:


        """
        super().__init__()

        width, height = game_board["size"]

        self.label = Label("debug")
        self.label.position = 100, 100

        # players...
        self.players = [
            #Actor(item_types["player1"], (500, 100), self.label),
            Actor(item_types["player2"], (100, 600)),
            #Actor(item_types["player3"], (250, 600)),
            #Actor(item_types["player4"], (900, 600)),
        ]
        last_player_id = 0

        # controllers...
        self.controllers = [Player(p) for p in self.players]
        for controller in self.controllers:
            controller.id = last_player_id
            last_player_id += 1

        # grass...
        grass_distance = 50
        x_margin, y_margin, width, height = (width // 2, grass_distance, width,
                                             height -
                                             game_board["castle_depth"])
        self.grass = [[
            Actor(item_types["grass" + str(randint(1, 3))], (x, y))
            for x in range(-x_margin, width + x_margin, grass_distance)
        ] for y in range(-y_margin, height, grass_distance)]

        # projectiles...
        self.projectiles = []

        # robots...
        self.robots = [
            Actor(item_types["robot1"], (200, 700)),
            Actor(item_types["robot1"], (800, 400)),
            Actor(item_types["robot1"], (300, 500)),
            Actor(item_types["robot1"], (600, 600)),
            Actor(item_types["robot2"], (500, 800)),
            Actor(item_types["robot3"], (800, 900)),
        ]

        # castle...
        self.castle = Actor(item_types["castle1"], (500, 1000))

        # add to game layer...

        # create grass in batches to speed up game
        from cocos.batch import BatchNode
        for grass_batch in self.grass:
            batch = BatchNode()
            for grass in grass_batch:
                grass.alpha = 0.8
                batch.add(grass)
            self.add(batch, -grass_batch[0].coord.y)

        self.add(self.label)

        for robot in self.robots:
            self.add(robot, -robot.coord.y)

        for player in self.players:
            self.add(player, -player.coord.y)

        for controller in self.controllers:
            self.add(controller)

        self.add(self.castle, -self.castle.coord.y)

        print("Game Layer Children" + str(len(self.children)))

        self.do(CollisionAction())
Esempio n. 37
0
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()
Esempio n. 38
0
    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)
Esempio n. 39
0
    def __init__(self):
        super(Layer2, self).__init__(231, 76, 60, 1000)

        text = Label("This is the second scene")
        text.position = director._window_virtual_width / 2, director._window_virtual_height / 2
        self.add(text)
Esempio n. 40
0
 def __init__(self, *layers):
     super(SwitchLayer, self).__init__(*layers)
     self.index = 0
     self.label = Label('Switch layers with LEFT/RIGHT')
     self.label.position = (10, 30)
     self.add(self.label, z=1)
Esempio n. 41
0
    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)
Esempio n. 42
0
 def line_labels(self):
     for x in range(10):
         label = Label(str(10 - x), font_size=12)
         label.position = (30, 70 + (50 * x))
         self.add(label)
Esempio n. 43
0
 def column_labels(self):
     for x in range(10):
         label = Label(string.letters[x].upper(), font_size=12)
         label.position = (70 + (50 * x), 30)
         self.add(label)
Esempio n. 44
0
    def on_enter(self):
        super(Fixed, self).on_enter()
        if self.initialised:
            return

        self.buttons = []

        # ok, do we need to finish creating the game?
        if model.game.turn == 0:
            # prior to first turn
            model.game.init_new_game(self)

        w, h = director.get_window_size()

        # now it's safe to show information about the game
        bar_label_x = 248*2
        bar_graph_x = 315
        bar_label_y = 372*2
        bar_graph_y = 365
        self.add(Label('Faction Strength: ', x=bar_label_x, y=bar_label_y,
                       anchor_y='top', font_name='Prototype'), 'threat')
        self.add(MultipleBargraph((200, 8), (.2, .2, .2),
            position=(bar_graph_x, bar_graph_y),
            style='solid', colors=[(100, 100, 100), (200, 200, 100),
            (200, 100, 100)]), name='threat_graph')

        self.add(Label('Risk of Capture: ', x=bar_label_x, y=bar_label_y-20,
                       anchor_y='top', font_name='Prototype'))
        self.add(MultipleBargraph((200, 8), (1, 1, 1),
            position=(bar_graph_x, bar_graph_y-10),
            style='solid', colors=[(100, 100, 100), (200, 200, 100),
            (200, 100, 100)]), name='visible_graph')

        turn_x = 840
        turn_y = 698
        self.add(Label('', multiline=True, x=turn_x, y=turn_y, width=200,
            anchor_x='left', anchor_y='bottom', font_name='Prototype'),
            name='turn_label')

        end_turn = Button('end turn button.png', (w-64, h-64), None,
            self.on_new_turn)
        self.buttons.append(end_turn)
        self.add(end_turn, name='end_turn')

        help = Button('help.png', (16, 16), None, self.on_help)
        self.buttons.append(help)
        self.add(help, name='help')

        self.info = Details()
        self.info.position = (400, h-25)
        self.add(self.info)

        self.zinfo = ZoneInfo()
        self.zinfo.position = (150, 185)
        self.add(self.zinfo)

        self.zone = Zone()
        self.add(self.zone, z=-1)

        order_label = Label('Choose your actions for this turn: ',
                            position=(self.order_x, self.order_y + 40),
                            color=(255,255,255,255), font_name='Prototype')
        self.add(order_label)

        # add the hideout button - initially offscreen
        self.add(Sprite('icon-home.png', position= (-100, self.zone.y)),
            name='hideout')
        self.hideout_moved()

        # order_help = Label(GENERAL_HELP_TEXT, position=(30, 320),
        #                    multiline=True, color=(150, 150, 150, 255),
        #                    font_size =10,
        #                    font_name='Prototype', width=400)
        # self.add(order_help)

        self.update_info()

        # now we're done
        self.initialised = True

        if model.game.turn == 1:
            self.ask_ok('Fight Back', lambda *a: None, explanation=START_TEXT,
                width=500)
Esempio n. 45
0
    def _build_components(self):
        border_rect = rect.Rect(0, 0, self.Size[0], self.Size[1])
        border_rect.center = (0, 0)
        self.activated_border = Rect(border_rect, self.SelectedColor, width=4)

        if not self.static:
            self._create_status_border(border_rect, z=3, width=4)

        # Main card image.
        main_sprite = Sprite(
            '{}-{}.png'.format(Klass.Idx2Str[self._c_get('klass')],
                               self._c_get('type')),
            (0, 0),
            scale=1.0,
        )
        if self.static:
            card_cls = all_cards()[self.entity]
        else:
            card_cls = self.entity
        main_image = try_load_image(card_cls.get_image_name())
        if main_image is not None:
            image_sprite = Sprite(
                main_image,
                pos(0.0, 0.02, base=self.SizeBase),
                scale=1.2,
            )
            self.front_sprites['image'] = [image_sprite, 0]

        mana_sprite = Sprite(
            'Mana.png',
            pos(-0.85, 0.76, base=self.SizeBase),
            scale=0.9,
        )

        # Mark, name and description.
        mark_image = try_load_image('Mark-{}.png'.format(
            self._c_get('package')))
        mark_sprite = None if mark_image is None else Sprite(
            mark_image, pos(0, -0.6, base=self.SizeBase), scale=1.0)
        name_label = Label(self._c_get('name'),
                           pos(0, -0.08, base=self.SizeBase),
                           font_size=21,
                           anchor_x='center',
                           anchor_y='center',
                           bold=True)
        desc_label = HTMLLabel(self._render_desc(self._c_get('description')),
                               pos(0, -0.58, base=self.SizeBase),
                               anchor_x='center',
                               anchor_y='center',
                               width=main_sprite.width * 0.9,
                               multiline=True)
        # [NOTE]: There is an encoding bug when parsing the font name in HTML (in `pyglet\font\win32query.py:311`),
        # must set font out of HTML.
        desc_label.element.set_style('font_name',
                                     C.UI.Cocos.Fonts.Description.Name)

        # Race sprite and label.
        race = self._c_get('race')
        if race:
            race_sprite = Sprite('Race.png',
                                 pos(0.02, -0.86, base=self.SizeBase),
                                 scale=1.0)
            race_label = hs_style_label(','.join(Race.Idx2Str[r]
                                                 for r in race),
                                        pos(0.02, -0.86, base=self.SizeBase),
                                        font_size=22,
                                        anchor_y='center')
            self.front_sprites['race-sprite'] = [race_sprite, 3]
            self.front_sprites['race-label'] = [race_label, 4]

        self.front_sprites.update({
            'main': [main_sprite, 1],
            'mana-sprite': [mana_sprite, 2],
            'name': [name_label, 3],
            'desc': [desc_label, 3],
        })
        if mark_sprite is not None:
            self.front_sprites['mark-sprite'] = [mark_sprite, 2]
        if self._c_get('type') != Type.Permanent:
            mana_label = hs_style_label(str(self._c_get('cost')),
                                        pos(-0.84, 0.8, base=self.SizeBase),
                                        font_size=64,
                                        anchor_y='center',
                                        color=Colors['white'])
            self.front_sprites['mana-label'] = [mana_label, 4]

        back_sprite = Sprite(
            'Card_back-Classic.png',
            (0, 0),
            scale=1.0,
        )
        self.back_sprites['back'] = [back_sprite, 1]

        if self._c_get('rarity') not in (Rarity.Basic, Rarity.Derivative):
            self.front_sprites['rarity-sprite'] = [
                Sprite(
                    'Rarity-{}-{}.png'.format(self._c_get('type'),
                                              self._c_get('rarity')),
                    pos(0.0, -0.248, base=self.SizeBase)), 4
            ]

        if self._c_get('type') == Type.Minion:
            atk_sprite = Sprite('Atk.png',
                                pos(-0.86, -0.81, base=self.SizeBase),
                                scale=1.15)
            atk_label = hs_style_label(str(self._c_get('attack')),
                                       pos(-0.78, -0.8, base=self.SizeBase),
                                       anchor_y='center',
                                       font_size=64,
                                       color=self._get_attack_color())
            health_sprite = Sprite('Health.png',
                                   pos(0.84, -0.81, base=self.SizeBase),
                                   scale=1.05)
            health_label = hs_style_label(str(self._c_get('health')),
                                          pos(0.84, -0.8, base=self.SizeBase),
                                          anchor_y='center',
                                          font_size=64,
                                          color=self._get_health_color())
            self.front_sprites.update({
                'attack-sprite': [atk_sprite, 2],
                'attack-label': [atk_label, 3],
                'health-sprite': [health_sprite, 2],
                'health-label': [health_label, 3],
            })
        elif self._c_get('type') == Type.Spell:
            name_label.position = pos(0, -0.04, base=self.SizeBase)
            main_sprite.position = pos(0, -0.07, base=self.SizeBase)
            if mark_sprite is not None:
                mark_sprite.position = pos(0, -0.57, base=self.SizeBase)
        elif self._c_get('type') == Type.Weapon:
            name_label.position = pos(0, -0.01, base=self.SizeBase)
            main_sprite.position = pos(0, -0.01, base=self.SizeBase)
            if mark_sprite is not None:
                mark_sprite.position = pos(0, -0.55, base=self.SizeBase)
            atk_sprite = Sprite('WeaponAtk.png',
                                pos(-0.81, -0.83, base=self.SizeBase),
                                scale=0.85)
            atk_label = hs_style_label(str(self._c_get('attack')),
                                       pos(-0.78, -0.8, base=self.SizeBase),
                                       anchor_y='center',
                                       font_size=64)
            health_sprite = Sprite('WeaponHealth.png',
                                   pos(0.82, -0.83, base=self.SizeBase),
                                   scale=0.85)
            health_label = hs_style_label(str(self._c_get('health')),
                                          pos(0.83, -0.8, base=self.SizeBase),
                                          anchor_y='center',
                                          font_size=64)
            desc_label.element.color = Colors['white']
            self.front_sprites.update({
                'attack-sprite': [atk_sprite, 2],
                'attack-label': [atk_label, 3],
                'health-sprite': [health_sprite, 2],
                'health-label': [health_label, 3],
            })
        elif self._c_get('type') == Type.HeroCard:
            armor_sprite = Sprite('HeroArmor.png',
                                  pos(0.85, -0.86, base=self.SizeBase),
                                  scale=1.08)
            armor_label = hs_style_label(str(self._c_get('armor')),
                                         pos(0.85, -0.86, base=self.SizeBase),
                                         anchor_y='center',
                                         font_size=64)
            self.front_sprites.update({
                'armor-sprite': [armor_sprite, 2],
                'armor-label': [armor_label, 3],
            })
Esempio n. 46
0
    def __init__(self):
        super(Editor, self).__init__()
        label = Label('关卡编辑器', position=(0, 0))
        label2 = Label('按S键保存', position=(100, 0))
        play_label = Label('P键开始游戏', position=(270, 0))
        self.block_select = []

        # self.block_select_white.sprite.position = (300, 50)
        # self.block_select_blue.sprite.position = (400, 50)
        self.new_level_label = Label('新建关卡', position=(20, 50))
        self.delete_level_label = Label('删除当前关卡', position=(100, 50))
        self.saveflag = Label('未保存', position=(200, 0))
        self.edit_level = Label('当前编辑关卡: ', position=(400, 0))
        self.yes_label = Label('是', position=(220, 50))
        self.no_label = Label('否', position=(250, 50))
        self.yes_label.visible = False
        self.no_label.visible = False
        # 编辑区属性
        self.editor_bottom = 250
        self.editor_top = 450
        self.editor_left = 0
        self.editor_right = 640

        # 以下两个标签用于提示用户编辑窗的位置
        buttom = self.editor_bottom - 1
        top = self.editor_top + 1
        line1 = Sprite('images/line.png', position=(0, buttom), anchor=(0, 0))
        line2 = Sprite('images/line.png', position=(0, top), anchor=(0, 0))

        self.add(label)
        self.add(label2)

        self.add(play_label)
        self.add(self.saveflag)
        self.add(line1)
        self.add(line2)
        self.add(self.edit_level)
        self.add(self.new_level_label)
        self.add(self.delete_level_label)
        self.add(self.yes_label)
        self.add(self.no_label)

        # 鼠标按下标志和坐标
        self.mouse_press_left = False
        self.mouse_press_right = False
        self.mouse_x = 0
        self.mouse_y = 0

        # 砖块的生命
        self.block_live = 0
        # 生成砖块选择
        self.create_block_select()

        # 生成砖块可以添加的位置
        self.recttmp = []
        self.create_grid()
        # 存储砖块属性
        # self.props = []
        # 存储bloks
        self.blocks = []

        # 存储关卡选择
        self.save_as = 1
        self.page = 1
        self.page_count = 1
        self.page_is_pressing = False
        self.delete_is_press = False
        self.level_select = []
        self.level_select_position = []
        self.page_select = []

        self.create_level_select()
        self.create_page_select()

        self.reset_blocks()

        self.schedule(self.update)
Esempio n. 47
0
    def __init__(self):
        super().__init__()
        bg = Sprite("res/keyboard/HorrorBack.png")
        bg.position = bg.width // 2, bg.height // 2
        self.add(bg)
        manage = Label("Загальні",
                       font_name='Roboto',
                       font_size=30,
                       bold=True,
                       color=(10, 165, 85, 255))
        manage.position = (60, 560)
        self.add(manage)
        # ESC ==========================================================
        key_ESC = Sprite('res/keyboard/key_ESC.png')
        key_ESC.position = (30, 510)
        self.add(key_ESC)

        esc = Label("Вихід/Назад",
                    font_name='Roboto',
                    font_size=20,
                    bold=True,
                    color=(10, 165, 85, 255))
        esc.position = (60, 500)
        self.add(esc)

        # Pause ========================================================
        key_P = Sprite('res/keyboard/key_P.png')
        key_P.position = (30, 450)

        self.add(key_P)

        p = Label("Пауза",
                  font_name='Roboto',
                  font_size=20,
                  bold=True,
                  color=(10, 165, 85, 255))
        p.position = (60, 440)
        self.add(p)

        # Mute =========================================================
        key_M = Sprite('res/keyboard/key_M.png')
        key_M.position = (30, 390)
        self.add(key_M)

        m = Label("Вимкнути/Увімкнути звук",
                  font_name='Roboto',
                  font_size=20,
                  bold=True,
                  color=(10, 165, 85, 255))
        m.position = (60, 380)
        self.add(m)
        #===============================================================

        movement = Label("Дії",
                         font_name='Roboto',
                         font_size=30,
                         bold=True,
                         color=(200, 150, 80, 255))
        movement.position = (650, 560)
        self.add(movement)
        # Move Right ===================================================
        right_arrow = Sprite('res/keyboard/right_arrow.png')
        right_arrow.position = (580, 510)
        self.add(right_arrow)

        r_a = Label("Рух вправо",
                    font_name='Roboto',
                    font_size=20,
                    bold=True,
                    color=(220, 150, 80, 255))
        r_a.position = (620, 505)
        self.add(r_a)

        # Move Left ====================================================
        left_arrow = Sprite('res/keyboard/left_arrow.png')
        left_arrow.position = (580, 450)
        self.add(left_arrow)

        l_a = Label("Рух вліво",
                    font_name='Roboto',
                    font_size=20,
                    bold=True,
                    color=(220, 150, 80, 255))
        l_a.position = (620, 445)
        self.add(l_a)

        # Jump =========================================================
        key_B = Sprite('res/keyboard/key_B.png')
        key_B.position = (580, 390)
        self.add(key_B)

        b = Label("Блок",
                  font_name='Roboto',
                  font_size=20,
                  bold=True,
                  color=(220, 150, 80, 255))
        b.position = (620, 380)
        self.add(b)

        #==============================================================

        attack = Label("Атака",
                       font_name='Roboto',
                       font_size=30,
                       bold=True,
                       color=(255, 65, 65, 255))
        attack.position = (360, 270)
        self.add(attack)

        # Attack_1======================================================
        key_Z = Sprite('res/keyboard/key_Z.png')
        key_Z.position = (170, 220)
        self.add(key_Z)

        a1 = Label("Атака мечем (Доступно на 1 рівні)",
                   font_name='Roboto',
                   font_size=20,
                   bold=True,
                   color=(255, 65, 65, 255))
        a1.position = (200, 215)
        self.add(a1)

        # Attack_2======================================================
        key_X = Sprite('res/keyboard/key_X.png')
        key_X.position = (170, 160)
        self.add(key_X)

        a2 = Label("Атака мечем (Доступно на 2 рівні)",
                   font_name='Roboto',
                   font_size=20,
                   bold=True,
                   color=(255, 65, 65, 255))
        a2.position = (200, 155)
        self.add(a2)

        # Attack_3======================================================
        key_C = Sprite('res/keyboard/key_C.png')
        key_C.position = (170, 100)
        self.add(key_C)

        a3 = Label("Атака мечем (Доступно на 3 рівні)",
                   font_name='Roboto',
                   font_size=20,
                   bold=True,
                   color=(255, 65, 65, 255))
        a3.position = (200, 95)
        self.add(a3)
Esempio n. 48
0
class Behavior(object):
    """A behavior defines the virtual part of a tracked object.
	
	A behavior can interact with its environment through 5 entry points that can be overridden :
	update_tracking -- New data arrives from the tracking subsystem.
	update -- Update the internal state.
	draw_background -- Draw the background part in 2D.
	draw_3d -- Draw the 3D part.
	draw_foreground -- Draw the foreground part in 2D."""
    def __init__(self):
        """Initialize an empty behavior."""
        super(Behavior, self).__init__
        self.display_name = None
        self.display_name_cached = None
        self.display_name_label = Label("",
                                        font_size=8,
                                        font_name="Cabin Bold",
                                        anchor_x="center",
                                        anchor_y="bottom",
                                        color=(255, 255, 255, 255))
        self.object = None
        self.observers = collections.defaultdict(list)
        self.attributes = collections.defaultdict(BehaviorAttribute)
        self.association = None
        self.association_selection = None
        self.association_selection_shaker = ShakeRecognizer.ShakeRecognizer()
        self.association_name = "Associate"
        self.association_mode = False

    def init_attribute(self,
                       name,
                       display_name,
                       range,
                       option_name,
                       default_value,
                       formatter=None):
        self.attributes[name].display_name = display_name
        self.attributes[name].range = range
        if formatter:
            self.attributes[name].formatter = formatter
        self.attributes[name].set(
            director.app.options.setdefault(option_name, default_value))

    def max_association_selection_time(self):
        return director.app.options.setdefault(
            'max_association_selection_time', 2)

    def register_for(self, notification, observer):
        """Register for a notification type as an observer."""
        if not observer in self.observers[notification]:
            self.observers[notification].append(observer)

    def unregister_from(self, notification, observer):
        """Stop observing a notification type."""
        try:
            self.observers[notification].remove(observer)
        except ValueError:
            pass

    def notify_for(self, notification, *args):
        """Notify observers for something."""
        for observer in self.observers[notification]:
            observer.notification_arrived_for(notification, self, *args)

    def notification_arrived_for(self, notification, sender, *args):
        """Handle new notifications."""
        if notification == "detached":
            self.behavior_detached(sender, *args)

    def behavior_detached(self, sender, *args):
        """Handle a 'detached' notification."""
        if self.association == sender:
            self.unassociate()

    def will_detach(self, object):
        self.object = None
        self.notify_for("detached")
        self.has_just_detached()

    def did_attach(self, object):
        self.object = object
        self.has_just_attached(object)

    def associate(self, behavior):
        """Start an unilateral association from this behavior to a specified behavior."""
        if self.association:
            unassociate()
        self.association = behavior
        behavior.register_for("detached", self)
        return True

    def unassociate(self):
        """Stop being associated with the current associated behavior, if any."""
        if not self.association:
            return
        self.association.unregister_from("detached", self)
        self.association = None

    def has_just_attached(self, object):
        """Do something when the behavior will cease to be attached to a tracked object."""
        pass

    def has_just_detached(self):
        """Do something when the behavior will attach to a tracked object."""
        pass

    def has_object(self):
        """Tell if the behavior is attached to a tracked object."""
        return self.object != None

    def draw_association(self):
        """Draw a line between the associated behavior's object and this behavior's object."""
        if not self.association:
            return
        me_color = self.object.color + (0.5 * self.object.alpha(), )
        ass_color = self.association.object.color + (
            0.5 * self.association.object.alpha(), )
        mecoords, asscoords = self.object.screen_coords(
        ), self.association.object.screen_coords()
        glLineWidth(3)
        glBegin(GL_LINES)
        glColor4f(*me_color)
        glVertex2f(mecoords.x, mecoords.y)
        glColor4f(*ass_color)
        glVertex2f(asscoords.x, asscoords.y)
        glEnd()
        glLineWidth(1)

    def update_tracking(self):
        pass

    def update(self):
        if not self.association_mode:
            return
        new_selection = None
        min_distance = sys.float_info.max
        for id in director.app.objects:
            current = director.app.objects[id]
            dist = current.translation.distance(self.object.translation)
            if current != self.object and not current.is_zombie(
            ) and dist < min_distance:
                min_distance = dist
                new_selection = current
        if self.association_selection != new_selection:
            # The selection has changed.
            self.association_selection = new_selection
            self.association_selection_shaker.reset()
        else:
            if self.association_selection and self.association_selection_shaker.update(
                    self.object.raw_translation):
                # Associate the selection
                self.association_mode = False
                self.associate(self.association_selection.behavior)
                self.association_selection = None

    def draw_background(self):
        self.draw_association()
        if self.display_name != self.display_name_cached:
            self.display_name_label.element.text = self.display_name
            self.display_name_cached = self.display_name
        if self.display_name:
            self.display_name_label.element.color = (255, 255, 255,
                                                     int(self.object.alpha() *
                                                         255))
            coords = self.object.screen_coords()
            self.display_name_label.position = coords.x, coords.y + 10
            self.display_name_label.draw()

    def draw_3d(self):
        if self.association_mode and self.association_selection:
            self.association_selection.model_view_matrix.load_gl()
            Graphics2d.draw_rect(-1.5,
                                 -1.5,
                                 3,
                                 3, (0.0, 0.0, 0.0, self.object.alpha()),
                                 filled=False,
                                 line_width=2)
            Graphics2d.draw_rect(-1.5,
                                 -1.5,
                                 3,
                                 3,
                                 self.object.color +
                                 (self.object.alpha() * 0.4, ),
                                 filled=True)
            self.object.model_view_matrix.load_gl()

    def draw_foreground(self):
        pass
Esempio n. 49
0
 def __init__(self):
     super(Score, self).__init__()
     self.score = Label('score:', font_size=20, color=(255,255,255,255))
     self.position = (580, 530)
     self.score.position = (0,0)
     self.add(self.score)
else:
    selector = 1
collider_cls = [RectMapCollider, RectMapWithPropsCollider][selector]

director.init()
tile_filled = Tile('z', {}, pyglet.image.load('white4x3.png'))
maps_cache = aux.generate_maps(tile_filled)

cases = [
    d for d in aux.case_generator(
        aux.first_expansion(maps_cache, aux.common_base_cases))
]
model = Model(cases)
scene = cocos.scene.Scene()
label = Label("-----------------",
              anchor_x='center',
              anchor_y='center',
              color=(255, 255, 255, 160))
label.position = 320, 20
scene.add(label, z=10)
model.label = label

scroller = ScrollingManager()
model.scroller = scroller
scroller.scale = 8.0
scene.add(scroller, z=1)
controller = ControllerLayer()
controller.model = model
scene.add(controller)
director.run(scene)
 def _load_label_gen(self, obj_name):
     x = self.optimal_width * self.button_positions[obj_name]["X"] + self.left_margin
     y = self.optimal_height * self.button_positions[obj_name]["Y"] + self.bottom_margin
     fsize = round(self.optimal_scale * self.button_positions[obj_name]["fsize"])
     return Label("---", (x, y), color=(210,200,128,255), font_name="Arial", bold=True, font_size=fsize, anchor_x="left", anchor_y="center")
Esempio n. 52
0
 def __init__(self):
     super(YouWin, self).__init__(0, 0, 0, 255)
     youwin = Label("You Win!!!", font_size=50, anchor_x="center", anchor_y="center")
     youwin.position = self.width // 2, self.height // 2
     self.add(youwin)
     clock.schedule_once(self.finishScreen, 3)
Esempio n. 53
0
    def __init__(self):
        super(Layer1, self).__init__(155, 89, 182, 1000)

        text = Label("This is the first scene")
        text.position = director._window_virtual_width / 2, director._window_virtual_height / 2
        self.add(text)
Esempio n. 54
0
 def win_display(self, dt):
     youwin = Label("Level 2 Complete - You reached the Zaxzium Pool", font_name="Calibri", font_size=30, anchor_x="center",
                    anchor_y="center")
     youwin.position = director.get_window_size()[0]//2, director.get_window_size()[1]//2
     self.add(youwin)
     clock.schedule_once(self.endGame, 3)
 def _load_trade_boxes(self):
     self.remove_trade_boxes()
     if self.trade_display:
         self._load_button_gen("button", "drop",
                               events.emit_commerce_switch_trade_dump,
                               "button_switch", 0, 1, 0.95)
         for item in self.items_for_trade:
             trade_bracket = Sprite(
                 self.gallery.content["item"][self.config.conf_items[
                     self.items_for_trade[item]["item_id"]].display_image +
                                              "_t"])
             trade_bracket.image_anchor = 0, 0
             trade_bracket.scale = self.optimal_scale
             trade_bracket.x = self.optimal_width * self.button_positions[
                 "sprite_trade_bracket" + str(item)]["X"]
             trade_bracket.y = self.optimal_height * self.button_positions[
                 "sprite_trade_bracket" + str(item)]["Y"]
             self.add(trade_bracket, name="trade_bracket" + str(item))
             label_item_name = Label(
                 self.config.conf_items[self.items_for_trade[item]
                                        ["item_id"]].item_name,
                 (self.optimal_width *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["X"] + 0.138),
                  self.optimal_height *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["Y"] + 0.152)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=16 * self.optimal_scale,
                 anchor_x="center",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_name" + str(item))
             label_item_name = Label(
                 self.config.conf_items[self.items_for_trade[item]
                                        ["item_id"]].storage,
                 (self.optimal_width *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["X"] + 0.088),
                  self.optimal_height *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["Y"] + 0.130)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_storage" + str(item))
             label_item_name = Label(
                 " ", (self.optimal_width *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["X"] + 0.088),
                       self.optimal_height *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["Y"] + 0.104)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_supply" + str(item))
             label_item_name = Label(
                 " ", (self.optimal_width *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["X"] + 0.088),
                       self.optimal_height *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["Y"] + 0.078)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_demand" + str(item))
             label_item_name = Label(
                 "Price: " + str(self.items_for_trade[item]["price"]),
                 (self.optimal_width *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["X"] + 0.088),
                  self.optimal_height *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["Y"] + 0.052)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_price" + str(item))
             label_item_name = Label(
                 " ", (self.optimal_width *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["X"] + 0.088),
                       self.optimal_height *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["Y"] + 0.026)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_hold" + str(item))
             #if (self.items_for_trade[item]["sell_units"] > 0):
             self._load_button_gen("button", "plus", events.emit_item_buy,
                                   "button_buy" + str(item), item, 0.72,
                                   0.95)
             #if (self.items_for_trade[item]["buy_units"] > 0):
             self._load_button_gen("button", "minus", events.emit_item_sell,
                                   "button_sell" + str(item), item, 0.72,
                                   0.95)
     else:
         self._load_button_gen("button", "trade",
                               events.emit_commerce_switch_trade_dump,
                               "button_switch", 0, 1, 0.95)
         for item in self.items_for_dump:
             trade_bracket = Sprite(
                 self.gallery.content["item"][self.config.conf_items[
                     self.items_for_dump[item]["item_id"]].display_image +
                                              "_t"])
             trade_bracket.image_anchor = 0, 0
             trade_bracket.scale = self.optimal_scale
             trade_bracket.x = self.optimal_width * self.button_positions[
                 "sprite_trade_bracket" + str(item)]["X"]
             trade_bracket.y = self.optimal_height * self.button_positions[
                 "sprite_trade_bracket" + str(item)]["Y"]
             self.add(trade_bracket, name="trade_bracket" + str(item))
             label_item_name = Label(
                 self.config.conf_items[self.items_for_dump[item]
                                        ["item_id"]].item_name,
                 (self.optimal_width *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["X"] + 0.138),
                  self.optimal_height *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["Y"] + 0.152)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=16 * self.optimal_scale,
                 anchor_x="center",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_name" + str(item))
             label_item_name = Label(
                 self.config.conf_items[self.items_for_dump[item]
                                        ["item_id"]].storage,
                 (self.optimal_width *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["X"] + 0.088),
                  self.optimal_height *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["Y"] + 0.130)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_storage" + str(item))
             label_item_name = Label(
                 " ", (self.optimal_width *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["X"] + 0.088),
                       self.optimal_height *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["Y"] + 0.104)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(
                 label_item_name, name="button_buy" +
                 str(item))  #just to have an object with the name to remove
             self.add(label_item_name,
                      name="trade_bracket_item_hold" + str(item))
             label_item_name = Label(
                 " ", (self.optimal_width *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["X"] + 0.088),
                       self.optimal_height *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["Y"] + 0.078)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_demand" + str(item))
             label_item_name = Label(
                 " ", (self.optimal_width *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["X"] + 0.088),
                       self.optimal_height *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["Y"] + 0.052)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_price" + str(item))
             label_item_name = Label(
                 " ", (self.optimal_width *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["X"] + 0.088),
                       self.optimal_height *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["Y"] + 0.026)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_supply" + str(item))
             self._load_button_gen("button", "minus", events.emit_item_sell,
                                   "button_sell" + str(item), item, 0.72,
                                   0.95)
     self.update_desc()
Esempio n. 56
0
 def __init__(self):
     super().__init__(0, 0, 0, 0)
     self.fuelbar = Label("Fuel: 100", anchor_x="center", anchor_y="center", font_name="Calibri", font_size=20)
     self.fuelbar.position = 900, 550
     self.add(self.fuelbar)
Esempio n. 57
0
 def __init__(self):
     super(AboutLayer, self).__init__()
     cprght = Label('Game Developed by Jean-Guillaume Louis - 2012')
     self.add(cprght)
Esempio n. 58
0
 def step(self, dt):
     global win
     rover = self.target
     if rover.dead:
         return
     if rover.fuel >= 1000:
         rover.fuel = 1000
     if rover.fuel <= 0:
         rover.fuel = 0
     fueldisplaylayer.fuelbar.element.text = "Fuel: " + str(int(rover.fuel // 10))
     fueldisplaylayer.fuelbar.draw()
     for fuel in fuels:
         if collision([rover.x, rover.y, rover.width, rover.height], [fuel.x, fuel.y, fuel.width, fuel.height]):
             rover.fuel += 200
             fuellayer.remove(fuel)
             fuels.remove(fuel)
             del fuel
             return
     collisions = [
         collision([rover.x, rover.y, rover.width, rover.height], [rock.x, rock.y, rock.width, rock.height]) for rock
         in rocks]
     if any(collisions):
         rover.velocity = (0, 0)
         
         youlose = Label("You Crashed", font_name="Calibri", font_size=80, anchor_x="center", anchor_y="center")
         youlose.position = (500, rover.position[1] + 300)
         rover.layer.add(youlose)
         rover.image = pyglet.resource.image("crashedrover.png")
         scroller1.set_focus(rover.x, rover.y + 200)
         rover.dead = True
         clock.schedule_once(crash, 2, rover)
     super().step(dt)
     if rover.fuel <= 0:
         rover.velocity = (0, 0)
         scroller1.set_focus(rover.x, rover.y + 200)
         youlose = Label("You Ran out of Fuel", font_name="Calibri", font_size=40, anchor_x="center",
                         anchor_y="center")
         youlose.position = (500, rover.position[1] + 300)
         rover.layer.add(youlose)
         rover.dead = True
         clock.schedule_once(fuelLose, 2, rover)
     elif rover.x < 43:
         rover.x = 43
         rover.velocity = (0, rover.velocity[1])
         rover.fuel -= 1.2
         scroller1.set_focus(rover.x, rover.y + 200)
         return
     elif rover.x > 1000 - 43:
         rover.x = 1000 - 43
         rover.velocity = (0, rover.velocity[1])
         rover.fuel -= 1.2
         scroller1.set_focus(rover.x, rover.y + 200)
         return
     elif rover.y > 16800 and not win:
         rover.y = 16801
         rover.velocity = (0, 0)
         scroller1.set_focus(rover.x, rover.y + 500)
         youwin = Label("Level 1 Complete - You reached the Kriptanium Mine", font_name="Calibri", font_size=30, anchor_x="center",
                        anchor_y="center")
         youwin.position = (500, rover.position[1] + 300)
         rover.layer.add(youwin)
         win = True
         clock.schedule_once(lvl1win, 2, rover)
         return
     else:
         rover.velocity = ((keyboard[key.RIGHT] - keyboard[key.LEFT]) * 500,
                           500 + (int(keyboard[key.UP]) * 2 - int(keyboard[key.DOWN])) * 100)
         rover.fuel -= 1.2
         scroller1.set_focus(rover.x, rover.y + 200)
Esempio n. 59
0
    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()
Esempio n. 60
0
    def build(self, width, height):
        self.width, self.height = width, height
        self.x, self.y = (director.window.width - width) // 2, (director.window.height - height) // 2

        title_label = Label(self.popup_ctrl.title,
                            font_name='Calibri',
                            color=rgba_colors["black"],
                            font_size=23,
                            anchor_x='center', anchor_y='center')

        title_label.x = width // 2
        title_label.y = height - 50

        self.add(title_label)

        message_label = Label(self.popup_ctrl.message,
                              font_name='Calibri',
                              color=rgba_colors["black"],
                              font_size=16,
                              anchor_x='center', anchor_y='center')

        message_label.x = width // 2
        message_label.y = height - 100

        self.add(message_label)

        for i, button in enumerate(self.popup_ctrl.buttons):
            padding = 20
            button_container = ColorLayer(*rgba_colors["popup_button_background"],
                                          width=(width - padding) // len(self.popup_ctrl.buttons) - padding,
                                          height=40)

            button_container.position = padding * (i + 1) + button_container.width * i, 30

            self.add(button_container)
            self.buttons_container.append(button_container)

            button_text = Label(button.text,
                                font_name='Calibri',
                                color=rgba_colors["white"],
                                font_size=18,
                                anchor_x='center', anchor_y='center')

            button_text.position = button_container.x + button_container.width / 2, button_container.y + button_container.height / 2 + 3

            self.add(button_text)

        director.window.push_handlers(self.popup_ctrl)