Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame
- #from pygame.locals import * # this only causes confusion
- # import sys # you don't need this
- WIDTH = 600
- HEIGHT = 400
- # classes and function definitions should come before the main program
- class player(pygame.sprite.Sprite):
- def __init__(self):
- pygame.sprite.Sprite.__init__(self)
- self.x = 300
- self.y = 300
- self.playersprite = pygame.image.load(r'player.png')
- self.image = self.playersprite
- self.rect = self.image.get_rect()
- self.rect.center = (self.x, self.y)
- def move(self):
- keys=pygame.key.get_pressed()
- if keys[pygame.K_LEFT]:
- self.x -= 2
- if keys[pygame.K_RIGHT]:
- self.x += 2
- if keys[pygame.K_UP]:
- self.y -=2
- if keys[pygame.K_DOWN]:
- self.y += 2
- self.rect.center = (self.x, self.y)
- class Testsprite(pygame.sprite.Sprite):
- def __init__(self, position):
- pygame.sprite.Sprite.__init__(self)
- self.image = pygame.Surface((32, 32))
- self.image.fill(pygame.Color('blue'))
- self.rect = self.image.get_rect()
- self.rect.center = position
- class Camera:
- def __init__(self,width,height):
- self.camera = pygame.Rect(0,0,width,height)
- self.width = width
- self.height = height
- def apply(self, entity):
- return entity.rect.move(self.camera.topleft)
- def apply_rect(self, rect):
- return rect.move(self.camera.topleft)
- def update(self, target):
- x = -target.rect.x + int(WIDTH/2)
- y = -target.rect.y + int(HEIGHT /2)
- self.camera = pygame.Rect(x,y,self.width, self.height)
- def draw_env(player, cameraobj):
- mainsurface.blit(background, camera.apply_rect(background_rect))
- player.move()
- for sprite in all_sprites:
- mainsurface.blit(sprite.image, camera.apply(sprite))
- pygame.init()
- clock = pygame.time.Clock()
- isJump = False
- jumpCount = 0
- mainsurface = pygame.display.set_mode((WIDTH, HEIGHT))
- currentfloorlevel = 0
- run = True
- background = pygame.image.load(r"testbg.jpg")
- bgwidth = 1280
- bgheight = 720
- background_rect = background.get_rect() # this is new
- playerrender = player()
- camera= Camera(bgwidth, bgheight)
- all_sprites = pygame.sprite.Group()
- all_sprites.add(playerrender)
- all_sprites.add(Testsprite((100, 100)))
- all_sprites.add(Testsprite((140, 200)))
- all_sprites.add(Testsprite((1020, 600)))
- all_sprites.add(Testsprite((500, 400)))
- while run == True:
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- run = False
- draw_env(playerrender, camera)
- camera.update(playerrender)
- pygame.display.update()
- clock.tick(60)
- pygame.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement