Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame
- import random
- import sys
- import os
- from settings import *
- from gamemap import*
- from lander import*
- from os import path
- import pygame.freetype
- class System:
- def __init__(self):
- pygame.init()
- self.screen = pygame.display.set_mode((width,height))
- pygame.display.set_caption("Propulsion simulation")
- landerstuff = [pygame.image.load("assets/lander2.png"),
- pygame.image.load("assets/smoke.png")]
- pygame.display.set_icon(landerstuff[0])
- os.environ["SDL_VIDEO_CENTERED"] = "1"
- self.clock = pygame.time.Clock()
- pygame.key.set_repeat(500,100)
- self.load_data()
- def load_data(self):
- mainFolder = path.dirname(__file__)
- imgFolder = path.join(mainFolder, "Assets/")
- self.landerIMG = pygame.image.load(path.join(imgFolder, lander_IMG))
- self.landerIMG = pygame.transform.scale(self.landerIMG, (landerWidth, landerHeight))
- self.backgroundIMG = pygame.image.load(path.join(imgFolder, background_IMG)).convert_alpha()
- self.backgroundIMG = pygame.transform.scale(self.backgroundIMG, (width, height))
- self.map = Map(path.join(mainFolder, 'Maps/map.txt'))
- self.rockIMG = pygame.image.load(path.join(imgFolder, rock_IMG)).convert_alpha()
- self.rockIMG = pygame.transform.scale(self.rockIMG, (tileSize, tileSize))
- self.rockIMG2 = pygame.image.load(path.join(imgFolder, rock_IMG2)).convert_alpha()
- self.rockIMG2 = pygame.transform.scale(self.rockIMG2, (tileSize, tileSize))
- self.rockIMG3 = pygame.image.load(path.join(imgFolder, rock_IMG3)).convert_alpha()
- self.rockIMG3 = pygame.transform.scale(self.rockIMG3, (tileSize, tileSize))
- def new(self):
- self.allSprites = pygame.sprite.Group()
- self.lander = Lander(self, 10, 10)
- self.rocks = pygame.sprite.Group()
- for row, tiles in enumerate(self.map.data):
- for col, tile in enumerate(tiles):
- if tile == '1':
- Rock(self, col, row)
- if tile == "(":
- Rock2(self, col, row)
- if tile == ")":
- Rock3(self, col, row)
- self.camera = Camera(self.map.width, self.map.height)
- def run(self):
- self.playing = True
- while self.playing:
- self.dt = self.clock.tick(FPS) / 1000
- if self.dt > 60:
- self.dt == 60
- self.events()
- self.update()
- self.draw()
- def quit(self):
- pygame.quit()
- sys.exit()
- def update(self):
- self.allSprites.update()
- self.camera.update(self.lander)
- def drawGrid(self):
- for x in range(0, width, tileSize):
- pygame.draw.line(self.screen, lightgrey, (x, 0), (x, height))
- for y in range(0, height, tileSize):
- pygame.draw.line(self.screen, lightgrey, (0, y), (width, y))
- def draw(self):
- GAME_FONT = pygame.font.Font('freesansbold.ttf',15)
- self.screen.fill((BGColour))
- self.screen.blit(self.backgroundIMG,(0,0))
- text1 = str(("{:.2f}".format(self.clock.get_fps())))
- text1 = GAME_FONT.render(("FPS: "+text1), True, (255, 255, 255))
- self.screen.blit(text1, (0, 0))
- for sprite in self.allSprites:
- self.screen.blit(sprite.image, self.camera.apply(sprite))
- pygame.display.flip()
- def events(self):
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- self.quit()
- if event.type == pygame.KEYDOWN:
- if event.key == pygame.K_ESCAPE:
- self.quit()
- def startScreen(self):
- pass
- def deathScreen(self):
- pass
- g = System()
- g.startScreen()
- g.drawGrid()
- while True:
- g.new()
- g.run()
- g.startScreen()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement