четверг, 3 июля 2014 г.

Дописал скрипт.

Теперь порядок движения ботов читается из файла. Правда пришлось повозиться - все время мешал символ перевода строки, зараза.

Дальше кусок скрипта, который занимается чтением данных из файла, и расстановкой объектов. Может кому пригодиться, хотя он еще сыроват.  Как бы сюда цивилизованно код вставлять?




    # Читаем файл, что бы узнать какие объекты и куда добавлять.
    #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()

Комментариев нет:

Отправить комментарий