Теперь порядок движения ботов читается из файла. Правда пришлось повозиться - все время мешал символ перевода строки, зараза.
Дальше кусок скрипта, который занимается чтением данных из файла, и расстановкой объектов. Может кому пригодиться, хотя он еще сыроват. Как бы сюда цивилизованно код вставлять?
# Читаем файл, что бы узнать какие объекты и куда добавлять.
#f = open(str(sys.path[0]) + '/' + '1', 'r')
f = open('/home/denis8424/bge/DarkWorld' + '/' + '1', 'r')
for line in f:
listSimbols = line.split(' ')
if listSimbols[0] == '#': # игнорировать комментарии
continue
# добавляем волны ботов
if listSimbols[0] == 'w': # добалять списки строк в список волн противников.
del listSimbols[0] # убираем первый символ
del listSimbols[-1] # убираем последний символ
wave = []
for simbol in listSimbols:
wave.append(int(simbol))
if 'waveList' in bge.logic.globalDict:
bge.logic.globalDict['waveList'].append(wave)
else:
bge.logic.globalDict['waveList'] =[]
bge.logic.globalDict['waveList'].append(wave)
# добавляем объекты на сцену
elif listSimbols[0] == 'l':
positionIndex = int(listSimbols[3])
orientation = listSimbols[2]
emiter.position = bge.logic.globalDict['koordPointList'][positionIndex]
newOb = scene.addObject(listSimbols[1], emiter)
if orientation == 'up':
newOb.worldOrientation = [[1.0, 0.0, 0.0],[0.0, 1.0, 0.0],[0.0,0.0,1.0]]
#print(newOb.worldOrientation)
elif orientation == 'right':
newOb.worldOrientation = [[0.0, 1.0, 0.0],[-1.0, 0.0, 0.0],[0.0,0.0,1.0]]
#print(newOb.worldOrientation)
elif orientation == 'down':
newOb.worldOrientation = [[-1.0, 0.0, 0.0],[0.0, -1.0, 0.0],[0.0,0.0,1.0]]
#print(newOb.worldOrientation)
elif orientation == 'left':
newOb.worldOrientation = [[0.0, -1.0, 0.0],[1.0, 0.0, 0.0],[0.0,0.0,1.0]]
#print(newOb.worldOrientation)
elif listSimbols[0] == 'p':
del listSimbols[0] # убираем первый символ
del listSimbols[-1] # убираем последний символ
for simbol in listSimbols:
if 'listPath' in bge.logic.globalDict:
bge.logic.globalDict['listPath'].append(int(simbol))
else:
bge.logic.globalDict['listPath'] =[]
bge.logic.globalDict['listPath'].append(int(simbol))
print(bge.logic.globalDict['listPath'])
else:
continue
f.close()
Дальше кусок скрипта, который занимается чтением данных из файла, и расстановкой объектов. Может кому пригодиться, хотя он еще сыроват. Как бы сюда цивилизованно код вставлять?
# Читаем файл, что бы узнать какие объекты и куда добавлять.
#f = open(str(sys.path[0]) + '/' + '1', 'r')
f = open('/home/denis8424/bge/DarkWorld' + '/' + '1', 'r')
for line in f:
listSimbols = line.split(' ')
if listSimbols[0] == '#': # игнорировать комментарии
continue
# добавляем волны ботов
if listSimbols[0] == 'w': # добалять списки строк в список волн противников.
del listSimbols[0] # убираем первый символ
del listSimbols[-1] # убираем последний символ
wave = []
for simbol in listSimbols:
wave.append(int(simbol))
if 'waveList' in bge.logic.globalDict:
bge.logic.globalDict['waveList'].append(wave)
else:
bge.logic.globalDict['waveList'] =[]
bge.logic.globalDict['waveList'].append(wave)
# добавляем объекты на сцену
elif listSimbols[0] == 'l':
positionIndex = int(listSimbols[3])
orientation = listSimbols[2]
emiter.position = bge.logic.globalDict['koordPointList'][positionIndex]
newOb = scene.addObject(listSimbols[1], emiter)
if orientation == 'up':
newOb.worldOrientation = [[1.0, 0.0, 0.0],[0.0, 1.0, 0.0],[0.0,0.0,1.0]]
#print(newOb.worldOrientation)
elif orientation == 'right':
newOb.worldOrientation = [[0.0, 1.0, 0.0],[-1.0, 0.0, 0.0],[0.0,0.0,1.0]]
#print(newOb.worldOrientation)
elif orientation == 'down':
newOb.worldOrientation = [[-1.0, 0.0, 0.0],[0.0, -1.0, 0.0],[0.0,0.0,1.0]]
#print(newOb.worldOrientation)
elif orientation == 'left':
newOb.worldOrientation = [[0.0, -1.0, 0.0],[1.0, 0.0, 0.0],[0.0,0.0,1.0]]
#print(newOb.worldOrientation)
elif listSimbols[0] == 'p':
del listSimbols[0] # убираем первый символ
del listSimbols[-1] # убираем последний символ
for simbol in listSimbols:
if 'listPath' in bge.logic.globalDict:
bge.logic.globalDict['listPath'].append(int(simbol))
else:
bge.logic.globalDict['listPath'] =[]
bge.logic.globalDict['listPath'].append(int(simbol))
print(bge.logic.globalDict['listPath'])
else:
continue
f.close()
Комментариев нет:
Отправить комментарий