mirror of
https://github.com/Yonokid/PyTaiko.git
synced 2026-02-04 11:40:13 +01:00
add pausing
This commit is contained in:
@@ -1095,7 +1095,7 @@ void set_music_pan(music music, float pan) {
|
||||
float get_music_time_length(music music) {
|
||||
float total_seconds = 0.0f;
|
||||
|
||||
total_seconds = (float)music.frameCount/music.stream.sampleRate;
|
||||
total_seconds = (float)music.frameCount/AUDIO.System.sampleRate;
|
||||
|
||||
return total_seconds;
|
||||
}
|
||||
@@ -1104,7 +1104,7 @@ float get_music_time_played(music music) {
|
||||
float seconds_played = 0.0f;
|
||||
if (music.stream.buffer != NULL) {
|
||||
pthread_mutex_lock(&AUDIO.System.lock);
|
||||
seconds_played = (float)music.stream.buffer->framesProcessed / music.stream.sampleRate;
|
||||
seconds_played = (float)music.stream.buffer->framesProcessed / AUDIO.System.sampleRate;
|
||||
pthread_mutex_unlock(&AUDIO.System.lock);
|
||||
}
|
||||
return seconds_played;
|
||||
|
||||
@@ -53,6 +53,9 @@ class GameScreen(Screen):
|
||||
self.end_ms = 0
|
||||
self.start_delay = 1000
|
||||
self.song_started = False
|
||||
self.paused = False
|
||||
self.pause_time = 0
|
||||
self.audio_time = 0
|
||||
self.movie = None
|
||||
self.song_music = None
|
||||
if global_data.config["general"]["nijiiro_notes"]:
|
||||
@@ -212,6 +215,19 @@ class GameScreen(Screen):
|
||||
audio.stop_music_stream(self.song_music)
|
||||
return self.on_screen_end('SONG_SELECT')
|
||||
|
||||
if ray.is_key_pressed(ray.KeyboardKey.KEY_SPACE):
|
||||
self.paused = not self.paused
|
||||
if self.paused:
|
||||
if self.song_music is not None:
|
||||
self.audio_time = audio.get_music_time_played(self.song_music)
|
||||
audio.stop_music_stream(self.song_music)
|
||||
self.pause_time = get_current_ms() - self.start_ms
|
||||
else:
|
||||
if self.song_music is not None:
|
||||
audio.play_music_stream(self.song_music, 'music')
|
||||
audio.seek_music_stream(self.song_music, self.audio_time)
|
||||
self.start_ms = get_current_ms() - self.pause_time
|
||||
|
||||
def spawn_ending_anims(self):
|
||||
if global_data.session_data[global_data.player_num-1].result_data.bad == 0:
|
||||
self.player_1.ending_anim = FCAnimation(self.player_1.is_2p)
|
||||
@@ -233,7 +249,8 @@ class GameScreen(Screen):
|
||||
super().update()
|
||||
current_time = get_current_ms()
|
||||
self.transition.update(current_time)
|
||||
self.current_ms = current_time - self.start_ms
|
||||
if not self.paused:
|
||||
self.current_ms = current_time - self.start_ms
|
||||
self.start_song(current_time)
|
||||
self.update_background(current_time)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user