Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from math import sqrt
- import pygame
- from pygame.locals import *
- pygame.init()
- screen = pygame.display.set_mode((640,480))
- pygame.display.set_caption('demo')
- red = pygame.Color(255,0,0)
- green = pygame.Color(0,255,0)
- blue = pygame.Color(0,0,255)
- whiteColor = pygame.Color(255,255,255)
- click = 1
- p1 = (-5,-5)
- p2 = (-5,-5)
- movers = []
- class Mover:
- def __init__(self, x, y):
- self.canMove = False
- self.xStart = x
- self.yStart = y
- self.xPos = x
- self.yPos = y
- def finalPoint(self, x, y):
- MOVE_SPEED = 4
- self.xEnd = x
- self.yEnd = y
- distance = sqrt((self.xStart-self.xEnd)*(self.xStart-self.xEnd)+(self.yStart-self.yEnd)*(self.yStart-self.yEnd)) #Distance formula
- self.xChange = ((self.xStart-self.xEnd)*(MOVE_SPEED))/(distance)
- self.yChange = ((self.yStart-self.yEnd)*(MOVE_SPEED))/(distance)
- self.canMove = True
- def move(self):
- self.xPos -= self.xChange
- self.yPos -= self.yChange
- while True:
- screen.fill(whiteColor)
- pygame.draw.circle(screen, blue, (p1[0],p1[1]),5,0)
- pygame.draw.circle(screen, red, (p2[0],p2[1]),5,0)
- for mover in movers:
- if mover.canMove:
- mover.move()
- pygame.draw.circle(screen, green, (mover.xPos,mover.yPos),5,0)
- for event in pygame.event.get():
- if event.type == QUIT:
- pygame.quit()
- sys.exit()
- elif event.type == MOUSEMOTION:
- mousex, mousey = event.pos
- elif event.type == MOUSEBUTTONUP:
- mousex, mousey = event.pos
- if event.button in (1,2,3):
- if click == 1:
- movers.append(Mover(mousex,mousey))
- p2 = (-5,-5)
- p1 = (mousex,mousey)
- click = 2
- elif click == 2:
- p2 = (mousex,mousey)
- movers[len(movers)-1].finalPoint(mousex,mousey)
- click = 1
- elif event.type == KEYDOWN:
- if event.key == K_ESCAPE:
- pygame.event.post(pygame.event.Event(QUIT))
- pygame.display.update()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement