Exemplo n.º 1
0
    os.system("clear")
    M.printhead()
    SCENE.make_cm(i)
    SCENE.make_pps()
    SCENE.brick_coin()
    SCENE.moving_bar()
    SCENE.make_flag()
    i = SCENE.enemy(i)
    # PERSON.print_mario(PERSON.xpos,PERSON.ypos)
    POLY.print_poly(PERSON, PERSON.xpos, PERSON.ypos)
    # BOARD.print_board(i,i+80)
    POLY.print_poly(BOARD, i, i + 80)
    # PERSON.move(i)
    POLY.move_poly(PERSON, i)
    if BOARD.checkstar(PERSON.xpos + 1, PERSON.ypos) == 2:
        Manage.changelives()
        ZPS = 0
        for k, j in CHECKPOINT:
            if j >= PERSON.ypos:
                PERSON.xpos = CHECKPOINT[ZPS - 1][0]
                PERSON.ypos = CHECKPOINT[ZPS - 1][1]
                i = PERSON.ypos - 10
                break
            ZPS += 1
    if TIMER == 5:

        M.timer()
        TIMER = 0

    TIMER += 1
Exemplo n.º 2
0
    def enemy(cls, lgt):
        '''make enemy bullets'''
        # for bullets
        for k in BULLET_LIST:
            BOARD.mat[k.xps][k.yps] = k.sym
            if time.time() - k.tym > 0.1:
                k.tym = time.time()
                if BOARD.checkstar(k.xps, k.yps + 1) is 1 or k.yps > lgt + 80:
                    BULLET_LIST.remove(k)
                else:
                    k.yps += k.vel
            if k.xps >= 22 and k.xps <= 25 and k.yps == BOSS.y and BOSS.Health >= 0:
                Manage.bosslife()
                BULLET_LIST.remove(k)
                BOSS.Health -= 1

        if BOSS.Health >= 0:
            if time.time() - BOSS.bosstime > 1:
                BOSS.bosstime = time.time()
                BOSS.x = random.randint(22, 25)
                BOSS.y = random.randint(460, 470)
                BOSS_BULLET.append(Bullet(BOSS.x - 2, BOSS.y, -1, BOSS_B))
                prob = random.randint(1, 100)
                if prob < 20:
                    BOSS_BULLET.append(Bullet(BOSS.x - 3, BOSS.y, -1, BOSS_B))
                if prob < 10:
                    BOSS_BULLET.append(Bullet(BOSS.x - 1, BOSS.y, -1, BOSS_B))
                if prob == 2:
                    BOSS_BULLET.append(Bullet(BOSS.x, BOSS.y, -1, BOSS_B))

            if PERSON.xpos <= 25 and PERSON.xpos >= 22 and PERSON.ypos >= BOSS.y \
            and PERSON.ypos <= BOSS.y + 5:
                Manage.changelives()
                zps = 0
                for i, j in CHECKPOINT:
                    if j >= PERSON.ypos and i is not None:
                        PERSON.xpos = CHECKPOINT[zps - 1][0]
                        PERSON.ypos = CHECKPOINT[zps - 1][1]
                        break
                    zps += 1
            for k in BOSS_BULLET:
                if (k.xps >= PERSON.xpos - 1 and k.xps <= PERSON.xpos
                        or k.xps + 1 == PERSON.xpos) and (
                            k.yps >= PERSON.ypos - 1 and k.yps <= PERSON.ypos):
                    Manage.changelives()
                    BOSS_BULLET.remove(k)
            for k in BOSS_BULLET:
                BOARD.mat[k.xps][k.yps] = k.sym
                if time.time() - k.tym > 0.1:
                    k.tym = time.time()
                    if BOARD.checkstar(k.xps, k.yps - 1) is 1 or k.yps < lgt:
                        BOSS_BULLET.remove(k)
                    else:
                        k.yps += k.vel
            # BOSS.print_boss(BOSS.x,BOSS.y)
            POLY.print_poly(BOSS, BOSS.x, BOSS.y)
        # print(lgt)
        for k in ELIST:
            if k.type == "enemy1":
                flagvar = False
                if time.time() - k.tym > 0.5:
                    k.tym = time.time()
                    if k.yps >= lgt and k.yps <= lgt + 80:
                        # k.move(None)
                        POLY.move_poly(k)
                if (PERSON.xpos == k.xps and PERSON.ypos == k.yps):
                    Manage.changelives()
                    flagvar = True
                    zps = 0
                    for i, j in CHECKPOINT:
                        if j >= PERSON.ypos:
                            PERSON.xpos = CHECKPOINT[zps - 1][0]
                            PERSON.ypos = CHECKPOINT[zps - 1][1]
                            break
                        zps += 1
                if PERSON.xpos + \
                        1 == k.xps and (PERSON.ypos - 1 == k.yps or PERSON.ypos == k.yps):
                    try:
                        sound = open('smb_stomp.wav', 'r')
                        os.system('aplay -q ./smb_stomp.wav&')
                    except:
                        pass
                    Manage.enemykill()
                    Manage.changescore(k.type)
                    PERSON.xpos -= 2
                    ELIST.remove(k)
                if lgt > 100:
                    if PERSON.xpos == k.xps:
                        if k.vel > 0 and PERSON.ypos < k.yps - 4:
                            k.vel = -k.vel
                        if k.vel < 0 and PERSON.ypos > k.yps + 4:
                            k.vel = -k.vel
                if k.xps == 26:
                    BOARD.mat[k.xps][k.yps] = ' '
                    ELIST.remove(k)
                # k.print_enemy(k.xps,k.yps)
                POLY.print_poly(k, k.xps, k.yps)

                if flagvar:
                    return PERSON.ypos - 10

            if k.type == "enemy2":  # TURTLE ENEMY
                flagvar = False
                if time.time() - k.tym > 5 and k.sym == ' ':
                    k.tym = time.time()
                    k.sym = '^'
                    k.vel = random.randrange(-1, 2, 2)
                    if k.yps >= lgt and k.yps <= lgt + 80:
                        # k.move()
                        POLY.move_poly(k)

                if PERSON.xpos == k.xps and PERSON.ypos + \
                        1 == k.yps and k.sym == ' ' and k.vel == 0:
                    try:
                        sound = open('smb_kick.wav', 'r')
                        os.system('aplay -q ./smb_kick.wav&')
                    except:
                        pass
                    k.vel = 1

                if PERSON.xpos == k.xps and PERSON.ypos - \
                        2 == k.yps and k.sym == ' ' and k.vel == 0:
                    try:
                        sound = open('smb_kick.wav', 'r')
                        os.system('aplay -q ./smb_kick.wav&')
                    except:
                        pass
                    k.vel = -1

                # enemy-enemy collision
                if k.sym == ' ' and k.vel != 0 and time.time() - k.tym > 0.1:
                    k.tym = time.time()
                    if k.yps >= lgt and k.yps <= lgt + 80:
                        POLY.move_poly(k)
                        for enmy in ELIST:
                            if (enmy.xps == k.xps and enmy.yps == k.yps
                                    and k != enmy):
                                try:
                                    sound = open('smb_stomp.wav', 'r')
                                    os.system('aplay -q ./smb_stomp.wav&')
                                except:
                                    pass
                                Manage.enemykill()
                                Manage.changescore(enmy.type)
                                ELIST.remove(enmy)

                if time.time() - k.tym > 0.5 and k.sym == '^':
                    k.tym = time.time()
                    if k.yps >= lgt and k.yps <= lgt + 80:
                        POLY.move_poly(k)

                if (PERSON.xpos == k.xps
                        and (PERSON.ypos == k.yps or PERSON.ypos - 1 == k.yps)
                        and k.vel != 0):
                    Manage.changelives()
                    flagvar = True
                    zps = 0
                    for i, j in CHECKPOINT:
                        if j >= PERSON.ypos:
                            PERSON.xpos = CHECKPOINT[zps - 1][0]
                            PERSON.ypos = CHECKPOINT[zps - 1][1]
                            break
                        zps += 1

                if (PERSON.xpos + 2 == k.xps
                        and (PERSON.ypos == k.yps or PERSON.ypos - 1 == k.yps)
                        and k.sym == '^'):
                    k.sym = ' '
                    k.tym = time.time()
                    PERSON.xpos -= 2
                    k.vel = 0

                if (PERSON.xpos + 1 == k.xps
                        and (PERSON.ypos == k.yps or PERSON.ypos - 1 == k.yps)
                        and k.sym == ' '):
                    try:
                        sound = open('smb_stomp.wav', 'r')
                        os.system('aplay -q ./smb_stomp.wav&')
                    except:
                        pass
                    Manage.enemykill()
                    Manage.changescore(k.type)
                    PERSON.xpos -= 2
                    ELIST.remove(k)

                if lgt > 100:
                    if PERSON.xpos == k.xps and k.sym == '^':
                        if k.vel > 0 and PERSON.ypos < k.yps - 4:
                            k.vel = -k.vel
                        if k.vel < 0 and PERSON.ypos > k.yps + 4:
                            k.vel = -k.vel
                if k.xps == 26:
                    BOARD.mat[k.xps][k.yps] = ' '
                    ELIST.remove(k)

                # k.print_enemy(k.xps,k.yps,k.sym)
                POLY.print_poly(k, k.xps, k.yps)

                if flagvar:
                    return PERSON.ypos - 10
        return lgt