pelikhan / pxt-maker-controller

Build custom MakeCode Arcade controllers

Home Page:https://pelikhan.github.io/pxt-maker-controller/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

maker-controller

The extension allows to easily create custom controllers for MakeCode Arcade games (https://arcade.makecode.com) running in the browser.

Under the hood, the extension uses the keyboard extension to generate keyboard key stroke that emulate one or more players.

Usage

This repository contains a MakeCode extension. To use it in MakeCode,

Button press

Simulate a button press when a button in pressed on your device.

input.buttonA.onEvent(ButtonEvent.Click, function () {
    makerController.player1.press(ControllerButton.A)
})

Up, down states

Simulate buttons left and right pressed based on the accelerometer readings.

forever(function () {
    if (input.acceleration(Dimension.X) < -300) {
        makerController.player1.setButtonDown(ControllerButton.Right, false)
        makerController.player1.setButtonDown(ControllerButton.Left, true)
        light.photonForward(1)
    } else if (input.acceleration(Dimension.X) > 300) {
        makerController.player1.setButtonDown(ControllerButton.Left, false)
        makerController.player1.setButtonDown(ControllerButton.Right, true)
        light.photonForward(-1)
    } else {
        makerController.player1.reset()
    }
})

Analog buttons

Map analog sensors to dpad buttons.

forever(function () {
    makerController.player1.setAnalog(ArcadeAnalogButton.LeftRight, input.acceleration(Dimension.X))
    makerController.player1.setAnalog(ArcadeAnalogButton.DownUp, input.acceleration(Dimension.Y))
})

Also map analog sensors to A/B buttons.

forever(function () {
    makerController.player1.setAnalog(ArcadeAnalogButton.A, input.soundLevel())
})

You can tune the threshold to detect that a button is pressed or not.

makerController.player1.setAnalogThreshold(ArcadeAnalogButton.A, 0, 200)

Collaborators

You can invite users to become collaborators to this repository. This will allow multiple users to work on the same project at the same time. Learn more...

To edit this repository in MakeCode,

Supported targets

  • for PXT/adafruit
  • for PXT/codal
  • for PXT/maker

(The metadata above is needed for package search.)

About

Build custom MakeCode Arcade controllers

https://pelikhan.github.io/pxt-maker-controller/

License:MIT License


Languages

Language:TypeScript 99.2%Language:Makefile 0.8%