Exemple #1
0
class Viewport(object):
    def __init__(self, w, h, worldW, worldH):
        self.position = Position(0,0)
        self.worldW = worldW
        self.worldH = worldH
        self.redraw(w,h)

    def getX(self):
        return self.position.getX()

    def getY(self):
        return self.position.getY()

    def getX2(self):
        return self.position.getX() + self.w

    def getY2(self):
        return self.position.getY() + self.h

    def redraw(self, w, h):
        self.w = w
        self.h = h
        self.focusX = w/2
        self.focusY = h/2
        self.maxX = self.worldW - self.w
        self.maxY = self.worldH - self.h

    def move(self, centerx, centery):
        minx = self.position.x + self.focusX
        miny = self.position.y + self.focusY
        if centerx < minx:
            self.position.x = self.position.x - (minx-centerx)
        if centery < miny:
            self.position.y = self.position.y - (miny-centery)
        if centerx > minx:
            self.position.x = self.position.x + (centerx - minx)
        if centery > miny:
            self.position.y = self.position.y + (centery - miny)
        self.clamp()

    def clamp(self):
        if self.position.x < 0:
            self.position.x = 0
        if self.position.y < 0:
            self.position.y = 0
        if self.position.x > self.maxX:
            self.position.x = self.maxX
        if self.position.y > self.maxY:
            self.position.y = self.maxY
Exemple #2
0
 def __init__(self, w, h, worldW, worldH):
     self.position = Position(0,0)
     self.worldW = worldW
     self.worldH = worldH
     self.redraw(w,h)