Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from pygame import *
- class GameSprite(sprite.Sprite):
- def __init__(self, player_image, player_x, player_y, player_speed):
- sprite.Sprite.__init__(self)
- self.image = transform.scale(image.load(player_image), (55, 55))
- self.speed = player_speed
- self.rect = self.image.get_rect()
- self.rect.x = player_x
- self.rect.y = player_y
- def reset(self):
- window.blit(self.image, (self.rect.x, self.rect.y))
- class Player(GameSprite):
- def update(self):
- keys = key.get_pressed()
- if keys[K_LEFT] and self.rect.x > 5:
- self.rect.x -= self.speed
- if keys[K_RIGHT] and self.rect.x < win_width - 80:
- self.rect.x += self.speed
- if keys[K_UP] and self.rect.y > 5:
- self.rect.y -= self.speed
- if keys[K_DOWN] and self.rect.y < win_height - 80:
- self.rect.y += self.speed
- class Enemy(GameSprite):
- side = "left"
- def update(self):
- if self.rect.x <= 410:
- self.side = "right"
- if self.rect.x >= win_width - 85:
- self.side = "left"
- if self.side == "left":
- self.rect.x -= self.speed
- else:
- self.rect.x += self.speed
- class Wall(sprite.Sprite):
- def __init__(
- self, color_1, color_2, color_3, wall_x, wall_y, wall_width, wall_height
- ):
- sprite.Sprite.__init__(self)
- self.color_1 = color_1
- self.color_2 = color_2
- self.color_3 = color_3
- self.width = wall_width
- self.height = wall_height
- self.image = Surface([self.width, self.height])
- self.image.fill((color_1, color_2, color_3))
- self.rect = self.image.get_rect()
- self.rect.x = wall_x
- self.rect.y = wall_y
- def draw_wall(self):
- draw.rect(
- window, (self.color_1, self.color_2, self.color_3),
- (self.rect.x, self.rect.y, self.width, self.height)
- )
- win_width = 700
- win_height = 500
- display.set_caption("Labyrinth")
- window = display.set_mode((win_width, win_height))
- w1 = Wall(0, 0, 0, 100, 100, 300, 10)
- w2 = Wall(0, 0, 0, 410, 100, 10, 350)
- hero = Player('hero.png', 5, win_height - 80, 5)
- monster = Enemy('cyborg.png', win_width - 80, 200, 5)
- final_sprite = GameSprite('pac-1.png', win_width - 85, win_height - 100, 0)
- finish = False
- run = True
- while run:
- time.delay(50)
- for e in event.get():
- if e.type == QUIT:
- run = False
- if not finish:
- window.fill((255, 255, 255))
- w1.draw_wall()
- w2.draw_wall()
- hero.update()
- monster.update()
- hero.reset()
- monster.reset()
- final_sprite.reset()
- # if touching
- # game is over, so finish = True
- # tell the program what picture to use. So, img = [insert image name]
- # add background colour if using transparent picture!
- # stick the image on using blit
- if sprite.collide_rect(hero, monster) or sprite.collide_rect(hero, w1) or sprite.collide_rect(hero, w2) or sprite.collide_rect(hero, w3) or sprite.collide_rect(hero, w4):
- finish = True
- img = image.load('game-over_1.png')
- d = img.get_width() // img.get_height()
- window.fill((255, 255, 255))
- window.blit(transform.scale(img, (win_height * d, win_height)), (90, 0))
- if sprite.collide_rect(hero, final_sprite):
- finish = True
- img = image.load('thumb.jpg')
- window.fill((255, 255, 255))
- window.blit(transform.scale(img, (win_width, win_height)), (0, 0))
- display.update()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement