Advertisement
Guest User

MoverDemo

a guest
Nov 24th, 2014
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.20 KB | None | 0 0
  1. from math import sqrt
  2. import pygame
  3. from pygame.locals import *
  4. pygame.init()
  5.  
  6. screen = pygame.display.set_mode((640,480))
  7. pygame.display.set_caption('demo')
  8.  
  9. red = pygame.Color(255,0,0)
  10. green = pygame.Color(0,255,0)
  11. blue = pygame.Color(0,0,255)
  12. whiteColor = pygame.Color(255,255,255)
  13.  
  14. click = 1
  15. p1 = (-5,-5)
  16. p2 = (-5,-5)
  17.  
  18. movers = []
  19.  
  20. class Mover:
  21.  
  22.    
  23.    
  24.     def __init__(self, x, y):
  25.         self.canMove = False
  26.         self.xStart = x
  27.         self.yStart = y
  28.         self.xPos = x
  29.         self.yPos = y
  30.  
  31.     def finalPoint(self, x, y):
  32.         MOVE_SPEED = 4
  33.         self.xEnd = x
  34.         self.yEnd = y
  35.         distance = sqrt((self.xStart-self.xEnd)*(self.xStart-self.xEnd)+(self.yStart-self.yEnd)*(self.yStart-self.yEnd)) #Distance formula
  36.  
  37.         self.xChange = ((self.xStart-self.xEnd)*(MOVE_SPEED))/(distance)
  38.         self.yChange = ((self.yStart-self.yEnd)*(MOVE_SPEED))/(distance)
  39.         self.canMove = True
  40.  
  41.     def move(self):
  42.         self.xPos -= self.xChange
  43.         self.yPos -= self.yChange
  44.        
  45.  
  46. while True:
  47.     screen.fill(whiteColor)
  48.  
  49.     pygame.draw.circle(screen, blue, (p1[0],p1[1]),5,0)
  50.     pygame.draw.circle(screen, red, (p2[0],p2[1]),5,0)
  51.  
  52.     for mover in movers:
  53.         if mover.canMove:
  54.             mover.move()
  55.             pygame.draw.circle(screen, green, (mover.xPos,mover.yPos),5,0)
  56.  
  57.     for event in pygame.event.get():
  58.         if event.type == QUIT:
  59.             pygame.quit()
  60.             sys.exit()
  61.         elif event.type == MOUSEMOTION:
  62.             mousex, mousey = event.pos
  63.         elif event.type == MOUSEBUTTONUP:
  64.             mousex, mousey = event.pos
  65.             if event.button in (1,2,3):
  66.                 if click == 1:
  67.                     movers.append(Mover(mousex,mousey))
  68.                     p2 = (-5,-5)
  69.                     p1 = (mousex,mousey)
  70.                     click = 2
  71.                 elif click == 2:
  72.                     p2 = (mousex,mousey)
  73.                     movers[len(movers)-1].finalPoint(mousex,mousey)
  74.                     click = 1
  75.  
  76.         elif event.type == KEYDOWN:
  77.             if event.key == K_ESCAPE:
  78.                 pygame.event.post(pygame.event.Event(QUIT))
  79.  
  80.     pygame.display.update()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement