Jamie Cheaw
Published

Project 4: Strange Controller

Super Monkey Ball 2 with an entire arena as your controller!

IntermediateFull instructions provided2 hours142
Project 4: Strange Controller

Things used in this project

Hardware components

Circuit Playground Express
Adafruit Circuit Playground Express
×1
Alligator Clips
Alligator Clips
×1
Cardboard & Construction Paper
Tape & Hotglue
×1
Aluminum Foil
×1

Software apps and online services

MakeCode
Microsoft MakeCode

Hand tools and fabrication machines

Hot glue gun (generic)
Hot glue gun (generic)

Story

Read more

Schematics

Strange Controller

Code

Strange Controller

JavaScript
input.touchA1.onEvent(ButtonEvent.Down, function () {
    keyboard.key("v", KeyboardKeyEvent.Down)
})
input.touchA2.onEvent(ButtonEvent.Down, function () {
    keyboard.key("z", KeyboardKeyEvent.Down)
})
input.touchA3.onEvent(ButtonEvent.Down, function () {
    keyboard.key("x", KeyboardKeyEvent.Down)
})
input.onGesture(Gesture.TiltUp, function () {
    keyboard.functionKey(KeyboardFunctionKey.UpArrow, KeyboardKeyEvent.Down)
    pause(200)
    keyboard.functionKey(KeyboardFunctionKey.UpArrow, KeyboardKeyEvent.Up)
})
input.touchA1.onEvent(ButtonEvent.Up, function () {
    keyboard.key("v", KeyboardKeyEvent.Up)
})
input.touchA2.onEvent(ButtonEvent.Up, function () {
    keyboard.key("z", KeyboardKeyEvent.Up)
})
input.touchA3.onEvent(ButtonEvent.Up, function () {
    keyboard.key("x", KeyboardKeyEvent.Up)
})
input.onGesture(Gesture.TiltLeft, function () {
    keyboard.functionKey(KeyboardFunctionKey.LeftArrow, KeyboardKeyEvent.Down)
    pause(200)
    keyboard.functionKey(KeyboardFunctionKey.LeftArrow, KeyboardKeyEvent.Up)
})
input.touchA4.onEvent(ButtonEvent.Down, function () {
    keyboard.functionKey(KeyboardFunctionKey.UpArrow, KeyboardKeyEvent.Down)
})
input.onGesture(Gesture.TiltRight, function () {
    keyboard.functionKey(KeyboardFunctionKey.RightArrow, KeyboardKeyEvent.Down)
    pause(200)
    keyboard.functionKey(KeyboardFunctionKey.RightArrow, KeyboardKeyEvent.Up)
})
input.touchA5.onEvent(ButtonEvent.Down, function () {
    keyboard.functionKey(KeyboardFunctionKey.DownArrow, KeyboardKeyEvent.Down)
})
input.touchA4.onEvent(ButtonEvent.Up, function () {
    keyboard.functionKey(KeyboardFunctionKey.UpArrow, KeyboardKeyEvent.Up)
})
input.touchA5.onEvent(ButtonEvent.Up, function () {
    keyboard.functionKey(KeyboardFunctionKey.DownArrow, KeyboardKeyEvent.Up)
})
input.onGesture(Gesture.TiltDown, function () {
    keyboard.functionKey(KeyboardFunctionKey.DownArrow, KeyboardKeyEvent.Down)
    pause(200)
    keyboard.functionKey(KeyboardFunctionKey.DownArrow, KeyboardKeyEvent.Up)
})
input.touchA6.onEvent(ButtonEvent.Down, function () {
    keyboard.functionKey(KeyboardFunctionKey.LeftArrow, KeyboardKeyEvent.Down)
})
input.touchA7.onEvent(ButtonEvent.Down, function () {
    keyboard.functionKey(KeyboardFunctionKey.RightArrow, KeyboardKeyEvent.Down)
})
input.touchA6.onEvent(ButtonEvent.Up, function () {
    keyboard.functionKey(KeyboardFunctionKey.LeftArrow, KeyboardKeyEvent.Up)
})
input.touchA7.onEvent(ButtonEvent.Up, function () {
    keyboard.functionKey(KeyboardFunctionKey.RightArrow, KeyboardKeyEvent.Up)
})

Credits

Jamie Cheaw

Jamie Cheaw

4 projects • 0 followers

Comments