Skip to content

Commit 742d0f9

Browse files
committed
Implemented continuous keyboard scrolling for the overlay and adjusted positioning of UI elements. Added new logo assets for GitHub, LinkedIn, and Resume.
1 parent 3d87567 commit 742d0f9

File tree

4 files changed

+69
-13
lines changed

4 files changed

+69
-13
lines changed

public/assets/github-neon-logo.png

654 KB
Loading
729 KB
Loading

public/assets/resume-neon-logo.png

363 KB
Loading

public/index.js

Lines changed: 69 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -343,16 +343,36 @@ class PacManScene extends Phaser.Scene {
343343
],
344344
'About Me': [
345345
{
346-
logo: 'forcepoint-logo',
347-
title: 'Passionate Developer',
348-
company: 'Personal Info',
349-
period: 'Always Learning',
350-
description: 'Dedicated software engineer with a passion for creating innovative solutions and learning new technologies.',
351-
technologies: ['Problem Solving', 'Team Leadership', 'Innovation'],
346+
logo: 'github-logo',
347+
title: 'Open Source Contributor',
348+
company: '---',
349+
period: '2024',
350+
description: 'Contributed to open source projects on GitHub, improving the functionality and usability of various software projects.',
351+
technologies: ['GitHub', 'JavaScript', 'Python', 'TypeScript', 'React', 'Node.js', 'Express.js', 'Socket.io', 'MongoDB', 'MariaDB', 'Amazon RDS'],
352+
achievements: [
353+
'Contributed to open source projects on GitHub, improving the functionality and usability of various software projects.',
354+
]
355+
},
356+
{
357+
logo: 'linkedin-logo',
358+
title: 'LinkedIn Contributor',
359+
company: '---',
360+
period: '2024',
361+
description: 'Contributed to open source projects on LinkedIn, improving the functionality and usability of various software projects.',
362+
technologies: ['LinkedIn', 'JavaScript', 'Python', 'TypeScript', 'React', 'Node.js', 'Express.js', 'Socket.io', 'MongoDB', 'MariaDB', 'Amazon RDS'],
352363
achievements: [
353-
'Quick learner',
354-
'Team player',
355-
'Innovation focused'
364+
'Contributed to open source projects on LinkedIn, improving the functionality and usability of various software projects.',
365+
]
366+
},
367+
{
368+
logo: 'resume-logo',
369+
title: 'Resume',
370+
company: '---',
371+
period: '2024',
372+
description: 'Resume',
373+
technologies: ['Resume', 'JavaScript', 'Python', 'TypeScript', 'React', 'Node.js', 'Express.js', 'Socket.io', 'MongoDB', 'MariaDB', 'Amazon RDS'],
374+
achievements: [
375+
'Resume',
356376
]
357377
}
358378
]
@@ -680,6 +700,8 @@ class PacManScene extends Phaser.Scene {
680700
// Keep your current overlay size
681701
const overlayWidth = Math.min(camera.width * 0.6, 350);
682702
const overlayHeight = Math.min(camera.height * 0.35, 250);
703+
// Store overlay height for continuous keyboard scrolling
704+
this.currentOverlayHeight = overlayHeight;
683705

684706
// Create overlay container at SCREEN CENTER
685707
this.overlayContainer = this.add.container(camera.width / 2, camera.height / 2);
@@ -862,7 +884,7 @@ class PacManScene extends Phaser.Scene {
862884
const escButtonY = -overlayHeight/2 + 2.5*escButtonPadding;
863885

864886
// Calculate bounding box size for ESC button
865-
const escBoxWidth = 38;
887+
const escBoxWidth = 37;
866888
const escBoxHeight = 30;
867889
const escBoxPadding = 5;
868890

@@ -947,7 +969,7 @@ class PacManScene extends Phaser.Scene {
947969
upArrow.strokePath();
948970
upArrow.fillStyle(0x00FFFF, 0.5);
949971
upArrow.fillPath();
950-
upArrow.setPosition(0, -overlayHeight/2 + 20); // Position at top
972+
upArrow.setPosition(0, -overlayHeight/2 + 125); // Position at top
951973
upArrow.setAlpha(0); // Initially hidden
952974
upArrow.setVisible(false);
953975

@@ -1214,6 +1236,9 @@ class PacManScene extends Phaser.Scene {
12141236
this.scrollDownArrow = null;
12151237
this.hasUserScrolled = false;
12161238
}
1239+
1240+
// Reset cached overlay height
1241+
this.currentOverlayHeight = null;
12171242
}
12181243

12191244
// Handle content scrolling
@@ -1297,6 +1322,30 @@ class PacManScene extends Phaser.Scene {
12971322
}
12981323
}
12991324

1325+
// Continuous keyboard-based scrolling for the overlay
1326+
updateOverlayScrollInput() {
1327+
// Only process when overlay is open and scroll keys are registered
1328+
if (!this.overlayOpen || !this.overlayScrollKeys || !this.currentOverlayHeight) return;
1329+
1330+
const scrollStep = 10;
1331+
let deltaY = 0;
1332+
1333+
// Scroll up with W or Up Arrow
1334+
if (this.overlayScrollKeys.W.isDown || this.overlayScrollKeys.UP.isDown) {
1335+
deltaY -= scrollStep;
1336+
}
1337+
1338+
// Scroll down with S or Down Arrow
1339+
if (this.overlayScrollKeys.S.isDown || this.overlayScrollKeys.DOWN.isDown) {
1340+
deltaY += scrollStep;
1341+
}
1342+
1343+
// Apply scrolling if any key is held
1344+
if (deltaY !== 0) {
1345+
this.scrollContent(deltaY, this.currentOverlayHeight);
1346+
}
1347+
}
1348+
13001349
// Close overlay when ESC is pressed
13011350
closeOverlay() {
13021351
if (!this.overlayOpen) return;
@@ -1938,8 +1987,10 @@ class PacManScene extends Phaser.Scene {
19381987
this.load.image('ucr-logo', 'assets/ucr-neon-logo.png');
19391988
this.load.image('serc-logo', 'assets/serc-neon-logo.png');
19401989
this.load.image('smartbridge-logo', 'assets/smartbridge-neon-logo.png');
1941-
// this.load.image('linkedin-logo', 'assets/linkedin-neon-logo.png');
1942-
// this.load.image('github-logo', 'assets/github-neon-logo.png');
1990+
this.load.image('github-logo', 'assets/github-neon-logo.png');
1991+
this.load.image('linkedin-logo', 'assets/linkedin-neon-logo.png');
1992+
this.load.image('education-logo', 'assets/education-neon-logo.png');
1993+
this.load.image('resume-logo', 'assets/resume-neon-logo.png');
19431994
this.load.image('w-key-logo', 'assets/keyboard-w-key-logo.png')
19441995
this.load.image('s-key-logo', 'assets/keyboard-s-key-logo.png')
19451996
this.load.image('a-key-logo', 'assets/keyboard-a-key-logo.png')
@@ -2010,6 +2061,11 @@ class PacManScene extends Phaser.Scene {
20102061
this.updateSectionIconsProximity();
20112062
this.updateCamera();
20122063
this.updateInstructions();
2064+
2065+
// Handle continuous overlay scrolling via keyboard while overlay is open
2066+
if (this.overlayOpen) {
2067+
this.updateOverlayScrollInput();
2068+
}
20132069
}
20142070
}
20152071

0 commit comments

Comments
 (0)