实现僵尸坐标随机生成
This commit is contained in:
parent
e64762dc35
commit
dc02965354
@ -3,18 +3,18 @@
|
|||||||
"init_sun_value": 50,
|
"init_sun_value": 50,
|
||||||
"shovel": 1,
|
"shovel": 1,
|
||||||
"zombie_list": [
|
"zombie_list": [
|
||||||
{ "time": 20000, "map_y": 0, "name": "Zombie" },
|
{ "time": 20000, "name": "Zombie" },
|
||||||
{ "time": 40000, "map_y": 2, "name": "FlagZombie" },
|
{ "time": 40000, "name": "FlagZombie" },
|
||||||
{ "time": 50000, "map_y": 4, "name": "Zombie" },
|
{ "time": 50000, "name": "Zombie" },
|
||||||
{ "time": 70000, "map_y": 3, "name": "Zombie" },
|
{ "time": 70000, "name": "Zombie" },
|
||||||
{ "time": 72000, "map_y": 1, "name": "FlagZombie" },
|
{ "time": 72000, "name": "FlagZombie" },
|
||||||
{ "time": 74000, "map_y": 2, "name": "Zombie" },
|
{ "time": 74000, "name": "Zombie" },
|
||||||
{ "time": 90000, "map_y": 0, "name": "Zombie" },
|
{ "time": 90000, "name": "Zombie" },
|
||||||
{ "time": 91000, "map_y": 1, "name": "FlagZombie" },
|
{ "time": 91000, "name": "FlagZombie" },
|
||||||
{ "time": 92000, "map_y": 2, "name": "Zombie" },
|
{ "time": 92000, "name": "Zombie" },
|
||||||
{ "time": 93000, "map_y": 3, "name": "FlagZombie" },
|
{ "time": 93000, "name": "FlagZombie" },
|
||||||
{ "time": 94000, "map_y": 0, "name": "Zombie" },
|
{ "time": 94000, "name": "Zombie" },
|
||||||
{ "time": 95000, "map_y": 4, "name": "FlagZombie" },
|
{ "time": 95000, "name": "FlagZombie" },
|
||||||
{ "time": 96000, "map_y": 1, "name": "Zombie" }
|
{ "time": 96000, "name": "Zombie" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -3,18 +3,18 @@
|
|||||||
"init_sun_value":50,
|
"init_sun_value":50,
|
||||||
"shovel":1,
|
"shovel":1,
|
||||||
"zombie_list":[
|
"zombie_list":[
|
||||||
{"time":20000, "map_y":0, "name":"Zombie"},
|
{"time":20000, "name":"Zombie"},
|
||||||
{"time":40000, "map_y":2, "name":"FlagZombie"},
|
{"time":40000, "name":"FlagZombie"},
|
||||||
{"time":50000, "map_y":4, "name":"ConeheadZombie"},
|
{"time":50000, "name":"ConeheadZombie"},
|
||||||
{"time":70000, "map_y":3, "name":"ConeheadZombie"},
|
{"time":70000, "name":"ConeheadZombie"},
|
||||||
{"time":72000, "map_y":1, "name":"FlagZombie"},
|
{"time":72000, "name":"FlagZombie"},
|
||||||
{"time":74000, "map_y":2, "name":"ConeheadZombie"},
|
{"time":74000, "name":"ConeheadZombie"},
|
||||||
{"time":90000, "map_y":0, "name":"FlagZombie"},
|
{"time":90000, "name":"FlagZombie"},
|
||||||
{"time":91000, "map_y":1, "name":"ConeheadZombie"},
|
{"time":91000, "name":"ConeheadZombie"},
|
||||||
{"time":92000, "map_y":2, "name":"Zombie"},
|
{"time":92000, "name":"Zombie"},
|
||||||
{"time":93000, "map_y":3, "name":"ConeheadZombie"},
|
{"time":93000, "name":"ConeheadZombie"},
|
||||||
{"time":94000, "map_y":0, "name":"Zombie"},
|
{"time":94000, "name":"Zombie"},
|
||||||
{"time":95000, "map_y":4, "name":"FlagZombie"},
|
{"time":95000, "name":"FlagZombie"},
|
||||||
{"time":96000, "map_y":1, "name":"ConeheadZombie"}
|
{"time":96000, "name":"ConeheadZombie"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -3,19 +3,19 @@
|
|||||||
"init_sun_value":50,
|
"init_sun_value":50,
|
||||||
"shovel":1,
|
"shovel":1,
|
||||||
"zombie_list":[
|
"zombie_list":[
|
||||||
{"time":20000, "map_y":0, "name":"Zombie"},
|
{"time":20000, "name":"Zombie"},
|
||||||
{"time":40000, "map_y":2, "name":"ConeheadZombie"},
|
{"time":40000, "name":"ConeheadZombie"},
|
||||||
{"time":50000, "map_y":4, "name":"BucketheadZombie"},
|
{"time":50000, "name":"BucketheadZombie"},
|
||||||
{"time":70000, "map_y":3, "name":"BucketheadZombie"},
|
{"time":70000, "name":"BucketheadZombie"},
|
||||||
{"time":72000, "map_y":1, "name":"FlagZombie"},
|
{"time":72000, "name":"FlagZombie"},
|
||||||
{"time":74000, "map_y":2, "name":"ConeheadZombie"},
|
{"time":74000, "name":"ConeheadZombie"},
|
||||||
{"time":90000, "map_y":0, "name":"BucketheadZombie"},
|
{"time":90000, "name":"BucketheadZombie"},
|
||||||
{"time":91000, "map_y":1, "name":"ConeheadZombie"},
|
{"time":91000, "name":"ConeheadZombie"},
|
||||||
{"time":92000, "map_y":2, "name":"Zombie"},
|
{"time":92000, "name":"Zombie"},
|
||||||
{"time":93000, "map_y":3, "name":"BucketheadZombie"},
|
{"time":93000, "name":"BucketheadZombie"},
|
||||||
{"time":94000, "map_y":0, "name":"Zombie"},
|
{"time":94000, "name":"Zombie"},
|
||||||
{"time":95000, "map_y":4, "name":"FlagZombie"},
|
{"time":95000, "name":"FlagZombie"},
|
||||||
{"time":96000, "map_y":1, "name":"BucketheadZombie"},
|
{"time":96000, "name":"BucketheadZombie"},
|
||||||
{"time":97000, "map_y":1, "name":"FlagZombie"}
|
{"time":97000, "name":"FlagZombie"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,31 +12,31 @@
|
|||||||
{"name":"PotatoMine"}
|
{"name":"PotatoMine"}
|
||||||
],
|
],
|
||||||
"zombie_list":[
|
"zombie_list":[
|
||||||
{"time": 1000, "map_y":1, "name":"Zombie"},
|
{"time": 1000, "name":"Zombie"},
|
||||||
{"time": 6000, "map_y":3, "name":"FlagZombie"},
|
{"time": 6000, "name":"FlagZombie"},
|
||||||
{"time":10000, "map_y":0, "name":"ConeheadZombie"},
|
{"time":10000, "name":"ConeheadZombie"},
|
||||||
{"time":14000, "map_y":2, "name":"NewspaperZombie"},
|
{"time":14000, "name":"NewspaperZombie"},
|
||||||
{"time":18000, "map_y":4, "name":"BucketheadZombie"},
|
{"time":18000, "name":"BucketheadZombie"},
|
||||||
{"time":22000, "map_y":0, "name":"Zombie"},
|
{"time":22000, "name":"Zombie"},
|
||||||
{"time":26000, "map_y":3, "name":"BucketheadZombie"},
|
{"time":26000, "name":"BucketheadZombie"},
|
||||||
{"time":30000, "map_y":4, "name":"Zombie"},
|
{"time":30000, "name":"Zombie"},
|
||||||
{"time":32000, "map_y":3, "name":"NewspaperZombie"},
|
{"time":32000, "name":"NewspaperZombie"},
|
||||||
{"time":34000, "map_y":1, "name":"FlagZombie"},
|
{"time":34000, "name":"FlagZombie"},
|
||||||
{"time":36000, "map_y":2, "name":"ConeheadZombie"},
|
{"time":36000, "name":"ConeheadZombie"},
|
||||||
{"time":38000, "map_y":0, "name":"BucketheadZombie"},
|
{"time":38000, "name":"BucketheadZombie"},
|
||||||
{"time":40000, "map_y":1, "name":"ConeheadZombie"},
|
{"time":40000, "name":"ConeheadZombie"},
|
||||||
{"time":42000, "map_y":1, "name":"NewspaperZombie"},
|
{"time":42000, "name":"NewspaperZombie"},
|
||||||
{"time":60000, "map_y":4, "name":"Zombie"},
|
{"time":60000, "name":"Zombie"},
|
||||||
{"time":61000, "map_y":3, "name":"NewspaperZombie"},
|
{"time":61000, "name":"NewspaperZombie"},
|
||||||
{"time":62000, "map_y":1, "name":"FlagZombie"},
|
{"time":62000, "name":"FlagZombie"},
|
||||||
{"time":63000, "map_y":2, "name":"Zombie"},
|
{"time":63000, "name":"Zombie"},
|
||||||
{"time":64000, "map_y":0, "name":"BucketheadZombie"},
|
{"time":64000, "name":"BucketheadZombie"},
|
||||||
{"time":65000, "map_y":1, "name":"ConeheadZombie"},
|
{"time":65000, "name":"ConeheadZombie"},
|
||||||
{"time":66000, "map_y":2, "name":"Zombie"},
|
{"time":66000, "name":"Zombie"},
|
||||||
{"time":67000, "map_y":4, "name":"BucketheadZombie"},
|
{"time":67000, "name":"BucketheadZombie"},
|
||||||
{"time":68000, "map_y":3, "name":"NewspaperZombie"},
|
{"time":68000, "name":"NewspaperZombie"},
|
||||||
{"time":69000, "map_y":1, "name":"FlagZombie"},
|
{"time":69000, "name":"FlagZombie"},
|
||||||
{"time":70000, "map_y":4, "name":"BucketheadZombie"},
|
{"time":70000, "name":"BucketheadZombie"},
|
||||||
{"time":71000, "map_y":0, "name":"FlagZombie"}
|
{"time":71000, "name":"FlagZombie"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -7,28 +7,28 @@
|
|||||||
{"name":"RedWallNutBowling"}
|
{"name":"RedWallNutBowling"}
|
||||||
],
|
],
|
||||||
"zombie_list":[
|
"zombie_list":[
|
||||||
{"time": 1000, "map_y":1, "name":"Zombie"},
|
{"time": 1000, "name":"Zombie"},
|
||||||
{"time":10000, "map_y":3, "name":"FlagZombie"},
|
{"time":10000, "name":"FlagZombie"},
|
||||||
{"time":12000, "map_y":0, "name":"ConeheadZombie"},
|
{"time":12000, "name":"ConeheadZombie"},
|
||||||
{"time":14000, "map_y":2, "name":"NewspaperZombie"},
|
{"time":14000, "name":"NewspaperZombie"},
|
||||||
{"time":18000, "map_y":4, "name":"BucketheadZombie"},
|
{"time":18000, "name":"BucketheadZombie"},
|
||||||
{"time":22000, "map_y":3, "name":"Zombie"},
|
{"time":22000, "name":"Zombie"},
|
||||||
{"time":26000, "map_y":1, "name":"BucketheadZombie"},
|
{"time":26000, "name":"BucketheadZombie"},
|
||||||
{"time":30000, "map_y":4, "name":"Zombie"},
|
{"time":30000, "name":"Zombie"},
|
||||||
{"time":32000, "map_y":3, "name":"NewspaperZombie"},
|
{"time":32000, "name":"NewspaperZombie"},
|
||||||
{"time":34000, "map_y":1, "name":"FlagZombie"},
|
{"time":34000, "name":"FlagZombie"},
|
||||||
{"time":36000, "map_y":2, "name":"ConeheadZombie"},
|
{"time":36000, "name":"ConeheadZombie"},
|
||||||
{"time":40000, "map_y":1, "name":"ConeheadZombie"},
|
{"time":40000, "name":"ConeheadZombie"},
|
||||||
{"time":42000, "map_y":1, "name":"NewspaperZombie"},
|
{"time":42000, "name":"NewspaperZombie"},
|
||||||
{"time":50000, "map_y":4, "name":"Zombie"},
|
{"time":50000, "name":"Zombie"},
|
||||||
{"time":54000, "map_y":3, "name":"NewspaperZombie"},
|
{"time":54000, "name":"NewspaperZombie"},
|
||||||
{"time":58000, "map_y":1, "name":"FlagZombie"},
|
{"time":58000, "name":"FlagZombie"},
|
||||||
{"time":62000, "map_y":2, "name":"Zombie"},
|
{"time":62000, "name":"Zombie"},
|
||||||
{"time":64000, "map_y":1, "name":"ConeheadZombie"},
|
{"time":64000, "name":"ConeheadZombie"},
|
||||||
{"time":66000, "map_y":2, "name":"Zombie"},
|
{"time":66000, "name":"Zombie"},
|
||||||
{"time":68000, "map_y":3, "name":"NewspaperZombie"},
|
{"time":68000, "name":"NewspaperZombie"},
|
||||||
{"time":70000, "map_y":1, "name":"FlagZombie"},
|
{"time":70000, "name":"FlagZombie"},
|
||||||
{"time":72000, "map_y":4, "name":"BucketheadZombie"},
|
{"time":72000, "name":"BucketheadZombie"},
|
||||||
{"time":74000, "map_y":0, "name":"FlagZombie"}
|
{"time":74000, "name":"FlagZombie"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -3,6 +3,7 @@ import os
|
|||||||
import json
|
import json
|
||||||
import sys
|
import sys
|
||||||
import pygame as pg
|
import pygame as pg
|
||||||
|
from random import randint
|
||||||
from .. import tool
|
from .. import tool
|
||||||
from .. import constants as c
|
from .. import constants as c
|
||||||
from ..component import map, plant, zombie, menubar
|
from ..component import map, plant, zombie, menubar
|
||||||
@ -104,7 +105,10 @@ class Level(tool.State):
|
|||||||
self.zombie_list = []
|
self.zombie_list = []
|
||||||
# 目前设置为从JSON文件中读取僵尸出现的时间、种类、位置信息,以后可以将时间设置为模仿原版的机制,位置设置为随机数
|
# 目前设置为从JSON文件中读取僵尸出现的时间、种类、位置信息,以后可以将时间设置为模仿原版的机制,位置设置为随机数
|
||||||
for data in self.map_data[c.ZOMBIE_LIST]:
|
for data in self.map_data[c.ZOMBIE_LIST]:
|
||||||
|
if 'map_y' in data.keys():
|
||||||
self.zombie_list.append((data['time'], data['name'], data['map_y']))
|
self.zombie_list.append((data['time'], data['name'], data['map_y']))
|
||||||
|
else:
|
||||||
|
self.zombie_list.append((data['time'], data['name']))
|
||||||
self.zombie_start_time = 0
|
self.zombie_start_time = 0
|
||||||
self.zombie_list.sort(key=takeTime)
|
self.zombie_list.sort(key=takeTime)
|
||||||
|
|
||||||
@ -322,9 +326,14 @@ class Level(tool.State):
|
|||||||
self.zombie_start_time = self.current_time
|
self.zombie_start_time = self.current_time
|
||||||
elif len(self.zombie_list) > 0:
|
elif len(self.zombie_list) > 0:
|
||||||
data = self.zombie_list[0] # 因此要求僵尸列表按照时间顺序排列
|
data = self.zombie_list[0] # 因此要求僵尸列表按照时间顺序排列
|
||||||
|
# data内容排列:[0]:时间 [1]:名称 [2]:坐标
|
||||||
if data[0] <= (self.current_time - self.zombie_start_time):
|
if data[0] <= (self.current_time - self.zombie_start_time):
|
||||||
|
if len(data) == 3:
|
||||||
self.createZombie(data[1], data[2])
|
self.createZombie(data[1], data[2])
|
||||||
self.zombie_list.remove(data)
|
self.zombie_list.remove(data)
|
||||||
|
else: # len(data) == 2 没有指定map_y
|
||||||
|
self.createZombie(data[1])
|
||||||
|
self.zombie_list.remove(data)
|
||||||
|
|
||||||
for i in range(self.map_y_len):
|
for i in range(self.map_y_len):
|
||||||
self.bullet_groups[i].update(self.game_info)
|
self.bullet_groups[i].update(self.game_info)
|
||||||
@ -402,7 +411,14 @@ class Level(tool.State):
|
|||||||
self.checkCarCollisions()
|
self.checkCarCollisions()
|
||||||
self.checkGameState()
|
self.checkGameState()
|
||||||
|
|
||||||
def createZombie(self, name, map_y):
|
def createZombie(self, name, map_y=None):
|
||||||
|
# 有指定时按照指定生成,无指定时随机位置生成
|
||||||
|
# 0:白天 1:夜晚 2:泳池 3:浓雾 4:屋顶 5:月夜
|
||||||
|
if map_y == None:
|
||||||
|
if self.map_data[c.BACKGROUND_TYPE] in {0, 1, 4, 5}:
|
||||||
|
map_y = randint(0, 4)
|
||||||
|
elif self.map_data[c.BACKGROUND_TYPE] in {2, 3}:
|
||||||
|
map_y = randint(0, 5)
|
||||||
x, y = self.map.getMapGridPos(0, map_y)
|
x, y = self.map.getMapGridPos(0, map_y)
|
||||||
# 新增的僵尸也需要在这里声明
|
# 新增的僵尸也需要在这里声明
|
||||||
if name == c.NORMAL_ZOMBIE:
|
if name == c.NORMAL_ZOMBIE:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user