Ejemplo n.º 1
0
    def update(self, render=None):
        if not render:
            render = Updatable.getRender(self)

        if render and render is not self:
            if self._changeWindow:
                self.relativeSizeOnView = self.relativeSizeOnView
                self.relativeSizeOnView = self.relativeSizeOnView
                if self._isStaticToView:
                    self.setPosStatic(self._posStatic, False)

            if self.isDrawing and render.isInView(self.getRect(True)):
                if type(self.clipRect) is sf.Rectangle:
                    if self.clipChild:
                        render.clipping(self.draw, self.clipRect, self.getPos(False), super().update)
                    else:
                        render.clipping(self.draw, self.clipRect, self.getPos(False))
                        super().update(render)
                else:
                    self.draw(render)
                    super().update(render)
            else:
                super().update(render)
            
        else:
            super().update(render)
Ejemplo n.º 2
0
 def setAbsolutePosOnView(self, pos, withOrigin=True):
     render = Updatable.getRender(self)
     origin = sf.Vector2(0, 0)
     render = self.getRender()
     if render:
         self.setPos(pos + render.getViewPosition(), withOrigin)
     else:
         self.setPos(pos, withOrigin)
Ejemplo n.º 3
0
    def getSizeOnScreen(self, withClipping=False):
        scale = sf.Vector2(1,1)
        render = Updatable.getRender(self)

        if render is not self:
            if render.view.size.x != 0 and render.view.size.y != 0:
                scale = render.sizeOnScreen / render.view.size * render.viewport.size

        return self.getSize(withClipping) * scale
Ejemplo n.º 4
0
 def howFocus(self):
     return isinstance(self._event, EventManager) and Updatable.getRender(self).isInView(self.rect) and \
             self._event.isMouseInRect(self.getRectOnScreen(True))
Ejemplo n.º 5
0
 def _setRelativeSizeOnView(self, scale, resetOrigin = True):
     render = Updatable.getRender(self)
     if render and scale:
         self._relativePositionOnView = None
         self.setSize(render.getViewSizeWithViewportWithZoom() * scale, resetOrigin)
     self._relativePositionOnView = scale
Ejemplo n.º 6
0
 def _setRelativePositionOnView(self, scale):
     render = Updatable.getRender(self)
     if render and scale:
         self._relativePositionOnView = None
         self.pos = render.getViewSizeWithViewportWithZoom() * scale
     self._relativePositionOnView = scale
Ejemplo n.º 7
0
 def getSizeOnView(self, withClipping=False):
     render = Updatable.getRender(self)
     if render:
         return self.getSize(withClipping) * render.size / render.view.size * render.viewport.size
     else:
         return self.getSize(withClipping)
Ejemplo n.º 8
0
 def getPosOnScreen(self, withOrigin=True, withClipping=False):
     render = Updatable.getRender(self)
     if render is not None:
         return render.convertTargetPointToScreenCoord(self.getPos(withOrigin, withClipping))
     else:
         return self.getPos(withOrigin, withClipping)
Ejemplo n.º 9
0
 def setPosOnScreen(self, position, withOrigin=True):
     render = Updatable.getRender(self)
     if not self._isStaticToView and render:
         self.setPos(render.convertScreenCoordToTargetPoint(position), withOrigin)
     elif not render and not self._isStaticToView:
         self.setPos(position, withOrigin)