更改土豆雷触发机制,更改小推车碰撞范围
This commit is contained in:
parent
585f898113
commit
96a6a019b6
@ -3,9 +3,31 @@
|
|||||||
"init_sun_value":5000,
|
"init_sun_value":5000,
|
||||||
"shovel":1,
|
"shovel":1,
|
||||||
"zombie_list":[
|
"zombie_list":[
|
||||||
{"time":1000, "map_y":2, "name":"Zombie"},
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
{"time":2000, "map_y":2, "name":"BucketheadZombie"},
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
{"time":3000, "map_y":2, "name":"BucketheadZombie"},
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":1000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":2000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
|
{"time":3000, "map_y":2, "name":"NewspaperZombie"},
|
||||||
{"time":4000, "map_y":2, "name":"Zombie"},
|
{"time":4000, "map_y":2, "name":"Zombie"},
|
||||||
{"time":5000, "map_y":2, "name":"Zombie"},
|
{"time":5000, "map_y":2, "name":"Zombie"},
|
||||||
{"time":6000, "map_y":2, "name":"Zombie"},
|
{"time":6000, "map_y":2, "name":"Zombie"},
|
||||||
@ -13,6 +35,6 @@
|
|||||||
{"time":8000, "map_y":2, "name":"BucketheadZombie"},
|
{"time":8000, "map_y":2, "name":"BucketheadZombie"},
|
||||||
{"time":9000, "map_y":2, "name":"Zombie"},
|
{"time":9000, "map_y":2, "name":"Zombie"},
|
||||||
{"time":10000, "map_y":2, "name":"Zombie"},
|
{"time":10000, "map_y":2, "name":"Zombie"},
|
||||||
{"time":11000, "map_y":2, "name":"Zombie"}
|
{"time":60000, "map_y":2, "name":"Zombie"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -540,7 +540,7 @@ class PotatoMine(Plant):
|
|||||||
|
|
||||||
def canAttack(self, zombie):
|
def canAttack(self, zombie):
|
||||||
if (not self.is_init and zombie.rect.right >= self.rect.x and (not zombie.lostHead) and
|
if (not self.is_init and zombie.rect.right >= self.rect.x and (not zombie.lostHead) and
|
||||||
(zombie.rect.x - self.rect.x) <= self.explode_x_range):
|
(abs(zombie.rect.x - self.rect.x) <= self.explode_x_range * 0.7)):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|||||||
@ -628,7 +628,7 @@ class Level(tool.State):
|
|||||||
hypno_zombie.setAttack(zombie, False)
|
hypno_zombie.setAttack(zombie, False)
|
||||||
|
|
||||||
def checkCarCollisions(self):
|
def checkCarCollisions(self):
|
||||||
collided_func = pg.sprite.collide_circle_ratio(0.8)
|
collided_func = pg.sprite.collide_circle_ratio(0.6)
|
||||||
for car in self.cars:
|
for car in self.cars:
|
||||||
zombies = pg.sprite.spritecollide(car, self.zombie_groups[car.map_y], False, collided_func)
|
zombies = pg.sprite.spritecollide(car, self.zombie_groups[car.map_y], False, collided_func)
|
||||||
for zombie in zombies:
|
for zombie in zombies:
|
||||||
@ -643,7 +643,8 @@ class Level(tool.State):
|
|||||||
if abs(i - map_y) > y_range:
|
if abs(i - map_y) > y_range:
|
||||||
continue
|
continue
|
||||||
for zombie in self.zombie_groups[i]:
|
for zombie in self.zombie_groups[i]:
|
||||||
if abs(zombie.rect.centerx - x) <= x_range:
|
if ((abs(zombie.rect.centerx - x) <= x_range) or
|
||||||
|
((zombie.rect.right - (x-x_range) > 20) or (zombie.rect.right - (x-x_range))/zombie.rect.width > 0.15, ((x+x_range) - zombie.rect.left > 20) or ((x+x_range) - zombie.rect.left)/zombie.rect.width > 0.15)[zombie.rect.x > x]): # 这代码不太好懂,后面是一个判断僵尸在左还是在右,前面是一个元组,[0]是在左边的情况,[1]是在右边的情况
|
||||||
zombie.health -= 1800
|
zombie.health -= 1800
|
||||||
if zombie.health <= 0:
|
if zombie.health <= 0:
|
||||||
zombie.setBoomDie()
|
zombie.setBoomDie()
|
||||||
@ -771,7 +772,7 @@ class Level(tool.State):
|
|||||||
def checkLose(self):
|
def checkLose(self):
|
||||||
for i in range(self.map_y_len):
|
for i in range(self.map_y_len):
|
||||||
for zombie in self.zombie_groups[i]:
|
for zombie in self.zombie_groups[i]:
|
||||||
if zombie.rect.right < 0 and (not zombie.lostHead):
|
if zombie.rect.right < -10 and (not zombie.lostHead):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user