Skip to content

Commit 7ed3623

Browse files
committed
add Gif
1 parent bcf2599 commit 7ed3623

File tree

2 files changed

+25
-6
lines changed

2 files changed

+25
-6
lines changed

beetle.py

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from pylsl import StreamInlet, resolve_stream
66
from scipy.signal import iirnotch, butter, lfilter
77
import math
8+
from PIL import Image
89

910
# Initialize LSL stream
1011
streams = resolve_stream('name', 'BioAmpDataStream')
@@ -36,9 +37,20 @@
3637
screen = pygame.display.set_mode((800, 600))
3738
pygame.display.set_caption('Beetle Game')
3839

39-
# Load beetle image
40-
beetle_image = pygame.image.load('media\\beetle.jpg')
41-
beetle_image = pygame.transform.scale(beetle_image, (80, 80))
40+
# Load GIF and extract frames
41+
gif_path = 'media/RobotBug.gif'
42+
gif = Image.open(gif_path)
43+
44+
frames = []
45+
for frame in range(gif.n_frames):
46+
gif.seek(frame)
47+
frame_surface = pygame.image.fromstring(gif.tobytes(), gif.size, gif.mode)
48+
frame_surface = pygame.transform.scale(frame_surface, (120, 120))
49+
frames.append(frame_surface)
50+
51+
frame_index = 0
52+
frame_delay = 100 # Time per frame in milliseconds
53+
last_frame_time = pygame.time.get_ticks()
4254

4355
# Function to display a message on the screen
4456
def show_message(message, duration=3):
@@ -109,9 +121,9 @@ def calculate_focus_level(eeg_data, sampling_rate=500):
109121
def update_beetle_position(focus_level, is_focus_stable):
110122
global beetle_y
111123
if is_focus_stable:
112-
beetle_y = max(10 + beetle_image.get_height() // 2, beetle_y - focus_speed_upward)
124+
beetle_y = max(10 + frames[0].get_height() // 2, beetle_y - focus_speed_upward)
113125
else:
114-
beetle_y = min(580 - beetle_image.get_height() // 2, beetle_y + focus_speed_downward)
126+
beetle_y = min(580 - frames[0].get_height() // 2, beetle_y + focus_speed_downward)
115127

116128
print("STARTING GAME...")
117129
running = True
@@ -152,8 +164,15 @@ def update_beetle_position(focus_level, is_focus_stable):
152164

153165
last_focus_time = current_time
154166

167+
# Update GIF animation
168+
current_tick = pygame.time.get_ticks()
169+
if current_tick - last_frame_time >= frame_delay:
170+
frame_index = (frame_index + 1) % len(frames)
171+
last_frame_time = current_tick
172+
155173
screen.fill("#FFFFFF")
156174
pygame.draw.rect(screen, (0, 0, 0), (10, 10, 780, 580), 5)
175+
beetle_image = frames[frame_index] # Get current frame
157176
screen.blit(beetle_image, (beetle_x - beetle_image.get_width() // 2, beetle_y - beetle_image.get_height() // 2))
158177

159178
pygame.display.update()
@@ -162,4 +181,4 @@ def update_beetle_position(focus_level, is_focus_stable):
162181
print("Exiting gracefully...")
163182
running = False
164183

165-
pygame.quit()
184+
pygame.quit()

media/RobotBug.gif

2.34 MB
Loading

0 commit comments

Comments
 (0)