Exemple #1
0
 def lay_canvas_instructions(self):
     if self._no_ripple_effect:
         return
     with self.canvas.after:
         if hasattr(self, "radius"):
             self._round_rad = self.radius
         StencilPush(group="rectangular_ripple_behavior")
         RoundedRectangle(
             pos=self.pos,
             size=self.size,
             radius=self._round_rad,
             group="rectangular_ripple_behavior",
         )
         StencilUse(group="rectangular_ripple_behavior")
         self.col_instruction = Color(rgba=self.ripple_color,
                                      group="rectangular_ripple_behavior")
         self.ellipse = Ellipse(
             size=(self._ripple_rad, self._ripple_rad),
             pos=(
                 self.ripple_pos[0] - self._ripple_rad / 2.0,
                 self.ripple_pos[1] - self._ripple_rad / 2.0,
             ),
             group="rectangular_ripple_behavior",
         )
         StencilUnUse(group="rectangular_ripple_behavior")
         RoundedRectangle(
             pos=self.pos,
             size=self.size,
             radius=self._round_rad,
             group="rectangular_ripple_behavior",
         )
         StencilPop(group="rectangular_ripple_behavior")
     self.bind(ripple_color=self._set_color, _ripple_rad=self._set_ellipse)
Exemple #2
0
 def __init__(self, squarepos, squwid, squhei, **kwargs):
     super(PopUpBox, self).__init__(**kwargs)
     self.size = (Map.mapvar.squsize * squwid, Map.mapvar.squsize * squhei)
     self.pos = (squarepos[0] + 3 * __main__.app.root.squsize,
                 squarepos[1] + __main__.app.root.squsize -
                 __main__.app.root.squsize * squhei / 2)
     self.do_resize = False
     self.do_rotation = False
     Player.player.tbbox = self
     if self.right > __main__.app.root.scrwid - __main__.app.root.squsize * 2:
         self.set_right(squarepos[0])
     if self.top > __main__.app.root.playhei:
         self.top = __main__.app.root.playhei
     if self.y < 5:
         self.y = 5
     self.layout = GridLayout(size_hint=(None, None),
                              size=Player.player.tbbox.size,
                              pos=(0, 0),
                              cols=2,
                              spacing=4,
                              padding=5)
     with self.canvas.before:
         Color(.4, .4, .4, 1)
         self.rect = RoundedRectangle(pos=(0, 0), size=self.size)
     Player.player.layout = self.layout
     self.add_widget(self.layout)
     self.enableList = []
     self.upgradeAll = False
     # print Player.player.layout.size, Player.player.layout.pos, Player.player.tbbox.size, Player.player.tbbox.pos
     Map.mapvar.background.popUpOpen = self
     Map.mapvar.popupcontainer.add_widget(self)
     self.type = None
Exemple #3
0
    def adjust_size(self, *args):
        (par_x, par_y) = self.parent.size

        if par_x == 0 or par_y == 0:
            with self.canvas:
                self.canvas.clear()
            return

        par_scale = par_x / par_y

        (img_x, img_y) = self.image.texture.size
        img_scale = img_x / img_y

        if par_scale > img_scale:
            (img_x_new, img_y_new) = (img_x, img_x / par_scale)
        else:
            (img_x_new, img_y_new) = (img_y * par_scale, img_y)

        crop_pos_x = (img_x - img_x_new) / 2
        crop_pos_y = (img_y - img_y_new) / 2

        subtexture = self.image.texture.get_region(
            crop_pos_x, crop_pos_y, img_x_new, img_y_new
        )

        with self.canvas:
            self.canvas.clear()
            Color(1, 1, 1)
            RoundedRectangle(texture=subtexture, pos=self.pos, size=(par_x, par_y), radius=self.radius)
Exemple #4
0
 def on_size(self, *kwargs):
     self.canvas.before.clear()
     with self.canvas.before:
         Color(1, 1, 1, 1)
         RoundedRectangle(pos=self.pos, size=self.size, radius=[
             10,
         ])
