Beispiel #1
0
 def __init__(self, screen, col_life):
     x = 0
     y = 770
     self.col_life = col_life
     self.lis = list()
     for i in range(20):
         self.lis.append(floor_class.Floor(x, y, screen))
         x += 75
     self.lis.append(start.Start(75, 748, screen))
     self.lis.append(fire.Fire(200, 737, screen))
     self.lis.append(fire.Fire(900, 737, screen))
     self.lis.append(fire.Fire(981, 737, screen))
     self.lis.append(cube.Cube(500, 684, screen))
     self.lis.append(cube.Cube(586, 684, screen))
     self.lis.append(cube.Cube(586, 598, screen))
     self.lis.append(cube.Cube(672, 684, screen))
     self.lis.append(cube.Cube(672, 598, screen))
     self.lis.append(cube.Cube(758, 684, screen))
     self.lis.append(fire.Fire(758, 655, screen))
     self.lis.append(flat.Flat(930, 500, screen))
     if self.col_life == 3:
         self.lis.append(life.Life(230, 30, screen))
         self.lis.append(life.Life(130, 30, screen))
         self.lis.append(life.Life(30, 30, screen))
     elif self.col_life == 2:
         self.lis.append(life.Life(130, 30, screen))
         self.lis.append(life.Life(30, 30, screen))
     elif self.col_life == 1:
         self.lis.append(life.Life(30, 30, screen))
     self.lis.append(die_player.DPlayer(2000, 2000, screen))
     self.lis.append(green_door.GDoor(2000, 2000, screen))
     self.lis.append(door.Door(1300, 581, screen))
     self.lis.append(green_button.GreenButton(2000, 2000, screen))
     self.lis.append(red_button.RedButton(1005, 452, screen))
     self.lis.append(player_class.Player(100, 465, screen))
Beispiel #2
0
def initialize_player():

    player_name = input("\nWhat is the player's name? ")

    display_message(f"HI, {player_name.upper()}")

    starting_amount_invalid = True

    while starting_amount_invalid:

        player_starting_amount = input(
            "\nHow much money would you like to start with? ")

        try:
            player_starting_amount = int(player_starting_amount)
        except:
            print(
                "\nOops: Entered amount was not an integer. Please try again.")
            continue

        starting_amount_invalid = False

    display_message(f"CHANGING ${player_starting_amount}")

    return player_class.Player(player_name, player_starting_amount)
Beispiel #3
0
 def recv_anything(self):
     try:
         message = s.recv(1024).decode()
         if 'new' in message:
             data = eval(message[9:])
             player_num = int(message[8:9])
             # data = [eval(i) for i in data]
             print(data)
             if player_num > len(player_class.player_list):
                 key_set = key_map_sets.control_map[data[-1][1]]()
                 img = pygame.image.load('images/panzer{0}.png'.format(
                     data[-1][-1])).convert_alpha()
                 pos = data[-1][3][0]
                 dire = data[-1][3][1]
                 new_player = player_class.Player(data[-1][1],
                                                  key_set.control,
                                                  key_set.key_map,
                                                  data[-1][0], img)
                 new_player.ready_panzer(pos, dire, self.clock, self)
         elif 'restart' in message:
             self.__init__(self.clock, "maps/map01.txt")
             return False
         else:
             data = eval(message)
             self.keys = data
             return True
     except:
         pass
Beispiel #4
0
 def create_player(self):
     player = player_class.Player(self.name_field.get(),
                                  int(self.age_field.get()),
                                  self.gender_field.get(),
                                  self.path_to_photo)
     self.window.create_main_frame(player)
     self.window.activate_frame('main')
