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
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