Exemple #5
0
 def lay_canvas_instructions(self):
     with self.canvas.after:
         StencilPush()
         RoundedRectangle(size=self.size, pos=self.pos, radius=[self._radius])
         StencilUse()
         self.col_instruction = Color(rgba=self.ripple_color)
         self.ellipse = Ellipse(
             size=(self.ripple_rad, self.ripple_rad),
             pos=(
                 self.ripple_pos[0] - self.ripple_rad / 2.0,
                 self.ripple_pos[1] - self.ripple_rad / 2.0,
             ),
         )
         StencilUnUse()
         RoundedRectangle(size=self.size, pos=self.pos, radius=[self._radius])
         StencilPop()
     self.bind(ripple_color=self._set_color, ripple_rad=self._set_ellipse)
Exemple #6
0
	def __init__(self, **kwargs):
		super(TrafficWidget, self).__init__(**kwargs)
		self.gdm_service = GDMService()
		logger.info("Initialized TrafficWidget")

		with self.canvas:
			Color(0.15, 0.15, 0.15, .4, mode='rgba')
			RoundedRectangle(pos=(-25, -25), size=(270, 140), radius=[(5, 5), (5, 5), (5, 5), (5, 5)])
Exemple #7
0
 def __init__(self, **kwargs):
     super(SimulationWidget, self).__init__(**kwargs)
     self.nest_radius = 3
     self.old_window_size_x = 0
     self.old_window_size_y = 0
     self.cells = [[0 for y in range(HEIGHT)] for x in range(WIDTH + 1)]
     x, y = Window.size
     self.spacing_x = x / WIDTH
     self.spacing_y = y / HEIGHT
     self.meter_width = x / 2
     self.meter_bar = InstructionGroup()
     self.meter_bar.add(Color(1, 1, 1))
     self.meter_bar.add(
         RoundedRectangle(pos=[
             x / 2 - self.meter_width / 2, y - self.meter_height * 0.9
         ],
                          size=[self.meter_width, self.meter_height / 3]))
     self.meter_indicator.source = os.path.join(ROOT_PATH, "indicator.png")
     self.meter_backdrop.source = os.path.join(ROOT_PATH,
                                               "indicator_backdrop.png")
     self.meter_backdrop.pos = [
         x / 2 - self.meter_backdrop.size[0] / 2,
         y - self.meter_height * 1.2
     ]
     self.meter_indicator.pos = [
         x / 2 - self.meter_indicator.size[0] / 2,
         y - self.meter_height * 1.2
     ]
     self.meter_backdrop.size = [self.meter_height, self.meter_height]
     self.meter_indicator.size = [self.meter_height, self.meter_height]
     self.meter_backdrop.color = interpolate_color(self.p1_color,
                                                   self.p2_color, 0.5)
     self.sides = InstructionGroup()
     self.sides.add(Color(rgb=self.p1_color))
     self.sides.add(Rectangle(pos=[0, 0], size=[self.bar_width, y]))
     self.sides.add(Color(rgb=self.p2_color))
     self.sides.add(
         Rectangle(pos=[x - self.bar_width, 0], size=[self.bar_width, y]))
     x = 0
     y = -1
     count = 0
     for i in range(0, len(WORLD_DATA), INTS_PER_FIELD):
         x = (i - (count * INTS_PER_FIELD) + count) % WIDTH
         count += 1
         if x % WIDTH == 0:
             y += 1
         y_inverted = HEIGHT - y - 1
         g = InstructionGroup()
         g.add(Color(0, 0, 0, 1))  # black
         g.add(
             Rectangle(pos=(x * self.spacing_x,
                            y_inverted * self.spacing_y),
                       size=(self.spacing_x, self.spacing_y)))
         self.ids["grid_layout"].canvas.add(g)
         self.cells[x][y_inverted] = g
     self.ids["grid_layout"].canvas.add(self.sides)
     self.ids["grid_layout"].canvas.add(self.meter_bar)
Exemple #8
0
 def set_background(self, color):
     # self.canvas.before.clear()
     with self.canvas.before:
         Color(*color)
         self.rect = RoundedRectangle(pos=(self.pos[0] + sp(40),
                                           self.pos[1]),
                                      size=(self.size[0] - sp(80),
                                            self.size[1]),
                                      radius=[20])
