diff --git a/pharaoh/__main__.py b/pharaoh/__main__.py index 0b9c3f6..bd1b989 100644 --- a/pharaoh/__main__.py +++ b/pharaoh/__main__.py @@ -1,5 +1,7 @@ import pygame, random from pygame.locals import * +from engine.game import start_sequence +import time NAME = 'Pharaoh' @@ -25,50 +27,43 @@ """ Map constants """ TILESIZE = 20 -WIDTH = 30 -HEIGHT = 20 - -gamemap = [[DIRT for w in range(WIDTH)] for h in range(HEIGHT)] -position = [0,0] +WIDTH = 500 +HEIGHT = 500 +POSITION = [0,0] """ Main Entry """ def init() -> None: pygame.init() - screen = pygame.display.set_mode((WIDTH*TILESIZE, HEIGHT*TILESIZE)) + screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption(NAME) - -# screen.fill((255, 255, 255)) - for rw in range(HEIGHT): - for cl in range(WIDTH): - rnum = random.randint(0,15) - if rnum == 0: - tile = NONE - elif rnum == 1 or rnum == 2: - tile = WATER - elif rnum >= 3 and rnum <= 7: - tile = GRASS - else: - tile = DIRT - - gamemap[rw][cl] = tile - done = False - """ Event Loop """ - while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: - done = True -# elif event.type == KEYDOWN: -# if (event.key) == K_RIGHT: -# position[0] += 1 + pygame.quit() + + start_splash(screen) + start_sequence() + + +def start_splash(screen): + """ Title """ + titlefont = pygame.font.SysFont("comicsansms", 72) + title = titlefont.render("Pharaoh", True, BROWN) + screen.blit(title, (250 - title.get_width() // 2, 200 - title.get_height() // 2)) + + """ Pyramid """ + pygame.draw.polygon(screen, BROWN, ( (25, 400), (250, 250), (475,400), 0)) - for row in range(HEIGHT): - for column in range(WIDTH): - pygame.draw.rect(screen, colors[gamemap[row][column]], (column*TILESIZE, row*TILESIZE,TILESIZE,TILESIZE)) + """ Credits """ + footfont = pygame.font.SysFont("comicsansms", 14) + footer = footfont.render("Created by: Brock Ramsey & Jahan Addison", True, WHITE) + screen.blit(footer, (250 - footer.get_width() // 2, 425 - footer.get_height() // 2)) + + pygame.display.update() + time.sleep(5) - pygame.display.update() if __name__ == '__main__': init() diff --git a/pharaoh/engine/game.py b/pharaoh/engine/game.py new file mode 100644 index 0000000..979ffa9 --- /dev/null +++ b/pharaoh/engine/game.py @@ -0,0 +1,18 @@ +import player.identity + + +""" Game Handlers """ + +def start_sequence(screen): + engine_loop() + + +def engine_loop(): + handle_sequences() + + +def handle_sequences(): + gender = player.identity.receive_gender(screen) + name = player.identity.receive_name(screen) + ident = player.identity.establish_ident(gender, name) + print("Welcome, " + ident.name) diff --git a/pharaoh/lib/inputs.py b/pharaoh/lib/inputs.py new file mode 100644 index 0000000..bb0a09b --- /dev/null +++ b/pharaoh/lib/inputs.py @@ -0,0 +1,42 @@ +import pygame +from pygame.locals import * + +""" Input handlers """ + +def get_key(): + while 1: + event = pygame.event.poll() + if event.type == KEYDOWN: + return event.key + else: + pass + + +def input_box(screen, message): + "Print a message in a box in the middle of the screen" + font = pygame.font.Font(None,18) + pygame.draw.rect(screen, (0,0,0), + ((screen.get_width() / 2) - 100, + (screen.get_height() / 2) - 10, + 200,20), 0) + pygame.draw.rect(screen, (255,255,255), + ((screen.get_width() / 2) - 102, + (screen.get_height() / 2) - 12, + 204,24), 1) + if len(message) != 0: + screen.blit(font.render(message, 1, (255,255,255)), + ((screen.get_width() / 2) - 100, (screen.get_height() / 2) - 10)) + pygame.display.update() + + +def parse_keys(): + while 1: + inkey = get_key() + if inkey == K_BACKSPACE: + current_string = current_string[0:-1] + elif inkey == K_RETURN: + break + elif inkey == K_MINUS: + current_string.append("_") + elif inkey <= 127: + current_string.append(chr(inkey)) diff --git a/pharaoh/player/identity.py b/pharaoh/player/identity.py new file mode 100644 index 0000000..b4e0f35 --- /dev/null +++ b/pharaoh/player/identity.py @@ -0,0 +1,33 @@ +from pygame.locals import * +import pygame, string +import lib.inputs + +""" Player Identity """ + +class Identity: + def __init__(self, gender: str, name: str): + self.gender = gender + self.name = name + + def gender(self) -> str: + return self.gender + + def name(self) -> str: + return self.name + + +def receive_gender(screen) -> str: + gender = '' + lib.inputs.input_box(screen, "What is your gender? " + gender) + return gender + + +def receive_name(screen) -> str: + name = '' + lib.inputs.input_box(screen, "What is your name? " + name) + return name + + +def establish_ident(gender: str, name: str) -> Identity: + ident = Identity(gender, name) + return ident