From 2119dec779f81dfa072c81258a99da9dab77ea66 Mon Sep 17 00:00:00 2001 From: BBfiChe <113315299+BBfiChe@users.noreply.github.com> Date: Fri, 14 Jun 2024 10:03:13 -0600 Subject: [PATCH 1/5] Add Flashlight Game --- Flashlight/Flashlight.py | 48 +++++++++++++++++++++++++++++ Flashlight/arcade_description.txt | 8 +++++ Flashlight/arcade_title_video.webm | Bin 0 -> 333217 bytes 3 files changed, 56 insertions(+) create mode 100644 Flashlight/Flashlight.py create mode 100644 Flashlight/arcade_description.txt create mode 100644 Flashlight/arcade_title_video.webm diff --git a/Flashlight/Flashlight.py b/Flashlight/Flashlight.py new file mode 100644 index 00000000..2e7385ea --- /dev/null +++ b/Flashlight/Flashlight.py @@ -0,0 +1,48 @@ +import thumby +import time + +# A-Flashlight.py + +black = bytearray([255, 233, 207, 9, 15, 9, 207, 233, + 3, 3, 3, 0, 0, 0, 3, 3]) + +white = bytearray([0, 22, 48, 246, 240, 246, 48, 22, + 0, 0, 0, 3, 3, 3, 0, 0]) + +version = bytearray([255, 233, 207, 9, 15, 9, 207, 233, + 3, 3, 3, 0, 0, 0, 3, 3]) + + +# BITMAP: width: 8, height: 8 +copyright = bytearray([255,129,189,165,165,165,129,255]) + +clicks = 1 +fill = 1 + +while True: + thumby.display.fill(fill) + thumby.display.blit(version, 0, 31, 8, 8, -1, 0, 0) + + if thumby.buttonA.justPressed(): + if fill == 1: + fill = 0 + version = bytearray([0, 22, 48, 246, 240, 246, 48, 22, + 0, 0, 0, 3, 3, 3, 0, 0]) + else: + fill = 1 + version = bytearray([255, 233, 207, 9, 15, 9, 207, 233, + 3, 3, 3, 0, 0, 0, 3, 3]) + + if thumby.buttonB.justPressed(): + if clicks == 1: + thumby.display.fill(0) + thumby.display.drawText("Exiting...", 5, 10, 1) + thumby.display.drawText(" BBfiChe", 3, 25, 1) + thumby.display.blit(copyright, 4, 25, 8, 8, -1, 0, 0) + thumby.display.update() + time.sleep(3) + thumby.reset() + else: + clicks += 1 + + thumby.display.update() \ No newline at end of file diff --git a/Flashlight/arcade_description.txt b/Flashlight/arcade_description.txt new file mode 100644 index 00000000..dfa94043 --- /dev/null +++ b/Flashlight/arcade_description.txt @@ -0,0 +1,8 @@ +A simple flashlight script so that you have a mini flashlight to help you find things under your couch or something, I'm not sure I just made this for fun lol +------------------- +Created by @BBfiChe on Discord +------------------- +Updates: +------------------- +Update 1.0.0 + - Added Flashlight game. \ No newline at end of file diff --git a/Flashlight/arcade_title_video.webm b/Flashlight/arcade_title_video.webm new file mode 100644 index 0000000000000000000000000000000000000000..1f0b512dfed5f9d0044a2f74bae386c3245b4e9b GIT binary patch literal 333217 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 EKgY2+;{X5v literal 0 HcmV?d00001 From 7072507d36d6c904900a040cd2421c8420e88148 Mon Sep 17 00:00:00 2001 From: BBfiChe <113315299+BBfiChe@users.noreply.github.com> Date: Sat, 15 Jun 2024 15:30:58 -0600 Subject: [PATCH 2/5] Update Flashlight.py --- Flashlight/Flashlight.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Flashlight/Flashlight.py b/Flashlight/Flashlight.py index 2e7385ea..dfa8391d 100644 --- a/Flashlight/Flashlight.py +++ b/Flashlight/Flashlight.py @@ -9,6 +9,10 @@ white = bytearray([0, 22, 48, 246, 240, 246, 48, 22, 0, 0, 0, 3, 3, 3, 0, 0]) +# BITMAP: width: 8, height: 10 +off_flashlight = bytearray([0,16,48,240,240,240,48,16, + 0,0,0,3,3,3,0,0]) + version = bytearray([255, 233, 207, 9, 15, 9, 207, 233, 3, 3, 3, 0, 0, 0, 3, 3]) @@ -26,8 +30,8 @@ if thumby.buttonA.justPressed(): if fill == 1: fill = 0 - version = bytearray([0, 22, 48, 246, 240, 246, 48, 22, - 0, 0, 0, 3, 3, 3, 0, 0]) + version = bytearray([0,16,48,240,240,240,48,16, + 0,0,0,3,3,3,0,0]) else: fill = 1 version = bytearray([255, 233, 207, 9, 15, 9, 207, 233, @@ -45,4 +49,4 @@ else: clicks += 1 - thumby.display.update() \ No newline at end of file + thumby.display.update() From 90c16560336a8f767cf6aa75d338406c6d115002 Mon Sep 17 00:00:00 2001 From: BBfiChe <113315299+BBfiChe@users.noreply.github.com> Date: Sat, 15 Jun 2024 15:32:12 -0600 Subject: [PATCH 3/5] Update arcade_description.txt --- Flashlight/arcade_description.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Flashlight/arcade_description.txt b/Flashlight/arcade_description.txt index dfa94043..3d4dea00 100644 --- a/Flashlight/arcade_description.txt +++ b/Flashlight/arcade_description.txt @@ -4,5 +4,8 @@ Created by @BBfiChe on Discord ------------------- Updates: ------------------- +Update 1.0.1 + - Updated dark screen flashlight to appear off instead of on. + Update 1.0.0 - - Added Flashlight game. \ No newline at end of file + - Added Flashlight game. From 0db51061b5d8f67c1e6bf750977092fcb7cd56bc Mon Sep 17 00:00:00 2001 From: BBfiChe <113315299+BBfiChe@users.noreply.github.com> Date: Sat, 22 Jun 2024 11:45:01 -0600 Subject: [PATCH 4/5] Update MicroSquareRootCalc.py --- MicroSquareRootCalc/MicroSquareRootCalc.py | 147 +++++++++------------ 1 file changed, 60 insertions(+), 87 deletions(-) diff --git a/MicroSquareRootCalc/MicroSquareRootCalc.py b/MicroSquareRootCalc/MicroSquareRootCalc.py index 25f3638e..178b2156 100644 --- a/MicroSquareRootCalc/MicroSquareRootCalc.py +++ b/MicroSquareRootCalc/MicroSquareRootCalc.py @@ -15,8 +15,8 @@ BBfiChe_logo = bytearray([0,254,254,6,250,250,250,6,250,250,250,6,254,250,250,2,250,250,254,2,250,250,250,254,2,234,234,18,254,2,250,250,250,250,250,2,254,254,254,254,2,254,254,194,190,190,194,254,254,2,254,2,186,186,186,186,186,70,254,0, 0,255,255,252,255,255,135,180,183,183,183,52,255,253,5,244,245,245,247,4,253,253,5,183,180,183,71,252,255,244,245,245,5,245,245,244,255,255,255,255,0,255,255,255,185,128,191,255,255,0,255,8,107,107,107,107,107,108,255,0, 0,255,255,255,255,255,13,237,237,237,237,252,31,111,108,109,29,253,253,12,251,255,252,255,255,15,236,239,239,239,239,255,252,255,255,255,255,255,255,255,0,255,255,255,7,116,4,255,255,0,255,232,235,235,11,235,235,235,255,0, - 0,255,95,95,223,223,80,215,87,215,87,223,80,95,223,223,80,95,223,208,87,87,87,215,95,80,87,215,87,87,87,223,95,223,95,223,95,95,95,255,0,255,159,15,255,9,233,15,255,0,255,31,111,111,104,111,111,31,255,0, - 0,127,64,91,100,127,124,67,124,127,68,127,64,91,100,127,64,91,100,127,64,125,127,127,95,64,95,127,64,95,95,127,64,123,64,127,64,91,91,127,64,127,123,120,123,120,123,120,127,64,127,112,127,127,127,127,127,112,127,0]) + 0,255,95,95,223,223,80,215,87,215,87,223,80,95,223,223,80,95,223,208,87,87,87,215,95,80,87,215,87,87,87,223,95,223,95,223,95,95,95,255,0,223,239,239,15,249,9,239,15,0,255,31,111,111,104,111,111,31,255,0, + 0,127,64,91,100,127,124,67,124,127,68,127,64,91,100,127,64,91,100,127,64,125,127,127,95,64,95,127,64,95,95,127,64,123,64,127,64,91,91,127,64,123,121,122,122,127,120,123,120,64,127,112,127,127,127,127,127,112,127,0]) # BITMAP: width: 15, height: 9 sel_side = bytearray([255,1,1,1,1,1,1,1,1,1,1,1,1,1,255, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]) @@ -33,34 +33,26 @@ num = 0 dec_chk = False exit = True +time_intro = 3 #Function to check which box is checked: +def appendnum(num): + global selx, sely, result + val = ''.join(map(str, result)) + result.clear() + result.append(int(val+ str(num))) + def xyplacmntchk(): - global selx, sely, result, num + global selx, sely, result, num, time_intro if selx == 0 and sely == 0: - num = 1 - val = ''.join(map(str, result)) - result.clear() - result.append(int(val + str(num))) + appendnum(1) elif selx == 8 and sely == 0: - num = 2 - val = ''.join(map(str, result)) - result.clear() - result.append(int(val + str(num))) + appendnum(2) elif selx == 16 and sely == 0: - num = 3 - val = ''.join(map(str, result)) - result.clear() - result.append(int(val + str(num))) + appendnum(3) elif selx == 24 and sely == 0: - num = 4 - val = ''.join(map(str, result)) - result.clear() - result.append(int(val + str(num))) + appendnum(4) elif selx == 32 and sely == 0: - num = 5 - val = ''.join(map(str, result)) - result.clear() - result.append(int(val + str(num))) + appendnum(5) elif selx == 40 and sely == 0: if result == []: pass @@ -69,63 +61,54 @@ def xyplacmntchk(): time.sleep(0.2) # BOTTOM ROW CHECK elif selx == 0 and sely == 8: - num = 6 - val = ''.join(map(str, result)) - result.clear() - result.append(int(val + str(num))) + appendnum(6) elif selx == 8 and sely == 8: - num = 7 - val = ''.join(map(str, result)) - result.clear() - result.append(int(val + str(num))) + appendnum(7) elif selx == 16 and sely == 8: - num = 8 - val = ''.join(map(str, result)) - result.clear() - result.append(int(val + str(num))) + appendnum(8) elif selx == 24 and sely == 8: - num = 9 - val = ''.join(map(str, result)) - result.clear() - result.append(int(val + str(num))) + appendnum(9) elif selx == 32 and sely == 8: - num = 0 - val = ''.join(map(str, result)) - result.clear() - result.append(int(val + str(num))) + appendnum(0) + elif selx == 40 and sely == 8: + time_intro = 2 + intro() else: pass - -thumby.display.fill(0) -thumby.display.blit(BBfiChe_logo,6,0,60,40,0,0,0) -thumby.display.update() -time.sleep(5) +def intro(): + global time_intro + thumby.display.fill(0) + thumby.display.blit(BBfiChe_logo,6,0,60,40,0,0,0) + thumby.display.update() + time.sleep(time_intro) + thumby.display.fill(0) + thumby.display.drawText("Keybinds:",3,1,1) + thumby.display.drawText("----------------",5,6,1) + thumby.display.setFont("/lib/font5x7.bin", 5, 7, 1) + thumby.display.drawText("To Exit:",2,13,1) + thumby.display.drawText("Hold A+B",2,22,1) + thumby.display.update() + thumby.display.setFont("/lib/font3x5.bin", 3, 5, 1) + time.sleep(time_intro) + thumby.display.fill(0) + thumby.display.drawText("Keybinds:",3,1,1) + thumby.display.drawText("----------------",5,6,1) + thumby.display.setFont("/lib/font5x7.bin", 5, 7, 1) + thumby.display.drawText("Move around:",2,9,1) + thumby.display.drawText("Left,Right,",1,17,1) + thumby.display.drawText("Up,Down",1,25,1) + thumby.display.drawText("Buttons",2,33,1) + thumby.display.update() + thumby.display.setFont("/lib/font3x5.bin", 3, 5, 1) + time.sleep(time_intro) + +intro() -thumby.display.fill(0) -thumby.display.drawText("Keybinds:",3,1,1) -thumby.display.drawText("----------------",5,6,1) -thumby.display.setFont("/lib/font5x7.bin", 5, 7, 1) -thumby.display.drawText("To Exit:",2,13,1) -thumby.display.drawText("Hold A+B",2,22,1) -thumby.display.update() -thumby.display.setFont("/lib/font3x5.bin", 3, 5, 1) -time.sleep(5) -thumby.display.fill(0) -thumby.display.drawText("Keybinds:",3,1,1) -thumby.display.drawText("----------------",5,6,1) -thumby.display.setFont("/lib/font5x7.bin", 5, 7, 1) -thumby.display.drawText("Move around:",2,9,1) -thumby.display.drawText("Left,Right,",1,17,1) -thumby.display.drawText("Up,Down",1,25,1) -thumby.display.drawText("Buttons",2,33,1) -thumby.display.update() -thumby.display.setFont("/lib/font3x5.bin", 3, 5, 1) -time.sleep(5) #Main Code to run: while True: thumby.display.blit(microsqrtcalc_logo,47 ,1 ,22 ,17 ,-1 ,0 ,0) thumby.display.drawText("1 2 3 4 5 <",2,2,1) - thumby.display.drawText("6 7 8 9 0",2,10,1) + thumby.display.drawText("6 7 8 9 0 i",2,10,1) thumby.display.drawText("Results:",8,18,1) thumby.display.drawText(f"Inpt:{result}",1,25,1) thumby.display.drawText(f"Out:{output}",1,31,1) @@ -135,21 +118,16 @@ def xyplacmntchk(): if result: output = sqrt(int(''.join(map(str, result)))) #----------------------------------------- - if thumby.buttonR.pressed(): + if thumby.buttonR.justPressed(): selx += 8 - time.sleep(0.2) - if thumby.buttonL.pressed(): + if thumby.buttonL.justPressed(): selx -= 8 - time.sleep(0.2) - if thumby.buttonD.pressed(): + if thumby.buttonD.justPressed(): sely += 8 - time.sleep(0.2) - if thumby.buttonU.pressed(): + if thumby.buttonU.justPressed(): sely -= 8 - time.sleep(0.2) - if thumby.buttonA.pressed(): + if thumby.buttonA.justPressed(): xyplacmntchk() - time.sleep(0.2) if thumby.buttonA.pressed() and thumby.buttonB.pressed(): while True: thumby.display.fill(0) @@ -161,17 +139,15 @@ def xyplacmntchk(): thumby.display.drawText("NO",35,25,1) thumby.display.drawText("!",44,25,1) thumby.display.blit(sel_side,sels_x,sels_y,15,9,0,0,0) - if thumby.buttonL.pressed(): + if thumby.buttonL.justPressed(): sels_x -= 20 - time.sleep(0.2) - if thumby.buttonR.pressed(): + if thumby.buttonR.justPressed(): sels_x += 20 - time.sleep(0.2) if sels_x < 12: sels_x = 13 if sels_x > 35: sels_x = 33 - if thumby.buttonU.pressed(): + if thumby.buttonU.justPressed(): if sels_x > 30: break if sels_x == 13: @@ -187,8 +163,5 @@ def xyplacmntchk(): selx += 8 if sely == 16: sely -= 8 - if selx == 40 and sely == 8: - selx = 32 - sely = 8 thumby.display.update() thumby.display.fill(0) From 5b62a11ccf6a0d0eea76d7bbf618b9fafe813e4f Mon Sep 17 00:00:00 2001 From: BBfiChe <113315299+BBfiChe@users.noreply.github.com> Date: Sat, 22 Jun 2024 11:46:27 -0600 Subject: [PATCH 5/5] Update arcade_description.txt --- MicroSquareRootCalc/arcade_description.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/MicroSquareRootCalc/arcade_description.txt b/MicroSquareRootCalc/arcade_description.txt index 4feabd24..042cff81 100644 --- a/MicroSquareRootCalc/arcade_description.txt +++ b/MicroSquareRootCalc/arcade_description.txt @@ -14,6 +14,9 @@ Version 1.0.0 Beta: Version 1.0.10 Beta: -Added a Exit screen accessed with the calculator Version 1.0.11 Beta: -Tweaked the keybinds loading screen to have a easier to read 5x7 Thumby font -Version 1.0.20 Beta: +-Tweaked the keybinds loading screen to have a easier to read 5x7 Thumby font -Tweaked an issue where the selected box when trying to exit the game would overlap the "YES" Button. + +Version 1.0.20 Beta: +-Made the code more efficient and less storage intensive by removing a lot of extra code +-Added an info button which replays the intro