Exemple #9
0
 def __init__(self, **kwargs):
     super(RoundedWidget, self).__init__(**kwargs)
     self.background_color = (1, 1, 1, 0)
     if kwargs.has_key('background_color'):
         background_color = kwargs['background_color']
     else:
         background_color = (1, 1, 1, 0)
     with self.canvas.before:
         Color(rgba=background_color)
         self.rect = RoundedRectangle(pos=self.pos, size=self.size, radius=[20, ])
     self.bind(pos=self.update_rect, size=self.update_rect)
    def __init__(self, **kwargs):
        super(NewsWidget, self).__init__(**kwargs)
        self.rss_service = RSSService()
        logger.info("Initialized NewsWidget")

        with self.canvas:
            Color(0.15, 0.15, 0.15, .4, mode='rgba')
            RoundedRectangle(pos=(0, -200),
                             size=(760, 300),
                             radius=[(5, 5), (5, 5), (5, 5), (5, 5)])
            Color(1, 1, 1, .2, mode='rgba')
            Line(points=[15, 0, 745, 0])
            Line(points=[15, -100, 745, -100])
    def __init__(self, **kwargs):
        super(WeatherWidget, self).__init__(**kwargs)
        self.met_service = METService()
        logger.info("Initialized WeatherWidget")

        with self.canvas:
            Color(0.15, 0.15, 0.15, .4, mode='rgba')
            RoundedRectangle(pos=(-25, -25),
                             size=(985, 240),
                             radius=[(5, 5), (5, 5), (5, 5), (5, 5)])
            Color(1, 1, 1, .2, mode='rgba')
            Line(points=[220, 190, 220, 0])
            Line(points=[470, 190, 470, 0])
            Line(points=[720, 190, 720, 0])
Exemple #12
0
 def set_progress_round(self, interval: Union[int, float]) -> NoReturn:
     with self.canvas.after:
         self._instance_progress_inner_circle_color = Color(rgba=(0, 0, 0,
                                                                  0))
         self._instance_progress_inner_circle_ellipse = Ellipse(
             size=self.get_progress_round_size(),
             pos=self.get_progress_round_pos(),
         )
         self.bind(
             pos=self.update_progress_inner_circle_ellipse,
             size=self.update_progress_inner_circle_ellipse,
         )
         # FIXME: Radius value is not displayed.
         self._instance_overlay_color = Color(rgba=(0, 0, 0, 0))
         self._instance_overlay_rounded_rec = RoundedRectangle(
             size=self.size,
             pos=self.pos,
             radius=self.instance_item.radius if hasattr(
                 self.instance_item, "radius") else [
                     0,
                 ],
         )
         self.bind(
             pos=self.update_overlay_rounded_rec,
             size=self.update_overlay_rounded_rec,
         )
         self._instance_progress_inner_outer_color = Color(rgba=(0, 0, 0,
                                                                 0))
         self._instance_progress_inner_outer_line = SmoothLine(
             width=dp(4),
             circle=[
                 self.center_x,
                 self.center_y,
                 self.progress_round_size * 0.58,
                 0,
                 0,
             ],
         )
