我正在编写一个脚本来读取.osu文件并将其转换为特定对象。对于每个“hitobject”必须执行多次
阅读部分工作正常,但是附加对象是个问题
追加对象时,它似乎覆盖了列表中的所有现有元素。我一辈子都搞不懂为什么会这样
我试过创建一个“temp”列表,它将对象存储在本地列表中,而不是“self.notes”列表中,问题仍然是一样的
我相信错误发生在文件的这部分:
if hitobjline != -1:
hitobjects = self.file_lines[hitobjline+1:]
for i in hitobjects:
ln = i[:i.find(':')].split(',')
new_note = [NoteType.Circle, NoteType.Hold][int(ln[3] == '128')]
add_note = File.Note
add_note.NoteTypeByte = ln[3]
add_note.Note_Number = int(ln[0])
add_note.Time = int(ln[2])
add_note.NoteType = new_note
add_note.Raw = ln
self.notes.append(add_note)
print(ln, ln[3], ln[3] == '128', new_note, add_note.NoteType)
对于后台,.osu文件的语法如下:x,y,time,type,hit,end:stuff-i-dont-need-to-worry-about 你知道吗
我希望输出self.notes[0].NoteType
是osureader.NoteType.Hold
,因为文件的第一行是192,192,410,128,0,2974:0:0:0:0:
(128表示'Hold'
但是,我得到了文件的最后一行,osurear.NoteType.Circle
目前没有回答
相关问题 更多 >
编程相关推荐