def __init__(self): self.time = 0 self.plimg = [] self.plimg.append( cache.cache_set_alpha( cache.cache_rotate(globe.mgame.rsmanager.anime["player"][5], 90), 128)) self.plimg.append( cache.cache_set_alpha( cache.cache_rotate(globe.mgame.rsmanager.anime["player"][6], 90), 128)) self.plimg.append( cache.cache_set_alpha(cache.cache_flip(self.plimg[1]), 128)) self.player_bullet = [] self.plrc = self.plimg[0].get_rect() self.plspeed = 10 self.enemy_bullet = set() global player_point player_point = globe.scgame.player.point
def draw(self, screen): for i in self.plbullet: screen.blit(self.plimg[i[1]], i[0]) for i in self.enbullet: if i.orbit.theta != 0: tpimg = cache.cache_rotate(i.bltype.image, i.orbit.theta) tprc = tpimg.get_rect() else: tpimg = i.bltype.image tprc = tpimg.get_rect() tprc.center = i.orbit.point screen.blit(tpimg, tprc)
def draw(self, screen): """子弹绘制函数, 维护全部的子弹绘制""" for i in self.player_bullet: screen.blit(self.plimg[i[1]], i[0]) for i in self.enemy_bullet: if i.orbit.theta != 0: tpimg = cache.cache_rotate(i.bullet_type.image, i.orbit.theta) tprc = tpimg.get_rect() else: tpimg = i.bullet_type.image tprc = tpimg.get_rect() tprc.center = i.orbit.point screen.blit(tpimg, tprc)
def draw(self, screen): self.rect.centerx = int(self.point[0]) self.rect.centery = int(self.point[1]) if self.status != cstatus["normal"] and self.status != cstatus["hit"]: tmp = cache.cache_set_alpha(self.anime[self.aindex], (self.frame % 15) * 60 / 15 + 100, True) tmp = cache.cache_set_mask(tmp, (100, 0, 100, 40), True) screen.blit(tmp, self.rect) else: screen.blit(self.anime[self.aindex], self.rect) tmp = cache.cache_rotate(canime["panding"], self.frame, True) tprc = tmp.get_rect() if self.keys[pygame.K_LSHIFT]: if self.status != cstatus["crash"]: tprc.center = self.rect.center screen.blit(tmp, tprc) if self.status == cstatus["crash"]: tprc.center = self.tmppd screen.blit(tmp, tprc)
def update(self): global player self.image = cache.cache_rotate(self.tmimg, globe.scgame.time * 2, True) for i in range(4): self.rect[i].size = self.image.get_size() power = player.power if player.keys[pygame.K_LSHIFT]: dis = 18 else: dis = 28 if power < 100: pass elif power < 200: self.rect[0].center = player.point self.rect[0].top -= dis elif power < 300: self.rect[0].center = player.point self.rect[0].left -= dis self.rect[1].center = player.point self.rect[1].left += dis elif power < 400: self.rect[0].center = player.point self.rect[0].left -= dis self.rect[1].center = player.point self.rect[1].left += dis self.rect[2].center = player.point self.rect[2].top -= dis else: self.rect[0].center = player.point self.rect[0].left -= dis self.rect[1].center = player.point self.rect[1].left += dis self.rect[2].center = self.rect[0].center self.rect[2].left -= (dis - 10) self.rect[3].center = self.rect[1].center self.rect[3].left += (dis - 10)
def update_enemy(self, enemy): enemy.image = cache.cache_rotate(enemy.entype.anime, enemy.frame * 18) enemy.rect = enemy.image.get_rect() enemy.rect.center = self.point