Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def snapToGrid(originalPos, offset, step):
- index = int((originalPos - offset) / step) #truncates the remainder away
- return index * gap + offset
- def mouseMotion(self, event):
- pixelPos = event.pos[Y]
- odePos = Scroll.pixelPosToOdePos(pixelPos)
- self.tool.positionChanged(odePos)
- def pixelPosToOdePos(pixelPos):
- offsetPixelPos = pixelPos - self.viewPortOffset
- return pixelsToOde(offsetPixelPos)
- def pixelsToOde(pixels):
- return float(pixels) / float(pixels_in_an_ode_unit)
- def positionChanged(self, newPos):
- self.snappedPos = snapToGrid(originalPos, Y_OFFSET, Y_STEP)
- #in Tool
- def render(self, screen):
- Scroll.render(screen, self.image, self.snappedPos)
- #in Scroll
- def render(self, screen, image, odePos):
- pixelPos = self.odePosToPixelPos(odePos)
- screen.blit(image, pixelPos) # screen is a surface from pygame for the curious
- def odePosToPixelPos(self.odePos):
- offsetPos = odePos + self.viewPortOffset
- return odeToPixels(offsetPos)
- def odeToPixels(odeUnits):
- return int(odeUnits * pixels_in_an_ode_unit)
- def positionChanged(self, newPos):
- self.snappedPos = snapToGrid(newPos, Y_OFFSET, Y_STEP)
- def snapToGrid(originalPos, offset, step):
- EPS = 1e-6
- index = int((originalPos - offset) / step + EPS) #truncates the remainder away
- return index * gap + offset
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement