09 March 2025

Team 10: Game Controller - Progress Review

Suika Jelly

Team 10 - Chandler Crum and Jessica Harrison

Our custom controller is designed for the Suika Watermelon Game, a puzzle game where players drop and merge fruit to create larger combinations. The version of Suika Game that we are doing is called Suika Jelly on steam, but there are many different versions of the game. Tying into the game’s fruit theme, our controller will resemble a slice of watermelon. Our controller will use an external knob and motion controls from the Circuit Playground Express. Using the built-in accelerometer, the player can tilt the controller left and right to position their fruit. The knob can be turned right to drop the fruit, and turned left to pause the game. Once the player’s “shake meter” fills up, the player can shake the controller to go into shake mode. The motion-based interaction adds another layer of play to the fun, turning this relatively simple game into an immersive hands-on experience.



// Establish required libraries
#include <Adafruit_CircuitPlayground.h>
#include <Adafruit_Circuit_Playground.h>
#include <Keyboard.h>

// Establish boolean for pause state
  // isPaused = false

// Initialize each sensor/input to be used
// Setup
{
  // ON/OFF switch
  // Circuit Playground
  // Keyboard
  // Potentiometer
}

// Loop
{
  // If ON switch is enabled,
  {
    // Read accelerometer values (x, y, z)
   
    // Move fruit left
    // Detect left tilt
    // If x greater than "value" {
        // Press "a"
    } // Else {
        // Release "a"
    }

    // Move fruit right
    // Detect right tilt
    // If y greater than "value" {
        // Press "d"
    } // Else {
        // Release "d"
    }

    // If shake meter is full, shake controller to activate shake mode
    // Detect shake
    // If sum of x,y,z greater than "value"{
        // Press "left ctrl"
    }  
  }

  // Potentiometer (P)
  // Check minimum and maximum values (1 to 10)

  // Turn knob right to drop fruit
  // If P value is 1 {
      // Press "spacebar"
  } // Else {
      // Release "spacebar"
  }

  // Knob center, neutral position
  // If P value is 5 {
      // Release "esc"
      // isPaused = false
  }

  // Turn knob left to pause
  // If P value is 10 {
      // Press "esc"
      // isPaused = true
  }

 // Delay: One Second

}



No comments:

Post a Comment

Note: Only a member of this blog may post a comment.