当前位置: 首页>>代码示例>>Python>>正文


Python Actor.colisiona_con_un_punto方法代码示例

本文整理汇总了Python中pilas.actores.Actor.colisiona_con_un_punto方法的典型用法代码示例。如果您正苦于以下问题:Python Actor.colisiona_con_un_punto方法的具体用法?Python Actor.colisiona_con_un_punto怎么用?Python Actor.colisiona_con_un_punto使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pilas.actores.Actor的用法示例。


在下文中一共展示了Actor.colisiona_con_un_punto方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: Deslizador

# 需要导入模块: from pilas.actores import Actor [as 别名]
# 或者: from pilas.actores.Actor import colisiona_con_un_punto [as 别名]
class Deslizador(BaseInterfaz):
    """Representa un deslizador (slider) tipo volumen horizontal."""

    def __init__(self, x=0, y=0, ruta_barra = 'interfaz/barra.png',
                                 ruta_deslizador = 'interfaz/deslizador.png'):
        """Inicializa al actor.

        :param x: Posición horizontal inicial.
        :param y: Posición vertical inicial.
        :param ruta_barra: Imagen que se usará como barra.
        :param ruta_deslizador: Imagen para presentar al manejado o cursor del deslizador.
        """
        self.deslizador = None
        BaseInterfaz.__init__(self, ruta_barra, x=x, y=y)
        self.deslizador = Actor(ruta_deslizador, self.x, self.y)
        self.deslizador.fijo = True
        self.centro = ('izquierda', 'centro')

        self.click = False

        self.escena.click_de_mouse.conectar(self.click_del_mouse)
        self.escena.mueve_mouse.conectar(self.movimiento_del_mouse)
        self.escena.termina_click.conectar(self.termino_del_click)

        self.progreso = 0
        self.posicion_relativa_x = 0

        self.funciones = []

        # establecemos posicion inicial
        self.x = x
        self.y = y
        self.fijo = True

    def set_transparencia(self, nuevo_valor):
        """Define la transparecia del actor."""
        self.transparencia = nuevo_valor
        self.deslizador.transparencia = nuevo_valor

    def definir_posicion(self, x, y):
        """Cambia la posición.

        :param x: Nueva posición horizontal.
        :param y: Nueva posición vertical.
        """
        self.limite_izq = self.x
        self.limite_der = self.x + self.obtener_ancho()

        self._actor.definir_posicion(x, y)
        if self.deslizador:
            self.deslizador.definir_posicion(x + self.posicion_relativa_x, y)

    def conectar(self, f):
        self.funciones.append(f)

    def desconectar(self, f):
        self.funciones.remove(f)

    def ejecutar_funciones(self, valor):
        for i in self.funciones:
            i(valor)

    def click_del_mouse(self, click):
        if (self.activo):
            if self.deslizador.colisiona_con_un_punto(click.x, click.y):
                self.click = True

    def movimiento_del_mouse(self, movimiento):
        if (self.activo):
            if self.click == True:
                ancho = self.obtener_ancho()
                deslizador_pos_x = self.deslizador.x - self.x
                factor = (deslizador_pos_x + ancho) / ancho - 1
                self.progreso = factor

                self.ejecutar_funciones(factor)

                self.deslizador.x = movimiento.x

                if self.deslizador.x <= self.limite_izq:
                    self.deslizador.x = self.limite_izq

                elif self.deslizador.x >= self.limite_der:
                    self.deslizador.x = self.limite_der

                self.posicion_relativa_x = self.deslizador.x - self.x

    def termino_del_click(self, noclick):
        self.click = False

    def mostrar(self):
        BaseInterfaz.mostrar(self)
        self.deslizador.transparencia = 0

    def ocultar(self):
        BaseInterfaz.ocultar(self)
        self.deslizador.transparencia = 100

    def eliminar(self):
        self.deslizador.eliminar()
#.........这里部分代码省略.........
开发者ID:DanKaLeo,项目名称:pilas,代码行数:103,代码来源:deslizador.py

示例2: Deslizador

# 需要导入模块: from pilas.actores import Actor [as 别名]
# 或者: from pilas.actores.Actor import colisiona_con_un_punto [as 别名]
class Deslizador(Actor):

    def __init__(self, x=0, y=0, ruta_barra = 'interfaz/barra.png',
                                 ruta_deslizador = 'interfaz/deslizador.png'):

        self.deslizador = None
        Actor.__init__(self, ruta_barra, x=x, y=y)
        self.deslizador = Actor(ruta_deslizador, self.x, self.y)
        self.centro = ('izquierda', 'centro')
        
        self.click = False
        
        pilas.eventos.click_de_mouse.conectar(self.click_del_mouse)
        pilas.eventos.mueve_mouse.conectar(self.movimiento_del_mouse)
        pilas.eventos.termina_click.conectar(self.termino_del_click)

        self.progreso = 0
        self.posicion_relativa_x = 0

        self.funciones = []

        # establecemos posicion inicial
        self.x = x
        self.y = y

    def set_transparencia(self, nuevo_valor):
        self.transparencia = nuevo_valor
        self.deslizador.transparencia = nuevo_valor

    def definir_posicion(self, x, y):
        self.limite_izq = self.x
        self.limite_der = self.x + self.obtener_ancho()

        self._actor.definir_posicion(x, y)
        if self.deslizador:
            self.deslizador.definir_posicion(x + self.posicion_relativa_x, y)

    def conectar(self, f):
        self.funciones.append(f)        

    def desconectar(self, f):
        self.funciones.remove(f)

    def ejecutar_funciones(self, valor):
        for i in self.funciones:
            i(valor)
    
    def click_del_mouse(self, click):
 
        if self.deslizador.colisiona_con_un_punto(click.x, click.y):
            self.click = True

    def movimiento_del_mouse(self, movimiento):
        if self.click == True:
            ancho = self.obtener_ancho()
            factor = (self.deslizador.x + (ancho - abs(self.x))) / ancho - 1
            self.progreso = factor
            
            self.ejecutar_funciones(factor)

            self.deslizador.x = movimiento.x

            if self.deslizador.x <= self.limite_izq:
                self.deslizador.x = self.limite_izq

            elif self.deslizador.x >= self.limite_der:
                self.deslizador.x = self.limite_der

            self.posicion_relativa_x = self.deslizador.x - self.x
                

    def termino_del_click(self, noclick):
        self.click = False
开发者ID:sugarlabs,项目名称:pilas-activity,代码行数:75,代码来源:deslizador.py


注:本文中的pilas.actores.Actor.colisiona_con_un_punto方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。