コード例 #1
0
 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)
コード例 #2
0
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))
コード例 #3
0
 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)
コード例 #4
0
 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)
コード例 #5
0
    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)
コード例 #6
0
ファイル: game.py プロジェクト: greenfox-zerda-lasers/hvaradi
 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)
コード例 #7
0
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)
コード例 #8
0
ファイル: demo.py プロジェクト: wencakisa/Programming101
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))
コード例 #9
0
ファイル: rpg.py プロジェクト: deniscostadsc/pygame_demo
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))
コード例 #10
0
    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)
コード例 #11
0
def generate_hero():
    level = randint(1, 500)
    b = Hero("Superwoman", level)
    return b
コード例 #12
0
ファイル: main.py プロジェクト: jokar1257/cis83-examples
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
コード例 #13
0
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)
コード例 #14
0
ファイル: game.py プロジェクト: bfleming-ciena/ciena-homework
def init_hero():
    hero = Hero(gameDisplay, 175, 450)
    # With his mighty hammer
    hero.equip(Hammer())
    return hero
コード例 #15
0
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()
コード例 #16
0
ファイル: game.py プロジェクト: AlexBardDev/Project_3_OC
#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
コード例 #17
0
ファイル: main.py プロジェクト: tszabad/tszabad_wanderer
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()
コード例 #18
0
ファイル: arena_tester.py プロジェクト: QuadraT2x2/game
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)