Beispiel #5
0
def create_world():
    global background
    global player
    global monsters
    global mid_monsters
    global player_missile
    global player_protect_missile
    global obstacle
    global player_special_missile
    global player_special_missile_s
    global collisionRectShow
    global textUI
    global boss_monster

    collisionRectShow = False

    background = Background()
    player = player_class.Player()
    player.setShowCheck(collisionRectShow)
    monsters = [enemy_class.Monster() for i in range(5)]
    mid_monsters = [enemy_class.MidMonster() for i in range(2)]
    boss_monster = enemy_class.BossMonster()
    player_missile = player_class.PlayerMissile()
    player_missile.setShowCheck(collisionRectShow)
    player_protect_missile = player_class.PlayerMissile_S()
    player_protect_missile.setShowCheck(collisionRectShow)
    obstacle = obstacle_class.Obstacle()
    player_special_missile = player_class.SpecialMissile()
    player_special_missile.setShowCheck(collisionRectShow)
    player_special_missile_s = player_class.SpecialMissile_S()
    player_special_missile_s.setShowCheck(collisionRectShow)
    textUI = textUI_class.TextUI()
Beispiel #6
0
def main():

    player = player_class.Player('Phil')
    player.bgImage = pygame.image.load(
        'images/bg/default.bmp'
    )  #this is filled in through playing normally, so placeholder here
    event = event_list.innkeeper_generic
    playEvent(player, event)
Beispiel #7
0
 def __init__(self, screen, clock):
     room_obj.Room.__init__(self,
                            screen,
                            'MultiRoom',
                            clock=clock,
                            caption="PanzerGame")
     # key_set = key_map_sets.KeySetOne()
     # p = player_class.Player('KeySetOne', key_set.control, key_set.key_map, "p1", None)
     key_set = key_map_sets.KeySetTwo()
     p = player_class.Player('KeySetTwo', key_set.control, key_set.key_map,
                             "p2", None)
     message2 = '("' + p.name + '",' + '"' + p.key_set + '")'
     s.sendto(message2.encode(), server)
     data = []
     player_num = 1
     while True:
         try:
             message = s.recv(1024).decode()
             player_num = int(message[8:9])
             data = eval(message[9:])
             break
         except:
             pass
     print(data)
     # "maps/map{0}.txt".format(data[0][1])
     # data = [['name', 'key_set_name', 'full_map_add', (pos, dire), img_number], [...], ...]
     map_address = data[0][2]
     print(map_address)
     map_obj.load(map_address)
     for i in range(0, player_num):
         img = pygame.image.load('images/panzer{0}.png'.format(
             data[i][-1])).convert_alpha()
         if i != player_num - 1:
             key_set = key_map_sets.control_map[data[i][1]]()
             player = player_class.Player(data[i][1], key_set.control,
                                          key_set.key_map, data[i][0], img)
         else:
             player = player_class.player_list[0]
             player.panzer_img = img
         pos = data[i][3][0]
         dire = data[i][3][1]
         player.ready_panzer(pos, dire, self.clock, self)
     self.mouse = tools.Mouse()
     self.timer = timer_obj.Timer(3)  # 3 sec
     self.keys = [False for i in range(400)]
Beispiel #8
0
def mainMenuScreen():

    while True:
        select = None

        common_functions.standardEventHandling()

        cfg.DISPLAYSURF.fill(cfg.BLACK)

        mainMenuBackSurf = pygame.Surface((250, 280))
        mainMenuBackRect = mainMenuBackSurf.get_rect()
        mainMenuBackRect.midtop = (cfg.WINWIDTH / 2, cfg.WINHEIGHT / 8)
        cfg.DISPLAYSURF.blit(mainMenuBackSurf, mainMenuBackRect)
        pygame.draw.rect(cfg.DISPLAYSURF, cfg.BLUE, mainMenuBackRect, 2)

        x = mainMenuBackRect.centerx
        y = mainMenuBackRect.top + 20
        for i in cfg.MAINMENUOPTIONS:
            optionSurf = cfg.AR28.render(i, True, cfg.WHITE)
            optionRect = optionSurf.get_rect()
            optionRect.midtop = (x, y)
            if optionRect.collidepoint(cfg.mouseX, cfg.mouseY):
                optionSurf = cfg.AR28.render(i, True, cfg.RED)
                pygame.draw.line(cfg.DISPLAYSURF, cfg.WHITE,
                                 (optionRect.left + 5, optionRect.bottom + 1),
                                 (optionRect.right - 5, optionRect.bottom + 1),
                                 1)
                if cfg.mouseClicked:
                    select = i
            cfg.DISPLAYSURF.blit(optionSurf, optionRect)
            y += 50

        if select == 'Quick Play':
            player = player_class.Player('Phil')
            return player

        elif select == 'New Game':
            #maybe in v2
            #player = characterCreationScreen()
            #return player
            pass

        elif select == 'Load Game':
            #long way off from this :P
            pass

        elif select == 'Options':
            pass

        elif select == 'Exit Game':
            common_functions.terminate()

        pygame.display.update()
        cfg.FPSCLOCK.tick(cfg.FPS)
Beispiel #9
0
def Game():
    """
    print("Welcome to the card game. This means WAR!")
    print("Who are the two players?")

    name1 = raw_input("Player 1: ")
    name2 = raw_input("Player 2: ")
    
    player1 = Player(name1)
    player2 = Player(name2)
    """

    player1 = player_class.Player("Player 1")
    player2 = player_class.Player("Player 2")

    players = [player1, player2]

    myDeck = deck_class.Deck()
    myDeck.shuffle(myDeck.deck)

    myDeck.deal_cards(players)

    winner = False

    while not winner:
        played = []
        #print("[Game loop]")
        #print("[Total cards on board: {}]".format(len(player1.hand) + len(player1.reserve) + len(player2.hand) + len(player2.reserve)))
        myDeck.win_check(players)
        for each in players:
            total = len(each.hand) + len(each.reserve)
            #print("{} now has a total of {} cards.".format(each.name, total))
            if total > 0:
                card = each.play_card()
                played.append(card)
                print("{} plays the {} of {}!".format(each.name, card[0],
                                                      card[1]))
            else:
                myDeck.win_check(players)
        #time.sleep(1)
        myDeck.compare_cards(players, played)
def init_players(add):
    infile = open(add, "r")
    n = 0  # number of players
    idx = -1  # joystick index
    name = ""  # player name
    img = ""  # player image
    for line in infile:
        if line[0] == '#':
            continue
        elif "player_num" in line:
            data = remove_title(line, "player_num").strip()
            n = brace_data(data, 0)
        elif "start" in line:
            control = ""
            idx = -1
            name = ""
            img = ""
        elif "control" in line:
            data = remove_title(line, "control").strip()
            control = brace_data(data, 0)
            if "Joystick" in control:
                idx = brace_data(data, 1)
        elif "name" in line:
            data = remove_title(line, "name").strip()
            name = brace_data(data, 0)
        elif "image" in line:
            data = remove_title(line, "image").strip()
            img = brace_data(data, 0)
        elif "end" in line:
            img = pygame.image.load(img).convert_alpha()
            if "Joystick" in control:
                t = control
                control = control_map[control](idx)
                player_class.Player(t, control.joystick, control.key_map, name,
                                    img)
            else:
                t = control
                control = control_map[control]()
                player_class.Player(t, control.control, control.key_map, name,
                                    img)
Beispiel #11
0
 def __init__(self, screen, col_life):
     self.lis = []
     self.col_life = col_life
     self.lis.append(floor_class.Floor(0, 600, screen))
     self.lis.append(floor_class.Floor(75, 600, screen))
     self.lis.append(floor_class.Floor(150, 600, screen))
     self.lis.append(floor_class.Floor(225, 600, screen))
     self.lis.append(floor_class.Floor(225, 675, screen))
     self.lis.append(floor_class.Floor(225, 750, screen))
     self.lis.append(floor_class.Floor(300, 750, screen))
     x = 300
     for i in range(11):
         self.lis.append(floor_class.Floor(x, 750, screen))
         x += 75
     self.lis.append(floor_class.Floor(x, 750, screen))
     self.lis.append(floor_class.Floor(x, 675, screen))
     self.lis.append(floor_class.Floor(x, 600, screen))
     for i in range(5):
         self.lis.append(floor_class.Floor(x, 600, screen))
         x += 75
     self.lis.append(fire.Fire(300, 717, screen))
     self.lis.append(fire.Fire(381, 717, screen))
     self.lis.append(cube.Cube(462, 664, screen))
     self.lis.append(cube.Cube(548, 664, screen))
     self.lis.append(cube.Cube(773, 664, screen))
     self.lis.append(cube.Cube(859, 664, screen))
     self.lis.append(cube.Cube(945, 664, screen))
     self.lis.append(fire.Fire(945, 635, screen))
     self.lis.append(cube.Cube(859, 578, screen))
     self.lis.append(flat.Flat(640, 430, screen))
     self.lis.append(start.Start(75, 578, screen))
     if self.col_life == 3:
         self.lis.append(life.Life(230, 30, screen))
         self.lis.append(life.Life(130, 30, screen))
         self.lis.append(life.Life(30, 30, screen))
     elif self.col_life == 2:
         self.lis.append(life.Life(130, 30, screen))
         self.lis.append(life.Life(30, 30, screen))
     elif self.col_life == 1:
         self.lis.append(life.Life(30, 30, screen))
     self.lis.append(die_player.DPlayer(2000, 2000, screen))
     self.lis.append(green_door.GDoor(2000, 2000, screen))
     self.lis.append(door.Door(1350, 420, screen))
     self.lis.append(green_button.GreenButton(2000, 2000, screen))
     self.lis.append(red_button.RedButton(670, 381, screen))
     self.lis.append(player_class.Player(100, 415, screen))
Beispiel #12
0
 def __init__(self, screen):
     x = 0
     y = 770
     self.lis = list()
     for i in range(20):
         self.lis.append(floor_class.Floor(x, y, screen))
         x += 75
     self.lis.append(start.Start(75, 748, screen))
     self.lis.append(life.Life(230, 30, screen))
     self.lis.append(life.Life(130, 30, screen))
     self.lis.append(floor_class.Floor(-75, 697, screen))
     self.lis.append(life.Life(30, 30, screen))
     self.lis.append(green_door.GDoor(2000, 2000, screen))
     self.lis.append(door.Door(1200, 581, screen))
     self.lis.append(green_button.GreenButton(2000, 2000, screen))
     self.lis.append(red_button.RedButton(400, 728, screen))
     self.lis.append(player_class.Player(100, 465, screen))
Beispiel #13
0
 def __init__(self):
     self.screen = pygame.display.set_mode((s.WIDTH, s.HEIGHT))
     self.clock = pygame.time.Clock()
     self.running = True
     self.state = 'start screen'
     self.cell_width = s.MAZE_WIDTH // s.COLS
     self.cell_height = s.MAZE_HEIGHT // s.ROWS
     self.walls = []
     self.coins = []
     self.bonus = []
     self.scared_enemies = 0
     self.enemies = []
     self.e_pos = []
     self.p_pos = None
     self.load()
     self.player = p.Player(self, vec(self.p_pos))
     self.make_enemies()
Beispiel #14
0
 def __init__(self, screen, col_life):
     x = 0
     self.col_life = col_life
     y = 770
     self.lis = list()
     for i in range(16):
         self.lis.append(floor_class.Floor(x, y, screen))
         x += 75
     x -= 75
     self.lis.append(floor_class.Floor(x, 695, screen))
     self.lis.append(floor_class.Floor(x, 620, screen))
     self.lis.append(floor_class.Floor(x, 545, screen))
     for i in range(4):
         x += 75
         self.lis.append(floor_class.Floor(x, 545, screen))
     self.lis.append(fire.Fire(x - 10, 516, screen))
     self.lis.append(cube.Cube(250, 684, screen))
     self.lis.append(cube.Cube(336, 684, screen))
     self.lis.append(cube.Cube(422, 684, screen))
     self.lis.append(cube.Cube(508, 684, screen))
     self.lis.append(cube.Cube(336, 598, screen))
     self.lis.append(cube.Cube(422, 598, screen))
     self.lis.append(fire.Fire(700, 741, screen))
     self.lis.append(fire.Fire(771, 741, screen))
     self.lis.append(fire.Fire(862, 741, screen))
     self.lis.append(fire.Fire(933, 741, screen))
     self.lis.append(fire.Fire(1004, 741, screen))
     self.lis.append(start.Start(75, 748, screen))
     if self.col_life == 3:
         self.lis.append(life.Life(230, 30, screen))
         self.lis.append(life.Life(130, 30, screen))
         self.lis.append(life.Life(30, 30, screen))
     elif self.col_life == 2:
         self.lis.append(life.Life(130, 30, screen))
         self.lis.append(life.Life(30, 30, screen))
     elif self.col_life == 1:
         self.lis.append(life.Life(30, 30, screen))
     self.lis.append(shadow_block.SBlock(600, 500, screen))
     self.lis.append(shadow_block.SBlock(860, 400, screen))
     self.lis.append(die_player.DPlayer(2000, 2000, screen))
     self.lis.append(green_door.GDoor(2000, 2000, screen))
     self.lis.append(door.Door(1300, 356, screen))
     self.lis.append(green_button.GreenButton(2000, 2000, screen))
     self.lis.append(red_button.RedButton(620, 721, screen))
     self.lis.append(player_class.Player(100, 465, screen))
Beispiel #15
0
 def loadplayer(self, load_name):
     tmp = player_class.Player()
     tree = ET.parse(load_name)
     root = tree.getroot()
     tmp.maxhp = int(root[0].text)
     tmp.hp = int(root[1].text)
     tmp.maxmp = int(root[2].text)
     tmp.mp = int(root[3].text)
     tmp.level = int(root[4].text)
     tmp.xp = int(root[5].text)
     for equipment in root[6]:
         tmp.equip(equipment.text, equipment.attrib)
     for spells in root[7]:
         tmp.make_spell(spells.text, spells.attrib)
     for items in root[8]:
         tmp.get_item(items.text, items.attrib)
     tmp.map = root[9].text
     tmp.coords = [int(root[9].attrib['x']), int(root[9].attrib['y'])]
     return tmp
Beispiel #16
0
def main():

    player = player_class.Player('Phil')
    hub = hubs.HUBLIST[1]  #uses Phil and Riverwood as default placeholders
    hubScreen(player, hub)
Beispiel #17
0
import room_class
import item_class
import player_class
#make a dictionary for global rooms that will contain every room as they are instanciated
global_rooms = room_class.global_rooms

hero = player_class.Player('hero')

#Rooms:
#create rooms with locations in tuple format, exits as either n, s, e, or w, :locked or :unlocked and a description of the room
room1 = room_class.Room((0,0), {'n': 'locked', 'w':''}, 'The starting room')
room2 = room_class.Room((0,1), {'s':'locked', 'w':''}, 'A bathroom')
room3 = room_class.Room((-1,1), {'n':'', 's':'', 'e':'', 'w':''}, 'A room full of weapons')
room4 = room_class.Room((-1,2), {'s':''}, 'An office')
room5 = room_class.Room((-2,1), {'e':''}, 'A storage closet')
room6 = room_class.Room((-1,0), {'n':'', 'e':''}, 'A room with metal walls and floor')
#Items:
rusty_key = item_class.Key('Rusty Key', 'An old rusty key',room1, room1, 'n')
#set starting room
curr_room = global_rooms[(0,0)]

#Sets commands that can be used by the player and words that can be used as directions for the player to go
look_commands = ['look', 'examine', 'inspect', 'l']
go_commands = ['go', 'move', 'walk', 'run', 'exit']
get_commands = ['take', 'get', 'grab']
use_commands = ['use']
inv_commands = ['i','inv','inventory','items']
north_commands = ['n', 'north', 'up', 'forward']
south_commands = ['s', 'south', 'down', 'backward']
east_commands = ['e', 'east', 'right']
west_commands = ['w', 'west', 'left']
Beispiel #18
0
def main():

    player = player_class.Player('Phil')
    destination = hubs.HUBLIST[2] #uses riverwood as a starting point and astralis hq as a sample destination
    travelFunction(player, destination)
