Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. def snapToGrid(originalPos, offset, step):
  2. index = int((originalPos - offset) / step) #truncates the remainder away
  3. return index * gap + offset
  4.  
  5. def mouseMotion(self, event):
  6. pixelPos = event.pos[Y]
  7. odePos = Scroll.pixelPosToOdePos(pixelPos)
  8. self.tool.positionChanged(odePos)
  9.  
  10. def pixelPosToOdePos(pixelPos):
  11. offsetPixelPos = pixelPos - self.viewPortOffset
  12. return pixelsToOde(offsetPixelPos)
  13.  
  14. def pixelsToOde(pixels):
  15. return float(pixels) / float(pixels_in_an_ode_unit)
  16.  
  17. def positionChanged(self, newPos):
  18. self.snappedPos = snapToGrid(originalPos, Y_OFFSET, Y_STEP)
  19.  
  20. #in Tool
  21. def render(self, screen):
  22. Scroll.render(screen, self.image, self.snappedPos)
  23.  
  24. #in Scroll
  25. def render(self, screen, image, odePos):
  26. pixelPos = self.odePosToPixelPos(odePos)
  27. screen.blit(image, pixelPos) # screen is a surface from pygame for the curious
  28.  
  29. def odePosToPixelPos(self.odePos):
  30. offsetPos = odePos + self.viewPortOffset
  31. return odeToPixels(offsetPos)
  32.  
  33. def odeToPixels(odeUnits):
  34. return int(odeUnits * pixels_in_an_ode_unit)
  35.  
  36. def positionChanged(self, newPos):
  37. self.snappedPos = snapToGrid(newPos, Y_OFFSET, Y_STEP)
  38.  
  39. def snapToGrid(originalPos, offset, step):
  40. EPS = 1e-6
  41. index = int((originalPos - offset) / step + EPS) #truncates the remainder away
  42. return index * gap + offset
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement