Esempio n. 1
0
File: main.py Progetto: didde/kivy
    def set_background(self):
        graphics_widget = FloatLayout()

        for td in self.textures_data:
            filename,xpos,ypos,width,height = td.split(":")
            xpos = float(xpos)
            ypos = float(ypos)
            image = MyImage(keep_ratio=True, allow_stretch=False, color=(0,0,0,0))
            image.set_shadow(False)
            with image.canvas:
                Rectangle(texture=self.textures[filename].texture, size=(float(width) * X_BLOCK, float(height) * Y_BLOCK))
            scatter = Scatter(do_rotation=False, do_scale=False, do_translation=False)
            scatter.pos = (xpos * X_BLOCK, ypos * Y_BLOCK)
            scatter.add_widget(image)
            graphics_widget.add_widget(scatter)

        for td in self.sprites_data:
            filename,xpos,ypos,width,height = td.split(":")
            xpos = float(xpos)
            ypos = float(ypos)
            image = MyImage(texture = self.sprites[filename].texture, keep_ratio=True, allow_stretch=False)
            image.set_shadow(False)
            scatter = Scatter(do_rotation=False, do_scale=False, do_translation=False)
            scatter.pos = (xpos * X_BLOCK, (ypos + 4) * Y_BLOCK / 2)
            scatter.add_widget(image)
            graphics_widget.add_widget(scatter)
            scatter.scale = 6 -  ypos * 1.5

        return graphics_widget
Esempio n. 2
0
    def NombreY(self, nombre):
        dispersa = Scatter()
        dispersa.pos = 109, -50
        dispersa.rotation = 90
        with dispersa.canvas:
            lblY = Label()
            dispersa.add_widget(lblY)

            lblY.pos = 200, -50
            lblY.text = str(nombre)
            lblY.color = (0, 0, 0)

            self.wid.add_widget(dispersa)
Esempio n. 3
0
 def show_gems(self, dt=None, dummy=None):
     self.gem_scatters = []
     filler = (8 - len(self.weapons)) / 2.0
     for i in range(len(self.weapons)):
         gem = self.gems[self.weapons[i]]
         scatter = Scatter(do_rotation=False, do_scale=False, color=(0,0,0,0), size_hint=(0.1,0.1))
         scatter.add_widget(gem)
         gem.bind(on_touch_down=self.flash_hero)            
         scatter.bind(on_touch_up=self.drop_gem)
         scatter.pos = ((filler + i) * X_BLOCK, 0)
         scatter.scale = 1
         try:
             self.graphics_widget.add_widget(scatter)
             self.gem_scatters.append(scatter)
         except:
             pass
Esempio n. 4
0
    def build(self):
        """Builds the GUI.
        """
        resource_add_path(
            os.path.join(os.path.dirname(distopia.__file__), 'data', 'media'))
        self.load_config()

        mat = None
        if self.alignment_filename:
            fname = os.path.join(os.path.dirname(distopia.__file__), 'data',
                                 self.alignment_filename)
            try:
                mat = np.loadtxt(fname, delimiter=',', skiprows=3)
            except Exception as e:
                logging.exception("Not using alignment: {}".format(e))

        self.load_data_create_voronoi()
        self.metric_data = self.geo_data.load_metrics(self.metrics,
                                                      self.precincts)
        self.voronoi_mapping.verify_adjacency = \
            self.geo_data.set_precinct_adjacency(self.precincts)
        self.geo_data.load_landmarks()

        widget = VoronoiWidget(
            voronoi_mapping=self.voronoi_mapping,
            table_mode=self.table_mode,
            align_mat=mat,
            screen_offset=list(map(dp, self.screen_offset)),
            ros_bridge=self.ros_bridge,
            district_blocks_fid=self.district_blocks_fid,
            focus_block_fid=self.focus_block_fid,
            focus_block_logical_id=self.focus_block_logical_id,
            district_metrics_fn=self.metric_data.compute_district_metrics,
            state_metrics_fn=self.metric_data.create_state_metrics,
            show_voronoi_boundaries=self.show_voronoi_boundaries,
            focus_metrics=self.focus_metrics,
            screen_size=list(map(dp, self.screen_size)),
            focus_metric_height=dp(self.focus_metric_height),
            focus_metric_width=dp(self.focus_metric_width),
            max_fiducials_per_district=self.max_fiducials_per_district,
            visualize_metric_data=self.visualize_metric_data)

        if self.use_ros:
            box = BoxLayout()
            voronoi_widget = widget
            err = Label(text='No ROS bridge. Please set use_ros to False')
            widget = box
            box.add_widget(err)

            def enable_widget(*largs):
                box.remove_widget(err)
                box.add_widget(voronoi_widget)
                voronoi_widget.ros_bridge = self.ros_bridge
                if self.show_precinct_id:
                    self.show_precinct_labels(voronoi_widget)
                self.show_landmarks(voronoi_widget)

            self.ros_bridge = RosBridge(
                host=self.ros_host,
                port=self.ros_port,
                ready_callback=Clock.create_trigger(enable_widget),
                log_data=self.log_data)
        else:
            if self.show_precinct_id:
                self.show_precinct_labels(widget)
            self.show_landmarks(widget)

        size = list(map(dp, self.screen_size))
        size = [v / self.scale for v in size]

        scatter = Scatter(do_rotation=False,
                          do_scale=False,
                          do_translation_y=False,
                          do_translation_x=False,
                          scale=self.scale,
                          do_collide_after_children=False)
        scatter.add_widget(widget)

        widget.size_hint = None, None
        scatter.size_hint = None, None
        scatter.fbind('pos', lambda *l: setattr(scatter, 'pos', (0, 0)))
        scatter.pos = 0, 0
        scatter.size = size
        widget.size = size
        return scatter