Beispiel #19
0
def main():

    player = player_class.Player('Phil')
    hub = hubs.HUBLIST[2]  #uses Phil and Riverwood as default placeholders
    adventureMode(player, hub)
Beispiel #20
0
import card_class
import deck_class
import player_class

player1 = player_class.Player('Abhinav')
player2 = player_class.Player('Saangvi')

print(f'Welcome {player1.name} & {player2.name} to the war game.')
print('Let the game Begin!')

cnt = 1

for card in deck_class.new_deck.all_cards:
    if cnt == 1:
        player1.add_cards(card)
        cnt = 2
    elif cnt == 2:
        player2.add_cards(card)
        cnt = 1

print(player1)
print(player2)

loop_cnt = 1

while len(player1.all_cards) > 0 and len(player2.all_cards) > 0:
    player1_card = str(player1.all_cards[0])
    #print(player1_card)
    player1.all_cards.pop(0)
    player2_card = str(player1.all_cards[0])
    #print(player2_card)
Beispiel #21
0
def main():

    player = player_class.Player('Phil')  #default player
    location = locations.rwInn  #test specific locations
    locationScreen(player, location)
Beispiel #22
0
def _init_players(players, num_players):
    for i in range(num_players):
        player = player_class.Player(id=i + 1)
        players.append(player)
Beispiel #23
0
        map_bottom = Rect(0, 1600, 1600, 1)
        map_left = Rect(-1, 0, 1, 1600)
        map_right = Rect(1600, 0, 1, 1600)
        map_borders = [map_bottom, map_left, map_right, map_top]

        # print(player_birth_pos)
        # print(boxes_pos)
        # print(can_pass)
        # print(can_not_pass)
        # print(AI_birth_pos)
        # print(prop_car_birth_pos)

        # 获取当前时间
        current_time = pygame.time.get_ticks()
        # 创建一个新的玩家对象
        new_player = player_class.Player()
        # 生成玩家坦克
        p_tank = new_player.birth_a_tank(screen, Vector2(400,
                                                         240), current_time,
                                         player_birth_pos["player"].copy())
        # 将玩家坦克加入玩家坦克的精灵组中
        groups["player_tank"].add(p_tank)

        # 创建基地
        screen_start_pos = Vector2(441, 1096)
        base = base_class.Base(screen)
        base.put(player_birth_pos["base"], screen_start_pos)
        groups["base"].add(base)

        # 生成道具箱
        for pos in boxes_pos:
Beispiel #24
0
def main():
    """ Main Program """
    pygame.init()

    # Set the height and width of the screen
    pygame.display.set_caption("Depths of the Mind")
    size = [constants.SCREEN_WIDTH, constants.SCREEN_HEIGHT]
    screen = pygame.display.set_mode(size)

    # New material ---------------------------------------------------------------------------------------------------------
    # New - ambient music
    pygame.mixer.music.load("RPG Ambient 3.mp3")
    pygame.mixer.music.set_endevent(pygame.constants.USEREVENT)
    pygame.mixer.music.play()

    # New - main menu
    player_save_level = main_menu.main_menu(screen)
    if player_save_level == 0:
        cutscenes.cutscene(screen, 0)


# ----------------------------------------------------------------------------------------------------------------------