Exemple #13
0
    def getUpgradeButtons(self):
        if Player.player.towerSelected.level != Player.player.upgPathSelectLvl and Player.player.towerSelected.type != 'Wind':
            layout = StandardUpgradeLayout()
            instance = Localdefs.towerabilitylist[1]
            layout.ids.upgradebutton.instance = instance

            Player.player.tbbox.enableList.append(layout.ids.upgradebutton)
            layout.ids.upgradebutton.ids.label.font_size = __main__.app.root.scrwid * .013
            layout.ids.upgradebutton.ids.label.halign = 'right'
            cost = Player.player.towerSelected.upgradeDict['Cost'][
                Player.player.towerSelected.level]
            layout.ids.upgradebutton.instance.cost = cost
            if cost > Player.player.money:
                layout.ids.upgradebutton.disabled = True
            layout.ids.upgradebutton.ids.label.text = 'Upgrade:  $' + str(cost)
            layout.ids.upgradebutton.ids.image.source = instance.imgstr
        elif Player.player.towerSelected.type == 'Wind':
            Player.player.tbbox.size = (Player.player.tbbox.width,
                                        Player.player.tbbox.height * 1.25)
            Player.player.layout.size = Player.player.tbbox.size
            with Player.player.tbbox.canvas.before:
                Color(.4, .4, .4, 1)
                RoundedRectangle(pos=(0, 0), size=Player.player.tbbox.size)
            self.ids.towerinfo.size_hint = (1, .5)
            if Player.player.towerSelected.level != Player.player.upgPathSelectLvl:
                layout = WindStandardLayout()
                instance = Localdefs.towerabilitylist[1]
                layout.ids.upgradebutton.instance = instance
                Player.player.tbbox.enableList.append(layout.ids.upgradebutton)
                layout.ids.upgradebutton.ids.label.font_size = __main__.app.root.scrwid * .013
                layout.ids.upgradebutton.ids.label.halign = 'right'
                cost = Player.player.towerSelected.upgradeDict['Cost'][
                    Player.player.towerSelected.level]
                layout.ids.upgradebutton.instance.cost = cost
                if cost > Player.player.money:
                    layout.ids.upgradebutton.disabled = True
                layout.ids.upgradebutton.ids.label.text = 'Upgrade:  $' + str(
                    cost)
                layout.ids.upgradebutton.ids.image.source = instance.imgstr
                layout.ids.rotatebutton.instance = Localdefs.towerabilitylist[
                    2]
                layout.ids.rotatebutton.ids.image.source = "iconimgs/Rotate.png"
                layout.ids.rotatebutton.ids.label.text = "Rotate Group"
            else:
                layout = WindPathUpgradeLayout()
                layout.ids.LeaderPath.instance = Localdefs.towerabilitylist[1]
                cost = Player.player.towerSelected.upgradeDict['Cost'][
                    Player.player.towerSelected.level]
                layout.ids.LeaderPath.id = 'LeaderPath'
                layout.ids.LeaderPath.instance.cost = cost
                layout.ids.LeaderPath.ids.label.text = 'Leader Path  $' + str(
                    cost[0]) + " + " + str(cost[1]) + " Gems"
                layout.ids.LeaderPath.ids.image.source = "towerimgs/crown.png"
                Player.player.tbbox.enableList.append(layout.ids.LeaderPath)
                layout.ids.Damage.instance = Localdefs.towerabilitylist[1]
                layout.ids.Damage.instance.cost = cost
                layout.ids.Damage.ids.label.text = 'Damage Path $' + str(
                    cost[0]) + " + " + str(cost[1]) + " Gems"
                layout.ids.Damage.ids.image.source = "towerimgs/Wind/icon.png"
                Player.player.tbbox.enableList.append(layout.ids.Damage)
                layout.ids.rotatebutton.instance = Localdefs.towerabilitylist[
                    2]
                layout.ids.rotatebutton.ids.image.source = "iconimgs/Rotate.png"
                layout.ids.rotatebutton.ids.label.text = "Rotate Group"
                if cost[0] > Player.player.money or cost[
                        1] > Player.player.gems:
                    layout.ids.Damage.disabled = True
                    layout.ids.LeaderPath.disabled = True

        else:
            layout = PathUpgradeLayout()
            layout.ids.LeaderPath.instance = Localdefs.towerabilitylist[1]
            cost = Player.player.towerSelected.upgradeDict['Cost'][
                Player.player.towerSelected.level]
            layout.ids.LeaderPath.instance.cost = cost
            layout.ids.LeaderPath.id = 'LeaderPath'
            layout.ids.LeaderPath.ids.label.text = 'Leader Path  $' + str(
                cost[0]) + " + " + str(cost[1]) + " Gems"
            layout.ids.LeaderPath.ids.image.source = "towerimgs/crown.png"
            Player.player.tbbox.enableList.append(layout.ids.LeaderPath)
            layout.ids.Damage.instance = Localdefs.towerabilitylist[1]
            layout.ids.Damage.instance.cost = cost
            layout.ids.Damage.ids.label.text = 'Damage Path $' + str(
                cost[0]) + " + " + str(cost[1]) + " Gems"
            layout.ids.Damage.ids.image.source = os.path.join(
                "towerimgs", Player.player.towerSelected.type, "icon.png")
            Player.player.tbbox.enableList.append(layout.ids.Damage)
            if cost[0] > Player.player.money or cost[1] > Player.player.gems:
                layout.ids.Damage.disabled = True
                layout.ids.LeaderPath.disabled = True

        return layout
