import pygame
WIDTH = 500
HEIGHT = 500
FPS = 60
#define colors
#colors are defined in red,green,blue
#values from 0-255
WHITE = (255,255,255)
BLACK = (0,0,0)
RED = (255,0,0)
GREEN = (0,255,0)
BLUE = (0,0,255)
YELLOW = (255,255,0)
pygame.init()
pygame.mixer.init()
screen = pygame.display.set_mode((WIDTH,HEIGHT))
clock = pygame.time.Clock()
class Player(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface((50,40))
self.image.fill(GREEN)
self.rect = self.image.get_rect()
self.rect.centerx = 30
self.rect.centery = 30
self.speedx = 0
self.speedy = 0
self.ticker = 0
def update(self):
speed = 5
self.speedx = 0
self.speedy = 0
keystate = pygame.key.get_pressed()
if keystate[pygame.K_LEFT]:
self.speedx = -speed
if keystate[pygame.K_RIGHT]:
self.speedx = speed
if keystate[pygame.K_UP]:
self.speedy = -speed
self.ticker += 1 #NEW CODE
if keystate[pygame.K_DOWN]:
self.speedy = speed
self.ticker += 1 #NEW CODE
self.rect.x += self.speedx
#HERE IS WHERE WE
self.ticker = self.ticker % 20
if self.ticker >9:
self.image.fill(GREEN)
else:
self.image.fill(BLUE)
#HERE WE ARE GOING TO WRAP AROUND THE EDGES IF THE SPRITE
#GOES OFF THE SCREEN
#REMEMBER THAT X IS LEFT TO RIGHT AND Y IS UP AND DOWN
if self.rect.x > WIDTH:
self.rect.x = 0
if self.rect.x < 0:
self.rect.x = WIDTH
self.rect.y += self.speedy
if self.rect.y > HEIGHT:
self.rect.y = 0
if self.rect.y < 0:
self.rect.y = HEIGHT
all_sprites = pygame.sprite.Group()
james = Player()
all_sprites.add(james)
running = True
while running:
clock.tick(FPS)
pygame.event.get()
all_sprites.update()
screen.fill(BLACK)
all_sprites.draw(screen)
pygame.display.flip()