Difference between revisions of "Moving shapes"
(Created page with "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...") |
|||
(2 intermediate revisions by the same user not shown) | |||
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> |
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