@@ -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