# Create the player
    player = player_class.Player()

    # New - Load the background-----------------------------------------------------------------------------------------
    background = pygame.image.load("background.png").convert()
    # ------------------------------------------------------------------------------------------------------------------

    # Create all the levels
    level_list = []
    level_list.append(level_class.Level_01(player))
    level_list.append(level_class.Level_02(player))

    # Set the current level
    current_level_no = player_save_level
    current_level = level_list[current_level_no]

    active_sprite_list = pygame.sprite.Group()
    player.level = current_level

    player.rect.x = 60
    player.rect.y = 490

    active_sprite_list.add(player)

    # Loop until the user clicks the close button.
    done = False

    # Used to manage how fast the screen updates
    clock = pygame.time.Clock()

    # New material ---------------------------------------------------------------------------------------------------------
    # NEW - wind tick
    wind_tick_default = 180
    wind_tick = wind_tick_default

    # New - wind timer
    wind_timer_default = 300
    wind_timer = wind_timer_default

    # New - load sound effects
    exit_sound = pygame.mixer.Sound("exit.wav")
    reboot_sound = pygame.mixer.Sound("reboot.wav")
    wind_sound = pygame.mixer.Sound("wind.wav")
    # ----------------------------------------------------------------------------------------------------------------------
    # -------- Main Program Loop -----------
    while not done:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                done = True
            elif event.type == pygame.constants.USEREVENT:
                pygame.mixer.music.play()

            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    player.go_left()
                if event.key == pygame.K_RIGHT:
                    player.go_right()
                if event.key == pygame.K_UP:
                    player.jump()
                if event.key == pygame.K_ESCAPE:
                    pygame.quit()
                    quit()

            if event.type == pygame.KEYUP:
                if event.key == pygame.K_LEFT and player.change_x < 0:
                    player.stop()
                if event.key == pygame.K_RIGHT and player.change_x > 0:
                    player.stop()

        # Update the player.
        active_sprite_list.update()
        """
        Wind mechanic
        If player_wind_influence is True, the player has collided with a trigger volume to start the wind
        So, we need to start the wind in that gameplay section, as well as two timers - time between gusts, and
        how long the wind itself should last
        """
        if player.player_wind_influence is True:
            wind_timer -= 1
            if wind_timer == 60:
                wind_sound.play()
            if wind_timer <= 0:
                player.calc_wind()
                wind_tick -= 1
                if wind_tick == 0:
                    wind_tick = 180
                    wind_timer = 300
                    wind_sound.fadeout(1000)
        if player.player_wind_influence is False:
            wind_timer = wind_timer_default
            wind_tick = wind_tick_default

        # New - draw the background
        screen.blit(background, [0, 0])

        # Update items in the level
        current_level.update()

        # If the player gets near the right side, shift the world left (-x)
        if player.rect.right >= 500:
            diff = player.rect.right - 500
            player.rect.right = 500
            current_level.shift_world(-diff)

        # If the player gets near the left side, shift the world right (+x)
        if player.rect.left <= 120:
            diff = 120 - player.rect.left
            player.rect.left = 120
            current_level.shift_world(diff)

        # NEW / adapted
        # If the player gets to the level exit, go to the next level
        if player.player_hit_exit is True:
            exit_sound.play()
            if current_level_no < len(level_list) - 1:
                current_level_no += 1
                file = open('save file.txt', 'w')
                file.write(str(current_level_no))
                file.close()
                player.rect.x = 60
                current_level = level_list[current_level_no]
                player.level = current_level
            else:
                current_level_no = 2

        # New - "respawning" player from a fall. Check if rect.y coordinate of player sprite
        # exceeds screen height
        if player.rect.y > 600:
            reboot_sound.play()
            player.rect.x = current_level.respawn_point.rect.x
            player.rect.y = current_level.respawn_point.rect.y
            player.player_wind_influence = False
            player.stop()
            wind_sound.fadeout(1000)

        # ALL CODE TO DRAW SHOULD GO BELOW THIS COMMENT
        # New - check to see if player has hit the exit. If so, play a cutscene. Otherwise, draw as normal.
        if player.player_hit_exit is True:
            player.stop()
            pygame.event.clear()
            player.player_hit_exit = False
            cutscenes.cutscene(screen, current_level_no)
        else:
            current_level.draw(screen)
            active_sprite_list.draw(screen)
        # ALL CODE TO DRAW SHOULD GO ABOVE THIS COMMENT

        # Limit to 60 frames per second
        clock.tick(60)

        # Go ahead and update the screen with what we've drawn.
        pygame.display.update()

    # Be IDLE friendly. If you forget this line, the program will 'hang'
    # on exit.
    pygame.quit()