Exemple #14
0
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        self.current_i = 0
        self.score = 0
        self.added_score = 0
        self.current_score = 0
        self.right_answer = False

        self.pop_up_1 = PopUpWindow()
        # sound:
        self.sound_background = SoundLoader.load(
            "src/game/sound/word/start_action.wav")
        self.sound_hit = SoundLoader.load("src/game/sound/effects/beep.ogg")
        self.sound_pop_1 = SoundLoader.load("src/game/sound/effects/pop_1.wav")
        self.sound_background.play()

        Clock.schedule_interval(self.update_score, 0)

        self.bg = AsyncImage(source='game/images/background/loading.gif',
                             anim_delay=0.01,
                             pos=(400, 400))

        with self.canvas:
            Color(0.1, 0.4, 0.2, .7, mode="rgb")
            self.selected_1 = RoundedRectangle(size=(0, 0))
            Color(0.2, 0.1, 0.4, .7, mode="rgb")
            self.selected_2 = RoundedRectangle(size=(0, 0))
            Color(0, 0, 0, 0, mode="rgba")
            self.temp_label_rec = Rectangle()
            self.score_text = Label(pos=(Window.width - 230,
                                         Window.height - 100),
                                    text=fix_text(str(self.score)),
                                    font_name="src/game/font/Far_Fanni",
                                    font_size=dp("8"),
                                    halign='left',
                                    color=[0, 0, 1, 1])
            Color(0.2, 0.5, 0.2, 1, mode="rgba")
            self.answer_connection_line = Line(width=2)
            self.score_label = Label(pos=(Window.width - 150,
                                          Window.height - 100),
                                     text=fix_text("امتیاز : "),
                                     font_name="src/game/font/Far_Fanni",
                                     font_size=dp("8"),
                                     halign='left',
                                     color=[0, 0, 1, 1])

            self.answer_result_line_1 = Label(
                pos=(50, Window.height - 100),
                text=fix_text(""),
                font_name="src/game/font/Far_Fanni",
                font_size=dp("12"),
                halign='left',
                opacity=0,
                color=[0, 0, 1, 1])

            self.answer_result_line_2 = Label(
                pos=(50, Window.height - 130),
                font_name="src/game/font/Far_Fanni",
                font_size=dp("12"),
                halign='left',
                opacity=1,
                color=[0, 0, 1, 1])

            self.answer_result_line_3 = Label(
                pos=(50, Window.height - 160),
                font_name="src/game/font/Far_Fanni",
                font_size=dp("12"),
                halign='left',
                opacity=1,
                color=[0, 0, 1, 1])

            Color(0.2, 0.1, 0.4, 1, mode="rgba")
            self.score_line = Line(rectangle=(0, Window.height - 100,
                                              Window.width, Window.height), )

            self.labels = [
                Label(pos=(-500, 0),
                      font_name="src/game/font/Far_Fanni",
                      font_size=dp("18"),
                      color=[0, 0.3, 0, 1]) for i in range(100, 500, 50)
            ]

        self.available_answer_box = 3
        self.available_answer_box_runs = True
        self.selected_word = None
        self._move_word = None
        self._move_word_direction_x = 5
        self._move_word_direction_y = 3
        self.selected_word_1 = self.labels[0]
        self.selected_word_2 = self.labels[1]
        for i in self.labels:
            i.size = self.label_size(i)

        Window.clearcolor = (.9, 1, 1, 1)
        self.selected_1_is_selected = False
        self.selected_2_is_selected = False
        self.selected_1_new_pos = None
        self.selected_2_new_pos = None
        self.init_labels()