修改杨桃设定

This commit is contained in:
星外之神 2022-04-24 22:45:47 +08:00
parent dca79c68d1
commit 05d106a368

View File

@ -159,8 +159,8 @@ class StarBullet(Bullet):
self.current_time = game_info[c.CURRENT_TIME] self.current_time = game_info[c.CURRENT_TIME]
if self.state == c.FLY: if self.state == c.FLY:
if self.direction == c.STAR_FORWARD_UP: if self.direction == c.STAR_FORWARD_UP:
self.rect.x += 7 self.rect.x += 8
self.rect.y -= 7 self.rect.y -= 6
elif self.direction == c.STAR_FORWARD_DOWN: elif self.direction == c.STAR_FORWARD_DOWN:
self.rect.x += 7 self.rect.x += 7
self.rect.y += 7 self.rect.y += 7
@ -189,9 +189,9 @@ class StarBullet(Bullet):
# 这里用的是坚果保龄球的代码改一下,实现子弹换行 # 这里用的是坚果保龄球的代码改一下,实现子弹换行
def handleMapYPosition(self): def handleMapYPosition(self):
_, map_y1 = self.level.map.getMapIndex(self.rect.x, self.rect.centery) _, map_y1 = self.level.map.getMapIndex(self.rect.x, self.rect.centery +20)
_, map_y2 = self.level.map.getMapIndex(self.rect.x, self.rect.bottom) _, map_y2 = self.level.map.getMapIndex(self.rect.x, self.rect.bottom +20)
if (self.map_y != map_y1) and (0 <= map_y1 <= self.level.map_y_len-1) and map_y1 == map_y2: # 换行 if (self.map_y != map_y1) and (0 <= map_y1 <= self.level.map_y_len-1): # 换行
self.level.bullet_groups[self.map_y].remove(self) self.level.bullet_groups[self.map_y].remove(self)
self.level.bullet_groups[map_y1].add(self) self.level.bullet_groups[map_y1].add(self)
self.map_y = map_y1 self.map_y = map_y1
@ -1148,11 +1148,11 @@ class StarFruit(Plant):
_, zombieMapY = self.level.map.getMapIndex(zombie.rect.centerx, zombie.rect.bottom) _, zombieMapY = self.level.map.getMapIndex(zombie.rect.centerx, zombie.rect.bottom)
if (self.rect.x >= zombie.rect.x) and (self.map_y == zombieMapY): # 对于同行且在杨桃后的僵尸 if (self.rect.x >= zombie.rect.x) and (self.map_y == zombieMapY): # 对于同行且在杨桃后的僵尸
return True return True
# 斜向上理想直线方程为f(zombie.rect.x) = -zombie.rect.x + self.rect.y + self.rect.right - 15 # 斜向上理想直线方程为f(zombie.rect.x) = -0.75*(zombie.rect.x - (self.rect.right - 5)) + self.rect.y - 10
elif abs(zombie.rect.y - (-zombie.rect.x + self.rect.y + self.rect.right - 15)) <= 60: elif -100 <= (zombie.rect.y - (-0.75*(zombie.rect.x - (self.rect.right - 5)) + self.rect.y - 10)) <= 70:
return True return True
# 斜向下理想直线方程为f(zombie.rect.x) = zombie.rect.x + self.rect.y - self.rect.right - 15 # 斜向下理想直线方程为f(zombie.rect.x) = zombie.rect.x + self.rect.y - self.rect.right - 15
elif abs(zombie.rect.y - (zombie.rect.x + self.rect.y - self.rect.right - 15)) <= 60: elif abs(zombie.rect.y - (zombie.rect.x + self.rect.y - self.rect.right - 15)) <= 70:
return True return True
elif zombie.rect.left <= self.rect.x <= zombie.rect.right: elif zombie.rect.left <= self.rect.x <= zombie.rect.right:
return True return True
@ -1160,7 +1160,7 @@ class StarFruit(Plant):
def attacking(self): def attacking(self):
if (self.current_time - self.shoot_timer) > 1400: if (self.current_time - self.shoot_timer) > 1400:
self.bullet_group.add(StarBullet(self.rect.left + 10, self.rect.y + 20, c.BULLET_DAMAGE_NORMAL, c.STAR_BACKWARD, self.level)) self.bullet_group.add(StarBullet(self.rect.left + 10, self.rect.y + 15, c.BULLET_DAMAGE_NORMAL, c.STAR_BACKWARD, self.level))
self.bullet_group.add(StarBullet(self.rect.centerx - 20, self.rect.bottom - self.rect.h + 5, c.BULLET_DAMAGE_NORMAL, c.STAR_UPWARD, self.level)) self.bullet_group.add(StarBullet(self.rect.centerx - 20, self.rect.bottom - self.rect.h + 5, c.BULLET_DAMAGE_NORMAL, c.STAR_UPWARD, self.level))
self.bullet_group.add(StarBullet(self.rect.centerx - 20, self.rect.bottom - 5, c.BULLET_DAMAGE_NORMAL, c.STAR_DOWNWARD, self.level)) self.bullet_group.add(StarBullet(self.rect.centerx - 20, self.rect.bottom - 5, c.BULLET_DAMAGE_NORMAL, c.STAR_DOWNWARD, self.level))
self.bullet_group.add(StarBullet(self.rect.right - 5, self.rect.bottom - 20, c.BULLET_DAMAGE_NORMAL, c.STAR_FORWARD_DOWN, self.level)) self.bullet_group.add(StarBullet(self.rect.right - 5, self.rect.bottom - 20, c.BULLET_DAMAGE_NORMAL, c.STAR_FORWARD_DOWN, self.level))