def __init__(self): self.view = View() self.map = Map() self.characters = Characters('anyadat') self.hero = Hero() self.skeleton = Skeleton() self.boss = Boss() self.view.draw_map(self.map.gamezone1)
def main(): colided_list = [] level, screen, clock, fps, rect_list = set_config() group = RenderUpdates() heroine = Hero(100, 30, group) keys = { K_LEFT: False, K_RIGHT: False, K_UP: False, K_DOWN: False, K_RETURN: False, 27: False, K_a: False } # obs 27 = 'esc' pygame.display.flip() while True: clock.tick(fps) for event in pygame.event.get([KEYUP, KEYDOWN]): value = (event.type == KEYDOWN) if event.key in keys: keys[event.key] = value idx = heroine.rect.collidelist(rect_list) if idx != -1 and rect_list[idx] not in colided_list: colided_list.append(rect_list[idx]) print rect_list[idx] if rect_list[ idx].x <= heroine.rect.x and heroine.rect.x <= rect_list[ idx].width: heroine.fsm.set_state("stand_still") heroine.cannot_move_to = None #import pdb; pdb.set_trace() else: heroine.cannot_move_to = heroine.fsm.side if idx == -1: heroine.fsm.set_state("fall") if keys[27]: # tecla ESC pygame.quit() sys.exit() elif keys[K_LEFT] and heroine.cannot_move_to != "left": heroine.fsm.set_state("move") heroine.fsm.update("left") elif keys[K_RIGHT] and heroine.cannot_move_to != "right": heroine.fsm.set_state("move") heroine.fsm.update("right") elif keys[K_UP]: heroine.fsm.set_state("jump") elif keys[K_DOWN]: heroine.fsm.set_state("get_down") elif keys[K_a]: heroine.fsm.set_state("attack") heroine.fsm.auto_update() utils.clear_screen(level, screen) pygame.display.update(group.draw(screen))
def test_inits(self): char = C.Character('Grognak') # YOU MADE A CHARACTER self.assertIsInstance(char,C.Character) # You made a hero hero = H.Hero('Grognak', [20, 20]) self.assertIsInstance(hero, H.Hero) # You made a monster monster = M.Monster('Goblin', 5, 5, 1) self.assertIsInstance(monster,M.Monster)
def __init__(self): self.view = View() self.map = Map() self.hero = Hero() self.view.screen(self.map.playscreen) self.view.draw_hero(self.hero.x, self.hero.y, "down") self.view.canvas.bind("<Up>", self.move_up) self.view.canvas.bind("<Down>", self.move_down) self.view.canvas.bind("<Left>", self.move_left) self.view.canvas.bind("<Right>", self.move_right) self.enemies = [Skeletons(8, 10), Skeletons(7, 5), Boss(4, 4)] self.view.draw_enemies(self.enemies)
def __init__(self): self._running = None self._surface = None self._size = self.weight, self.height = 812, 650 self._map = Map(50, (10, 10)) self._player_turn = None self._image_library = None self._action = None self._marked = None self._lost = None pos_x, pos_y = self.get_start_position() self._hero = Hero(10, 5, 10, 10, 200, pos_x, pos_y)
def __init__(self): self.view = Visual() self.map = map.game_map self.hero = Hero() self.view.screen(self.map) self.view.draw_hero(self.hero.x, self.hero.y) self.view.draw_boss(4, 0) self.view.draw_skeleton(9, 0) self.view.draw_skeleton(9, 9) self.view.draw_skeleton(4, 6) self.view.canvas.bind('<Up>', self.move_up) self.view.canvas.bind('<Down>', self.move_down) self.view.canvas.bind('<Left>', self.move_left) self.view.canvas.bind('<Right>', self.move_right)
def setup(keySet, resolution): hero = Hero({ "Name": 'Hero', "Lvl": 1, "Exp": 0, "Atk": 3, "Def": 4, "Stam": 3, "Health": 25, "ExpPoint": 50, "Skills": [], }) curMap = Map() level = Levels() makeWindow(hero, curMap, level, keySet, resolution)
def main(): my_hero = Hero(name='Wencakisa', title='Kingslayer', health=100, mana=100, mana_regeneration_rate=2) my_enemy = Enemy(health=100, mana=100, damage=10) my_weapon = Weapon(name='Windcutter', damage=10) my_spell = Spell(name='Fireball', damage=7, mana_cost=4, cast_range=1) my_hero.equip(my_weapon) my_hero.learn(my_spell) while my_hero.is_alive() and my_enemy.is_alive(): print(my_enemy.attack(enemy=my_hero)) my_enemy.take_healing(healing_points=40) print(my_hero.attack(by='spell', enemy=my_enemy)) print(my_hero.attack(by='weapon', enemy=my_enemy))
def main(): level, screen, clock, fps = set_config() group = RenderUpdates() heroine = Hero(20, 140, "elisa", group) keys = { K_LEFT: False, K_RIGHT: False, K_UP: False, K_DOWN: False, K_RETURN: False, 27: False, K_a: False } # obs 27 = 'esc' pygame.display.flip() while True: clock.tick(fps) for e in pygame.event.get([KEYUP, KEYDOWN]): valor = (e.type == KEYDOWN) if e.key in keys.keys(): keys[e.key] = valor if keys[27]: # tecla ESC pygame.quit() sys.exit() if heroine.attacking: heroine.animate_attack() elif keys[K_LEFT]: heroine.move("left") elif keys[K_RIGHT]: heroine.move("right") elif keys[K_UP]: heroine.jump() elif keys[K_DOWN]: heroine.get_down() elif keys[K_a]: heroine.attack() #heroine.is_jumping(gravity) utils.clear_screen(level, screen) pygame.display.update(group.draw(screen))
def test_hero_methods(self): # check that the set_starter_stats consistently sets the stats hero1 = H.Hero('Grognak', [1, 1]) hero1.set_starter_stats() self.assertTrue(hero1.current_hp,10) self.assertTrue(hero1.max_hp, 10) self.assertTrue(hero1.armor, 1) self.assertTrue(hero1.strength, 3) # Check that leveling works hero1.gain_xp(101) self.assertEqual(hero1.xp, 101) self.assertEqual(hero1.level, 2) # Check that set_opened_save_stats does the same hero1.set_opened_save_stats(8, 16, 3, 4, 150, 2, 1, 200, 23, 24) self.assertEqual(hero1.current_hp,8) self.assertEqual(hero1.max_hp, 16) self.assertEqual(hero1.armor, 3) self.assertEqual(hero1.strength, 4) self.assertEqual(hero1.xp, 150) self.assertEqual(hero1.level, 2) self.assertEqual(hero1.money, 1) self.assertEqual(hero1.next_level, 200) self.assertEqual(hero1.hero_pos, [23, 24]) # check for hp gains hero1.gain_hp_from_rest(True) self.assertEqual(hero1.current_hp, 12) # check that not only does this heal, but not more than it should hero1.gain_hp_from_rest(False) self.assertEqual(hero1.current_hp, 14) # make sure 'overhealing' isnt possible hero1.gain_hp_from_rest(True) self.assertEqual(hero1.current_hp, 16) monster = M.Monster('Goblin', 5, 5, 1) monster.attack_enemy(hero1) # The goblin is too weak to harm the hero. self.assertEqual(hero1.current_hp,16) # The reverse is not true however hero1.attack_enemy(monster) self.assertLess(monster.current_hp, 1)
def generate_hero(): level = randint(1, 500) b = Hero("Superwoman", level) return b
from characters import Monster, Hero, Gorgon from random import randint def roll(sides): return randint(1, sides) if __name__ == "__main__": monster = Gorgon("Medussa", "stone gaze", 100, 100) hero = Hero("Perseus", "winged sandals", 100, 100) print(str(monster) + " vs. " + str(hero)) # roll for the hero count = 0 while not hero.is_dead() and not monster.is_dead(): health = roll(12) manna = roll(12) hero.hit(monster, health, manna) if monster.is_dead(): print("Hooray the monster is dead after ", count, " rolls") health = roll(12) manna = roll(12) monster.hit(hero, health, manna) if hero.is_dead(): print("Boo hoo the hero is dead after ", count, " rolls") count += 1
def create_hero(): print('A quest has emerged and a new hero must answer the call. Who will answer the challenge and will they rise to glory or end in defeat.') return Hero(100, 5)
def init_hero(): hero = Hero(gameDisplay, 175, 450) # With his mighty hammer hero.equip(Hammer()) return hero
def main(): pygame.init() size = [SCREEN_WIDTH, SCREEN_HEIGHT] screen = pygame.display.set_mode(size) pygame.display.set_caption("Ducking Ork Hunt") sprite_list = [(0, 97, 32, 47), (32, 97, 32, 47), (64, 97, 32, 47), (96, 97, 32, 47)] hero = Hero('.//characters//green_mage.png', sprite_list) hud = pygame.image.load( os.path.join('.//HUD//SleekBars_empty.png')).convert() level_list = [] level_list.extend([Training_ground(hero)]) level_number = 0 current_level = level_list[level_number] active_elements = pygame.sprite.Group() hero.ground = current_level hero.rect.x = 100 hero.rect.bottom = SCREEN_HEIGHT - 70 - 100 active_elements.add(hero) clock = pygame.time.Clock() gameExit = False while not gameExit: for event in pygame.event.get(): if hero.inactive_time: break if event.type == pygame.QUIT: gameExit = True elif event.type == pygame.KEYDOWN: if event.key == pygame.K_a: hero.move_left() elif event.key == pygame.K_d: hero.move_right() elif event.key == pygame.K_w: hero.jump() elif event.key == pygame.K_LSHIFT: hero.cast(Fire_lion) elif event.key == pygame.K_KP6: hero.cast(Fireball, 'R') elif event.key == pygame.K_KP9: hero.cast(Fireball, 'RU') elif event.key == pygame.K_KP3: hero.cast(Fireball, 'RD') elif event.key == pygame.K_KP4: hero.cast(Fireball, 'L') elif event.key == pygame.K_KP7: hero.cast(Fireball, 'LU') elif event.key == pygame.K_KP1: hero.cast(Fireball, 'LD') elif event.key == pygame.K_KP0: hero.cast(Ice_spikes) elif event.key == pygame.K_q: hero.drink_potion('mana') elif event.key == pygame.K_e: hero.drink_potion('health') elif event.key == pygame.K_RETURN: hero.use(clock, screen) elif event.type == pygame.KEYUP: if event.key == pygame.K_a: hero.stop() elif event.key == pygame.K_d: hero.stop() if event.type == pygame.KEYUP and event.key == pygame.K_SPACE: hero.teleporta() active_elements.update() current_level.update() hero.world_shift() current_level.draw(screen) screen.blit(hud, (35, 35)) hero.hud_draw(screen) active_elements.draw(screen) clock.tick(60) pygame.display.flip() pygame.quit()
#Initialize pygame pygame.init() #Initialize and play the song pygame.mixer.music.load(MUSIC_PATH) pygame.mixer.music.play() #Create window screen = pygame.display.set_mode(SCREEN_SIZE) #Create labyrinth board_game = Labyrinth(TILE_IMAGE_PATH, WALL_IMAGE_PATH, MODEL_PATH) board_game.initialize_labyrinth(screen) #Create characters macgyver = Hero(HERO_IMAGE_PATH, MACGYVER_COORDINATES) the_guardian = Guardian(GUARDIAN_IMAGE_PATH, GUARDIAN_COORDINATES) #Create items needle = Item(NEEDLE_IMAGE_PATH, board_game) plastic_tube = Item(PLASTIC_TUBE_IMAGE_PATH, board_game) ether = Item(ETHER_IMAGE_PATH, board_game) #The game loop while ACTIVE: #If the music stops, it starts again if pygame.mixer.music.get_busy() == False: pygame.mixer.music.play() #Display the game
def main(): root = Tk() root.title("Tom's wanderer game") canvas = Canvas(root, width=600, height=600) # importing pictures hero_down = PhotoImage(file="images/hero-down.png") hero_up = PhotoImage(file="images/hero-up.png") hero_left = PhotoImage(file="images/hero-left.png") hero_right = PhotoImage(file="images/hero-right.png") #instasiating objects hero = Hero(0, 0, hero_down) game = Game(hero) # function that can be called when a key pressing happens m = Utils.matrix def on_key_press(e): def coords(char): x, y = char.get_coordinates() x, y = int(x / 60), int(y / 60) return x, y try: if e.keycode == 83 and m[coords(hero)[1] + 1][coords( hero)[0]] != 1 and coords(hero)[1] <= 9: #down hero.set_coordinatesY(60) hero.set_image(hero_down) elif e.keycode == 87 and m[coords(hero)[1] - 1][coords( hero)[0]] != 1 and coords(hero)[1] > 0: #up hero.set_coordinatesY(-60) hero.set_image(hero_up) elif e.keycode == 65 and m[coords(hero)[1]][ coords(hero)[0] - 1] != 1 and coords(hero)[0] > 0: #left hero.set_coordinatesX(-60) hero.set_image(hero_left) elif e.keycode == 68 and m[coords(hero)[1]][ coords(hero)[0] + 1] != 1 and coords(hero)[0] <= 9: #right hero.set_coordinatesX(60) hero.set_image(hero_right) except (IndexError): pass #exit if e.keycode == 27: root.destroy() #battle opponent = False for char in game.get_characters(): if e.keycode == 32 and coords(hero) == coords(char): opponent = hero.battle(char) if opponent: game.remove_character(opponent) #initialise new game object and level up characters if game.get_char_length() < 1: new_level() game.create_monsters() game.level_up_chars(hero.level) hero.x = 0 hero.y = 0 hero.set_image(hero_down) canvas.delete("all") stats() draw_canvas() # binding key press events canvas.bind("<KeyPress>", on_key_press) canvas.pack() # draw the canvas def draw_canvas(): game.draw(canvas) game.draw_character(canvas) hero.draw_character(canvas) draw_canvas() canvas.focus_set() #game stats canvas2 = Canvas(root, width=600, height=30) def stats(): canvas2.create_rectangle(0, 0, 600, 30, fill="grey") text = f"Hero (Level: {hero.level}) HP: {int(hero.HP)}/38 | DP: {hero.DP} | SP: {hero.SP}" canvas_text = canvas2.create_text(10, 10, text=text, font=('freemono bold', 11), anchor=NW) canvas2.pack() #level up function def new_level(): hero.level_up() chance = random.random() if chance <= 0.1: hero.set_HP = hero.maxHP if 0.1 < chance <= 0.4: hero.set_HP = hero.maxHP / 3 if chance >= 0.5: hero.set_HP = hero.maxHP * 0.1 root.mainloop()
characters = [ Character('cat', 50, 15, kitten), Character('dog', 70, 10, pooch), Character('chicken', 60, 20, c**k), Character('dragon', 150, 40, viper), Character('tiger', 100, 30, tigress) ] ''' heroes = [ Hero('Alexa', 400, 35, 'agility', 3, 5, 2, assasin), Hero('Max', 650, 30, 'strength', 6, 3, 1, warrior), Hero('Furion', 350, 25, 'intelligence', 2, 4, 7, prophet) ] ''' thief = Hero('Alexa', 400, 35, 'agility', 3, 5, 2, assasin) defender = Hero('Maximus', 650, 30, 'strength', 6, 3, 1, warrior) prophet = Hero('Furion', 350, 25, 'intelligence', 2, 4, 7, prophet) create_5_monsters_no_prop = (np.random.choice(characters, 5).tolist()) print(create_5_monsters_no_prop, end='\n' + '*' * 30 + '\n') monster_creater = Monster_creater(characters, properties) create_25_monsters = [monster_creater.generate_monster() for i in range(25)] print(create_25_monsters) potion = Health_potion('potion of healing', 30) thief.inventory.add_item(potion) thief.inventory.add_item(potion) thief.inventory.add_item(potion) print(thief.inventory)