Beispiel #25
0
def run_game():
    # создание игрока
    player = player_class.Player(st.skin, st.speed)
    # начальное расположение игрока
    spawn(player)

    levels_map = Levels()
    bots = []
    for i in range(5):
        b = bots_class.Bot(st.speed + 1)
        spawn(b)
        bots.append(b)
    # инициализация и размер экрана
    screen = pygame.display.set_mode(st.size_screen)
    # название окна (игры)
    pygame.display.set_caption("HideAndSeek")
    # задний фон
    bg = [
        pygame.image.load("../pyKursach/img/bg_home.jpg"),
        pygame.image.load("../pyKursach/img/bg_forest.jpg"),
        pygame.image.load("../pyKursach/img/bg_dungeon.jpg"),
        pygame.image.load("../pyKursach/img/bg_sky.jpg")
    ]
    #  заднего фона под экран
    for i in range(4):
        bg[i] = pygame.transform.scale(bg[i], st.size_screen)

    # для отрисовки спрайтов
    pl_sprite_list = pygame.sprite.Group()
    pl_sprite_list.add(player)
    bt_sprite_list = pygame.sprite.Group()
    for b in bots:
        bt_sprite_list.add(b)
    print(bt_sprite_list)
    # уровень на котором мы сейчас находимся (важная переменнаяб бот должен иметь такой параметр)
    # player.level_player
    # Используется для управления скоростью обновления экрана(кадры в секунду)
    clock = pygame.time.Clock()

    n_tick = 0
    game_time = 0
    remaining_time = st.time
    # остновной цикл
    run = True
    game = True
    win = False
    while run:
        n_tick += 1
        if n_tick % 30 == 0:
            game_time += 1
        if game:
            if remaining_time - game_time <= 0:
                game = False
            if player.score == 5:
                game = False
                win = True
            # кадры в секунду
            clock.tick(st.frames_per_second)
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    pygame.quit()
                    sys.exit()
                if event.type == KEYDOWN:
                    if event.key == K_ESCAPE:
                        run = False
            # метод движения игрока
            move_player(player, levels_map.block_map)
            for i in bots:
                move_bot(i, levels_map.block_map, player, game_time)
            move_mouse(player)
            p_rect = player.rect
            if p_rect.collidepoint(pygame.mouse.get_pos()):
                game = False
            # отрисовка всего и вся
            draw(screen, bg, pl_sprite_list, bt_sprite_list, player.level_id,
                 levels_map, (remaining_time - game_time), player.score)
        else:
            f = pygame.font.Font(None, 200)
            button = pygame.Rect(st.width / 2 - 325, st.height / 2 - 100, 650,
                                 200)
            if win:
                text = f.render("You Win", True, (0, 180, 0))
            else:
                text = f.render("You Lose", True, (180, 0, 0))

            pygame.draw.rect(screen, [0, 0, 180], button)
            screen.blit(text, (st.width / 2 - 305, st.height / 2 - 60))
            pygame.display.update()
            game_time = 0
            remaining_time = 0

            for event in pygame.event.get():
                if event.type == KEYDOWN:
                    if event.key == K_ESCAPE:
                        run = False
Beispiel #26
0
def main():

    player = player_class.Player('Phil')
    travelEvent(player)
Beispiel #27
0
if __name__ == "__main__":
    # game window settings
    window = tkinter.Tk()
    window.title("Yatzy")
    window.geometry("500x600")
    window.resizable(0,0)
    window.lift()
    window.attributes("-topmost", True)
    
    # asks how many player will be playing
    nro_players = tkinter.simpledialog.askinteger("Players", "How many players?", parent=window)
    
    # asks player names and makes list of players (Player class)
    players = []
    i = 0
    while i<nro_players:
        nro = i+1
        text = "Player "+ str(nro) +" name?"
        name = tkinter.simpledialog.askstring("Player name", text, parent=window)
        player = player_class.Player(name)
        players.append(player)
        i += 1

    # initializes gui and game-logic with given players
    gui = gui_class.GUI(window, players)
    game = game_class.Game(gui, players)
    gui.add_game_logic(game)
    
    game.start()
    
    window.mainloop()