2015-11-23 41 views
0

我想在StarCraft2中每幀多幀處理遊戲數據。我不知道如何使用PlayerStatsEvent()來訪問每一幀的遊戲數據。 PlayerStatsEvent()我的代碼如下:如何訪問sc2reader中的遊戲事件數據?

from sc2reader.events import tracker 
from sc2reader.factories import SC2Factory 

path1 = 'D:/Data/sorted/bronze/' 
replays = sc2.load_replays(path1) 
for r in replays: 
    if r.type == '1v1': 
     tracker_event = tracker.PlayerStatsEvent(???) 

的PlayerStatsEvent()的定義如下:

class PlayerStatsEvent(TrackerEvent): 

def __init__(self, frames, data, build): 
    super(PlayerStatsEvent, self).__init__(frames) 

回答

0

我不認爲你應該自行使用PlayerStatsEvent - 事件當你迭代你已經加載的重放時,由框架生成/發出。您應該能夠通過replay.events找到這些事件,然後使用isinstance過濾事件。

+0

謝謝。 'replay.events'是一個'PacketEvent'列表,它們都沒有包含'PlayerStatsEvent()'。 – YNr

+0

@Ynr改爲嘗試'.tracker_events'。引擎的整個結構詳見[https://github.com/GraylinKim/sc2reader/blob/master/sc2reader/engine/engine.py](GitHub) – MatsLindh

+0

我也嘗試了replay.tracker_events,但它返回一個空的重播列表。 – YNr