9 from keyhandler import *
13 evlock = thread.allocate_lock()
18 global events,evlock,t_orig
20 e = pygame.event.wait()
21 t = pygame.time.get_ticks() - t_orig
26 def event_thread_start():
29 thread.start_new_thread(event_thread,())
31 def event_thread_stop():
34 pygame.event.post(pygame.event.Event(pygame.NOEVENT,{}))
44 def playgame(gameconfig,song):
48 dm = eval(gameconfig['format'] + '(k)');
49 cm = ChannelManager(k);
50 kh = KeyHandler(gameconfig,k);
52 # No background anims? No problem!
54 print "IT'S PEANUT BUTTER JELLY TIME!"
56 k.bmps[x] = pygame.transform.scale(pygame.image.load("gfx/banana%d.png" % x).convert(), (256,256))
57 lastbeat = k.bmelist[-1].beat
61 k.add(BMEvent(i,BME_BGA,None,j))
66 li = BMEListIter(k.bmelist)
67 reaper_li = BMEListIter(k.bmelist)
68 t_finish = k.length() + 5000
70 t_orig = pygame.time.get_ticks()
73 t_orig -= int(k.offset * 1000)
76 b = b_l = k.eval_beatfunc(t_orig)
82 t = pygame.time.get_ticks() - t_orig
83 b = k.eval_beatfunc(t)
88 bmelist = li.window(db)
89 dm.draw(t + 45, bmelist)
91 if bme.type == BME_BGM:
93 if bme.type == BME_TEMPO:
95 kh.setproperties({'bpm': bme.dataref})
97 for (t,e) in get_events():
100 (hitbme, properties) = r
103 dm.setproperties(properties)
105 if e.type == pygame.KEYDOWN:
106 if e.key == pygame.K_ESCAPE:
110 elif e.key == pygame.K_PRINT:
111 pygame.image.save(screen,"screenshot.bmp")
113 reaper_li.goto(b - 2.0)
114 bmelist = reaper_li.window(1.0, BME_NOTE1 | BME_NOTE2)
116 dm.setproperties({'judgement': JUDGE_POOR})
123 # Hmm. This is sort of braindead, isn't it?
125 def __init__(self,song):
129 print "Playing",self.song
130 # IIDX is hardcoded for now
131 playgame(config.gametypes['IIDX'], self.song)
132 return ['fileselect']