Add items with min_destination and connect to settings

main
Samuel Zielke 7 months ago
parent fd37856e9f
commit 284e58e28e

@ -3,13 +3,11 @@ import random
import settings
class Item(pygame.sprite.Sprite):
def __init__(self):
def __init__(self, x, y):
super().__init__()
self.image = pygame.image.load(settings.world.items.beer.img).convert_alpha()
self.image = pygame.transform.scale(self.image, settings.world.items.beer.size)
self.rect = self.image.get_rect()
self.rect.x = random.randint(200, 12800)
self.rect.y = random.randint(100, 500)
self.rect = self.image.get_rect(topleft=(x, y))
print(f'create item {self.rect}') if settings.DEBUG else None
def draw(self, screen, camera_offset):

@ -1,8 +1,10 @@
import random
# Einstellungen
SCREEN_WIDTH = 1280
SCREEN_HEIGHT = 720
FPS = 60
DEBUG = True
DEBUG = False
Mute = True
START_POINT = "world" # world, menu
BACKGROUND_IMG = "../assets/backgrounds/background_III.png"
@ -32,6 +34,7 @@ class world:
crop_scale_right = 1400
class obstacle:
amount = random.randint(4, 8)
box = "../assets/obstacles/box.png"
class items:

@ -9,20 +9,23 @@ class World:
def __init__(self, screen):
# Hindernisse
self.obstacles = []
obstacle_count = random.randint(4, 8)
min_distance = 800 # Mindestabstand zwischen Hindernissen
while len(self.obstacles) < obstacle_count:
while len(self.obstacles) < settings.world.obstacle.amount:
x = random.randint(500, 12500)
# Prüfen, ob der neue x weit genug entfernt ist von bestehenden Hindernissen
if all(abs(x - obs.rect.x) > min_distance for obs in self.obstacles):
if all(abs(x - obs.rect.x) > 800 for obs in self.obstacles):
self.obstacles.append(Obstacle(x, 500, settings.world.obstacle.box))
# ITEMS
self.items = []
for _ in range(settings.world.items.amount): # Erzeuge 5 Items
item = Item()
self.items.append(item)
while len(self.items) < settings.world.items.amount:
x = random.randint(200, 12800)
y = random.randint(100, 500)
# Prüfen, ob der neue x weit genug entfernt ist von bestehenden Hindernissen
if all(abs(x - item.rect.x) > 200 for item in self.items):
self.items.append(Item(x, y))
# Welt Generierung
self.screen = screen
@ -54,7 +57,7 @@ class World:
# print(score)
if score != 0:
self.save_score += 10
print(self.save_score)
print(self.save_score) if settings.DEBUG else None
bg_offset = int(camera_offset * 0.3) # Parallax: langsamer bewegen
self.screen.blit(self.background, (-bg_offset, 0))

Loading…
Cancel
Save

Powered by TurnKey Linux.