def loop(self, g, r): if g.dead == 1: self.image = self.orginalImage.subsurface((0, 0, 0, 0)) return keys = pygame.key.get_pressed() dy = 0 self.pos = g.screen_to_tile((g.player.rect.x - g.view.x + 8, g.player.rect.y - g.view.y + 16)) faced = 0 aimup, aimdown = 0, 0 shooting = 0 # move the player if g.intermission == 0: jumpkeydown = 0 if keys[K_DOWN]: faced = 1 if g.infobox: self.staylooking = 1 if self.jumpshoot: aimdown = 1 if keys[K_UP]: faced = 2 # jump aimup = 1 if keys[K_LEFT]: faced = 0 self.staylooking = 0 self.dx -= SPEED self.direction = 1 if g.player.canjump: self.framecount += 1 if keys[K_RIGHT]: faced = 0 self.staylooking = 0 self.dx += SPEED self.direction = 0 if g.player.canjump: self.framecount += 1 if keys[K_LEFT] and keys[K_RIGHT]: self.framecount = 0 if keys[K_z]: if g.player.canjump == 1 and g.player.gravity == 0 and g.disable_fire == 0: g.player.canjump = 0 g.player.gravity += self.jump_gravity g.player.jumping = 1 self.jumpsound.play() if keys[K_x]: # firing code shooting = 1 if g.level.weapon_gui == 0 and g.level.inventory_gui == 0: if "weapon" in g.saveData and g.disable_fire == 0: if self.shotcounter <= 0 and g.saveData["weapon"] > 0: xoffset = (not self.direction) * 2 shottype = "shot" + str(g.saveData["weapon"]) sdirection = self.direction if aimup: sdirection = 2 if aimdown: sdirection = 3 s = None if shottype == "shot2": s = Shot2(g, sdirection, (self.rect.x - xoffset, self.rect.y + 20)) elif shottype == "shot4": s = Shot4(g, sdirection, (self.rect.x - xoffset, self.rect.y + 20)) else: s = Shot(g, sdirection, (self.rect.x - xoffset, self.rect.y + 20), shottype) s.invisible_timer = 1 self.shotcounter += s.get_reload_time() self.jumpshoot = 0 if jumpkeydown == 0 and self.canjump == 0: self.jumpshoot = 1 if g.disable_fire != 0: g.disable_fire += 1 if g.disable_fire > 3: g.disable_fire = 0 # the gui disables firing # if not keys[K_z]: # g.disable_fire = 0 # if not keys[K_x]: # g.disable_fire = 0 # not walking if not keys[K_LEFT] and not keys[K_RIGHT]: self.framecount = 0 # not going anywhere if keys[K_LEFT] and keys[K_RIGHT]: if self.dx > 0: self.dx -= SPEED if self.dx < 0: self.dx += SPEED if g.intermission: self.dx = 0 if not keys[K_RIGHT] and self.dx > 0: self.dx -= SPEED if not keys[K_LEFT] and self.dx < 0: self.dx += SPEED if self.dx > self.maxspeed: self.dx = self.maxspeed if self.dx < -self.maxspeed: self.dx = -self.maxspeed # move camera with player if not g.intermission: if g.player.rect.x - g.view.x > SW - 200 and self.dx > 0: g.view.x += self.dx if g.player.rect.x - g.view.x < 200 and self.dx < 0: g.view.x += self.dx if g.player.rect.y - g.view.y > SH - 180: if self.maxspeed < dy - g.player.gravity: g.view.y += dy - g.player.gravity else: g.view.y += self.maxspeed if g.player.rect.y - g.view.y < 100: g.view.y -= self.maxspeed weaponvisible = 0 if "weapon" in g.saveData: if g.saveData["weapon"] != 0: weaponvisible = 1 # animation iw, ih = g.player.image.get_width(), g.player.image.get_height() if weaponvisible == 0 or self.dieanimation == 1: g.player.image = g.player.orginalImage.subsurface((iw * ((self.framecount / 3) % 5), 0, 32, 32)) if g.following: # draw hand if g.connected == 1 and self.direction == 1: g.player.image = pygame.Surface((32, 32), SRCALPHA) g.player.image.blit( g.player.orginalImage.subsurface((iw * ((self.framecount / 3) % 5), 6 * 32, 32, 32)), (0, 0) ) g.player.image.blit(g.player.orginalImage.subsurface((2 * 32, 4 * 32, 32, 32)), (7, 0)) g.player.image = pygame.transform.flip(g.player.image, self.direction, 0) # looking forward if faced == 1 or self.staylooking: g.player.image = g.player.orginalImage.subsurface((5 * 32, 0, 32, 32)) if faced == 2: g.player.image = g.player.orginalImage.subsurface((1 * 32, 32, 32, 32)) # animations... if self.animation == 1: g.player.image = g.player.orginalImage.subsurface((6 * 32, 0, 32, 32)) elif self.animation == 2: g.player.image = g.player.orginalImage.subsurface((7 * 32, 0, 32, 32)) elif self.animation == 3: g.player.image = g.player.orginalImage.subsurface((0 * 32, 32, 32, 32)) g.player.image = pygame.transform.flip(g.player.image, self.direction, 0) else: if self.direction == 0: g.player.image = g.player.orginalImage.subsurface((iw * ((self.framecount / 3) % 5), 2 * 32, 32, 32)) else: if g.following: g.player.image = pygame.Surface((32, 32), SRCALPHA) g.player.image.blit( g.player.orginalImage.subsurface((iw * ((self.framecount / 3) % 5), 5 * 32, 32, 32)), (0, 0) ) # draw hand if g.connected == 1 and self.direction == 1: g.player.image.blit(g.player.orginalImage.subsurface((2 * 32, 4 * 32, 32, 32)), (7, 0)) else: g.player.image = g.player.orginalImage.subsurface( (iw * ((self.framecount / 3) % 5), 3 * 32, 32, 32) ) # looking forward if (faced == 1 or self.staylooking) and not shooting and not self.jumping: if self.direction == 0: g.player.image = g.player.orginalImage.subsurface((5 * 32, 2 * 32, 32, 32)) else: g.player.image = g.player.orginalImage.subsurface((5 * 32, 3 * 32, 32, 32)) if faced == 2: if self.direction == 0: g.player.image = g.player.orginalImage.subsurface((4 * 32, 1 * 32, 32, 32)) else: g.player.image = g.player.orginalImage.subsurface((5 * 32, 1 * 32, 32, 32)) if self.jumping == 1: if self.direction == 0: g.player.image = g.player.orginalImage.subsurface((6 * 32, 2 * 32, 32, 32)) else: g.player.image = g.player.orginalImage.subsurface((6 * 32, 3 * 32, 32, 32)) if aimup: if self.direction: self.image = g.player.orginalImage.subsurface((5 * 32, 1 * 32, 32, 32)) else: self.image = g.player.orginalImage.subsurface((4 * 32, 1 * 32, 32, 32)) if aimdown: if self.direction: self.image = g.player.orginalImage.subsurface((7 * 32, 1 * 32, 32, 32)) else: self.image = g.player.orginalImage.subsurface((6 * 32, 1 * 32, 32, 32)) if g.player.gravity == 0: self.jumping = 0 self.looking = faced g.infobox = 0 if self.hidden == 1: self.image = self.orginalImage.subsurface((0, 0, 0, 0)) # getting shot for b in g.bullets: if b.owner == "enemy": drect = (b.rect.x, b.rect.y) if self.rect.collidepoint(drect): self.touch(b) # edge g.player.gravity -= GRAVITY if g.player.gravity < MAXVEL: g.player.gravity = MAXVEL self.rect.x += self.dx self.rect.y += dy - g.player.gravity # self.rect.clamp_ip(g.view) # dead ... if self.health <= 0 and not g.dead: g.dead = 1 g.exp2.play() if self.imortal > 0: if self.imortal / 5 % 2 == 0: g.player.image = g.make_image_white(g.player.image) self.imortal -= 1 # getting demoted if self.g.saveData["weapon"] > 1: shottype = "shot" + str(self.g.saveData["weapon"]) if self.g.saveData[shottype] == 0: if self.g.saveData["weapon"] == 2: self.g.saveData["weapon"] = 1 elif self.g.saveData["weapon"] == 4: self.g.saveData["weapon"] = 2 elif self.g.saveData["weapon"] == 7: self.g.saveData["weapon"] = 4 else: print "weapon not down graded" # reloading the gun if self.shotcounter > 0: self.shotcounter -= 1