再写一点杨桃
This commit is contained in:
parent
01be40c044
commit
26ed451083
@ -34,7 +34,7 @@ class Car(pg.sprite.Sprite):
|
|||||||
def draw(self, surface):
|
def draw(self, surface):
|
||||||
surface.blit(self.image, self.rect)
|
surface.blit(self.image, self.rect)
|
||||||
|
|
||||||
|
# 豌豆及孢子类普通子弹
|
||||||
class Bullet(pg.sprite.Sprite):
|
class Bullet(pg.sprite.Sprite):
|
||||||
def __init__(self, x, start_y, dest_y, name, damage, effect=False, passedTorchWood=None):
|
def __init__(self, x, start_y, dest_y, name, damage, effect=False, passedTorchWood=None):
|
||||||
pg.sprite.Sprite.__init__(self)
|
pg.sprite.Sprite.__init__(self)
|
||||||
@ -107,9 +107,11 @@ class Bullet(pg.sprite.Sprite):
|
|||||||
def draw(self, surface):
|
def draw(self, surface):
|
||||||
surface.blit(self.image, self.rect)
|
surface.blit(self.image, self.rect)
|
||||||
|
|
||||||
# 杨桃的子弹,看作豌豆、孢子类子弹的特殊子类
|
# 杨桃的子弹
|
||||||
class StarBullet(Bullet):
|
class StarBullet(Bullet):
|
||||||
def __init__(self, x, y, name):
|
def __init__(self, x, start_y, name, damage, direction): # direction指星星飞行方向
|
||||||
|
pg.sprite.Sprite.__init__(self)
|
||||||
|
|
||||||
self.name = name
|
self.name = name
|
||||||
self.frames = []
|
self.frames = []
|
||||||
self.frame_index = 0
|
self.frame_index = 0
|
||||||
@ -117,7 +119,59 @@ class StarBullet(Bullet):
|
|||||||
self.image = self.frames[self.frame_index]
|
self.image = self.frames[self.frame_index]
|
||||||
self.rect = self.image.get_rect()
|
self.rect = self.image.get_rect()
|
||||||
self.rect.x = x
|
self.rect.x = x
|
||||||
self.rect.y = y
|
self.rect.y = start_y
|
||||||
|
self.direction = direction
|
||||||
|
self.damage = damage
|
||||||
|
self.state = c.FLY
|
||||||
|
self.current_time = 0
|
||||||
|
|
||||||
|
def loadFrames(self, frames, name):
|
||||||
|
frame_list = tool.GFX[name]
|
||||||
|
if name in tool.PLANT_RECT:
|
||||||
|
data = tool.PLANT_RECT[name]
|
||||||
|
x, y, width, height = data['x'], data['y'], data['width'], data['height']
|
||||||
|
else:
|
||||||
|
x, y = 0, 0
|
||||||
|
rect = frame_list[0].get_rect()
|
||||||
|
width, height = rect.w, rect.h
|
||||||
|
|
||||||
|
for frame in frame_list:
|
||||||
|
frames.append(tool.get_image(frame, x, y, width, height))
|
||||||
|
|
||||||
|
def load_images(self):
|
||||||
|
self.fly_frames = []
|
||||||
|
self.explode_frames = []
|
||||||
|
|
||||||
|
fly_name = self.name
|
||||||
|
explode_name = 'PeaNormalExplode'
|
||||||
|
|
||||||
|
self.loadFrames(self.fly_frames, fly_name)
|
||||||
|
self.loadFrames(self.explode_frames, explode_name)
|
||||||
|
|
||||||
|
self.frames = self.fly_frames
|
||||||
|
|
||||||
|
def update(self, game_info):
|
||||||
|
self.current_time = game_info[c.CURRENT_TIME]
|
||||||
|
if self.state == c.FLY:
|
||||||
|
if self.rect.y != self.dest_y:
|
||||||
|
self.rect.y += self.y_vel
|
||||||
|
if self.y_vel * (self.dest_y - self.rect.y) < 0:
|
||||||
|
self.rect.y = self.dest_y
|
||||||
|
self.rect.x += self.x_vel
|
||||||
|
if self.rect.x > c.SCREEN_WIDTH:
|
||||||
|
self.kill()
|
||||||
|
elif self.state == c.EXPLODE:
|
||||||
|
if (self.current_time - self.explode_timer) > 250:
|
||||||
|
self.kill()
|
||||||
|
|
||||||
|
def setExplode(self):
|
||||||
|
self.state = c.EXPLODE
|
||||||
|
self.explode_timer = self.current_time
|
||||||
|
self.frames = self.explode_frames
|
||||||
|
self.image = self.frames[self.frame_index]
|
||||||
|
|
||||||
|
def draw(self, surface):
|
||||||
|
surface.blit(self.image, self.rect)
|
||||||
|
|
||||||
|
|
||||||
class Plant(pg.sprite.Sprite):
|
class Plant(pg.sprite.Sprite):
|
||||||
|
|||||||
@ -237,6 +237,14 @@ BULLET_DAMAGE_FIREBALL_RANGE = 13
|
|||||||
BULLET_EFFECT_ICE = 'ice'
|
BULLET_EFFECT_ICE = 'ice'
|
||||||
BULLET_EFFECT_UNICE = 'unice'
|
BULLET_EFFECT_UNICE = 'unice'
|
||||||
|
|
||||||
|
# 杨桃子弹
|
||||||
|
# 子弹方向
|
||||||
|
STAR_FORWARD_UP = 'forwardUp' # 向前上方
|
||||||
|
STAR_FORWARD_DOWN = 'forwardDown' #向前下方
|
||||||
|
STAR_BACKWARD = 'backward' #向后
|
||||||
|
STAR_UPWARD = 'upward' # 向上
|
||||||
|
STAR_DOWNWARD = 'downward' # 向下
|
||||||
|
|
||||||
# 僵尸信息
|
# 僵尸信息
|
||||||
ZOMBIE_IMAGE_RECT = 'zombie_image_rect'
|
ZOMBIE_IMAGE_RECT = 'zombie_image_rect'
|
||||||
ZOMBIE_HEAD = 'ZombieHead'
|
ZOMBIE_HEAD = 'ZombieHead'
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user