Difference between revisions of "Moving shapes"
Line 26: | Line 26: | ||
Y=Y+10 | Y=Y+10 | ||
if events.type | if events.type | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==Alternatively== | ||
+ | You can make a tuple (general python data type similar to vector or array etc) for the position and size. Your player input could then manipulate the values in the tuple: | ||
+ | |||
+ | <syntaxhighlight lang=python> | ||
+ | pos = [100, 100, 20, 20] # X , Y , Width , Height | ||
+ | COLOR = (255, 0, 200) | ||
+ | BLACK = (0 , 0 , 0) | ||
+ | |||
+ | #game loop | ||
+ | while True: | ||
+ | SCREEN.fill(BLACK) | ||
+ | rect1 = pygame.Rect(pos) # use pos for the shape | ||
+ | pygame.draw.rect(SCREEN, COLOR, rect1, 1) | ||
+ | pygame.display.update() | ||
+ | for events in pygame.event.get(): #get all pygame events | ||
+ | if events.type == pygame.KEYDOWN: | ||
+ | if events.key == pygame.K_LEFT: | ||
+ | pos[0]=pos[0]-10 # pos[0] should be first item in the tuple | ||
+ | elif events.key == pygame.K_RIGHT: | ||
+ | pos[0]=pos[0]+10 # pos[0] should be first item in the tuple | ||
+ | elif events.key == pygame.K_UP: | ||
+ | pos[1]=pos[1]-10 # pos[1] should be second item in the tuple | ||
+ | elif events.key == pygame.K_DOWN: | ||
+ | pos[1]=pos[1]+10 # pos[1] should be second item in the tuple | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 08:59, 28 February 2018
Assuming you have the pygame template from one of the other pages. We can move objects by using variable to specify the X & Y coordinate. The example below does this (when the code is running, the loop will need to clear the screen, create the object and then draw it):
COLOR = (255, 0, 200)
BLACK = (0 , 0 , 0)
X=100 # X coordinate for object
Y=100 # Y coordinate for object
#game loop
while True:
SCREEN.fill(BLACK) # Clear screen
rect1 = pygame.Rect([X,Y,20,20]) # create shape
pygame.draw.rect(SCREEN, COLOR, rect1, 1) # draw shape
pygame.display.update() # update screen
#respond to player input ans change X & Y coordinates for next draw
for events in pygame.event.get(): #get all pygame events
if events.type == pygame.KEYDOWN:
if events.key == pygame.K_LEFT:
X=X-10
elif events.key == pygame.K_RIGHT:
X=X+10
elif events.key == pygame.K_UP:
Y=Y-10
elif events.key == pygame.K_DOWN:
Y=Y+10
if events.type
Alternatively
You can make a tuple (general python data type similar to vector or array etc) for the position and size. Your player input could then manipulate the values in the tuple:
pos = [100, 100, 20, 20] # X , Y , Width , Height
COLOR = (255, 0, 200)
BLACK = (0 , 0 , 0)
#game loop
while True:
SCREEN.fill(BLACK)
rect1 = pygame.Rect(pos) # use pos for the shape
pygame.draw.rect(SCREEN, COLOR, rect1, 1)
pygame.display.update()
for events in pygame.event.get(): #get all pygame events
if events.type == pygame.KEYDOWN:
if events.key == pygame.K_LEFT:
pos[0]=pos[0]-10 # pos[0] should be first item in the tuple
elif events.key == pygame.K_RIGHT:
pos[0]=pos[0]+10 # pos[0] should be first item in the tuple
elif events.key == pygame.K_UP:
pos[1]=pos[1]-10 # pos[1] should be second item in the tuple
elif events.key == pygame.K_DOWN:
pos[1]=pos[1]+10 # pos[1] should be second item in the tuple