DEV Community

Ali Hamza
Ali Hamza

Posted on

Day 104 of Learning MERN Stack

Hello Dev Community! 👋

It is officially Day 104 of my coding sprint! Today marks Day 3 of my intense 5-day 2D Flying Car Game framework challenge. I successfully crossed some of the most complex hurdles in browser arcade mechanics: real-time bounding box touch evaluation, randomized coordinate resetting, precise game clock loops, and hardware-accelerated background scrolling! 🏎️💥

Handling continuous infinite track animations can easily choke the browser's rendering path if done incorrectly. Today, I optimized this by using native CSS custom properties alongside clean script states.


🧠 Breaking Down Today's Core Game Logic & Mechanisms

As compiled live inside my system sandbox across "Screenshot (231).jpg" and "Screenshot (234).png", the engine has taken a massive leap forward:

1. Infinite Highway Line Scrolling (Hardware Accelerated)

  • Instead of creating and deleting DOM nodes for road markings, I attached the scrolling sequence directly to the yellow dashed track splitters using native CSS runtime variables ("Screenshot (231).jpg").
  • JavaScript continuously recalculates the position index loop, ensuring an incredibly smooth, infinite moving road aesthetic without triggering garbage collection lag.

2. Coin Interception & Dynamic Line Swapping

  • Programmed the collision matrix to watch the main player car's boundary box.
  • The second the car coordinates intersect the gold coin position, the application immediately triggers an audio alert, updates the Score container node, and uses a lane selection array to instantly relocate the coin to an alternative lane.

3. Comprehensive Navigation Mapping & Flying Physics

  • Completed full multi-directional parsing inside the control module ("Screenshot (234).png"): mapped ArrowDown calculations ($\Delta y = -10$) alongside rigid left/right horizontal boundary safeguards ($x \le 520$ and $x > 10$).
  • Engineered the core flying mechanism inside jumpOnClick(event) bound to the 'keyup' event handler:

javascript
  if (event.code === 'Space') {
      if (jumpCarScores >= 1) {
          cancelAnimationFrame(animatedId); // Temporarily skip collision loops
          car.src = "./Fly Car.png";        // Swap asset to flight configuration
          y += 350; z += 80;                // Shift tracking vectors
          jumpCarScores--;
      }
  }
Enter fullscreen mode Exit fullscreen mode

Top comments (0)