Migration to Codeberg
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
import pygame, sys
|
||||
from settings import *
|
||||
from player import Player
|
||||
from car import Car
|
||||
from random import choice, randint
|
||||
from sprite import SimpleSprite, LongSprite
|
||||
|
||||
class AllSprites(pygame.sprite.Group):
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.offset = pygame.math.Vector2()
|
||||
self.bg = pygame.image.load('../graphics/main/map.png').convert()
|
||||
self.fg = pygame.image.load('../graphics/main/overlay.png').convert_alpha()
|
||||
|
||||
def customize_draw(self):
|
||||
|
||||
self.offset.x = player.rect.centerx - WINDOW_WIDTH / 2
|
||||
self.offset.y = player.rect.centery - WINDOW_HEIGHT / 2
|
||||
|
||||
display_surface.blit(self.bg,-self.offset)
|
||||
|
||||
for sprite in sorted(self.sprites(), key = lambda sprite: sprite.rect.centery):
|
||||
offset_pos = sprite.rect.topleft - self.offset
|
||||
display_surface.blit(sprite.image, offset_pos)
|
||||
|
||||
display_surface.blit(self.fg,-self.offset)
|
||||
|
||||
|
||||
# basic setup
|
||||
pygame.init()
|
||||
display_surface = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))
|
||||
pygame.display.set_caption('Frogger')
|
||||
clock = pygame.time.Clock()
|
||||
|
||||
# groups
|
||||
all_sprites = AllSprites()
|
||||
obstacle_sprites = pygame.sprite.Group()
|
||||
|
||||
# sprites
|
||||
player = Player((2062,3274),all_sprites,obstacle_sprites)
|
||||
|
||||
# car timer
|
||||
car_timer = pygame.event.custom_type()
|
||||
pygame.time.set_timer(car_timer,50)
|
||||
pos_list = []
|
||||
|
||||
# font
|
||||
score_text = 'Du hast es geschaft, super!'
|
||||
font = pygame.font.Font(None,50)
|
||||
text_surf = font.render(score_text, True, 'White')
|
||||
text_rect = text_surf.get_rect(center = (WINDOW_WIDTH / 2, WINDOW_HEIGHT / 2))
|
||||
|
||||
# sprite setup
|
||||
for file_name,pos_list in SIMPLE_OBJECTS.items():
|
||||
surf = pygame.image.load(f'../graphics/objects/simple/{file_name}.png').convert_alpha()
|
||||
for pos in pos_list:
|
||||
SimpleSprite(surf, pos, [all_sprites,obstacle_sprites])
|
||||
|
||||
for file_name,pos_list in LONG_OBJECTS.items():
|
||||
surf = pygame.image.load(f'../graphics/objects/long/{file_name}.png').convert_alpha()
|
||||
for pos in pos_list:
|
||||
LongSprite(surf, pos, [all_sprites,obstacle_sprites])
|
||||
|
||||
# game loop
|
||||
while True:
|
||||
|
||||
# event loop
|
||||
for event in pygame.event.get():
|
||||
if event.type == pygame.QUIT:
|
||||
pygame.quit()
|
||||
sys.exit()
|
||||
if event.type == car_timer:
|
||||
random_pos = choice(CAR_START_POSITIONS)
|
||||
if random_pos not in pos_list:
|
||||
pos_list.append(random_pos)
|
||||
pos = (random_pos[0],random_pos[1] + randint(-8,8))
|
||||
Car(pos,[all_sprites,obstacle_sprites])
|
||||
if len(pos_list) >5:
|
||||
del pos_list[0]
|
||||
|
||||
# delta time
|
||||
dt = clock.tick() / 1000
|
||||
|
||||
|
||||
if player.pos.y >= 1180:
|
||||
# update
|
||||
all_sprites.update(dt)
|
||||
|
||||
# draw
|
||||
all_sprites.customize_draw()
|
||||
else:
|
||||
display_surface.fill('teal')
|
||||
display_surface.blit(text_surf,text_rect)
|
||||
|
||||
# update the display surface -> drawing the frame
|
||||
pygame.display.update()
|
||||
Reference in New Issue
Block a user