Libraries.Robots.Spike.Button Documentation

The button library allows for detection of button presses from the left and right arrow keys located on the top face of the hub.

Example Code

use Libraries.Robots.Spike.Button
use Libraries.Robots.Spike.LightMatrix
use Libraries.Robots.Spike.Hub
Hub hb
LightMatrix lights
Button btn
repeat until btn:IsLeftPressed()
    hb:Sleep(1)
end
lights:Write("Left Button Pressed!)

Inherits from: Libraries.Language.Object

Variables Table

VariablesDescription
integer LEFT
integer RIGHTReturns true if left arrow is pressed, false if not

Actions Documentation

ButtonPressDuration(integer btn)

Returns the duration in milliseconds that provided button has been held down for. Class constants LEFT and RIGHT will access this value for the left and right arrow buttons respectively.

Parameters

  • integer btn: The button to be checked

Return

integer: Duration, the amount of time in milliseconds the provided button has been held down for

Example

use Libraries.Robots.Spike.Button
use Libraries.Robots.Spike.LightMatrix
Button btn
LightMatrix lights
integer left_button_duration = 0
repeat until (left_button_duration > 1000)
    left_button_duration = btn:ButtonPressDuration(btn:LEFT)
end
lights:Write("Button held for 1 second")

Compare(Libraries.Language.Object object)

This action compares two object hash codes and returns an integer. The result is larger if this hash code is larger than the object passed as a parameter, smaller, or equal. In this case, -1 means smaller, 0 means equal, and 1 means larger. This action was changed in Quorum 7 to return an integer, instead of a CompareResult object, because the previous implementation was causing efficiency issues.

Parameters

Return

integer: The Compare result, Smaller, Equal, or Larger.

Example

Object o
Object t
integer result = o:Compare(t) //1 (larger), 0 (equal), or -1 (smaller)

Equals(Libraries.Language.Object object)

This action determines if two objects are equal based on their hash code values.

Parameters

Return

boolean: True if the hash codes are equal and false if they are not equal.

Example

use Libraries.Language.Object
use Libraries.Language.Types.Text
Object o
Text t
boolean result = o:Equals(t)

GetHashCode()

This action gets the hash code for an object.

Return

integer: The integer hash code of the object.

Example

Object o
integer hash = o:GetHashCode()

IsLeftPressed()

Returns true if left arrow is pressed, false if not

Return

boolean: Pressed, true if left arrow is pressed, false if not

Example

use Libraries.Robots.Spike.Button
use Libraries.Robots.Spike.LightMatrix
use Libraries.Robots.Spike.Hub
Hub hb
LightMatrix lights
Button btn
repeat until btn:IsLeftPressed()
    hb:Sleep(1)
end
lights:Write("Left Button Pressed!)

IsRightPressed()

Returns true if right arrow is pressed, false if not

Return

boolean: Pressed, true if right arrow is pressed, false if not

Example

use Libraries.Robots.Spike.Button
use Libraries.Robots.Spike.LightMatrix
use Libraries.Robots.Spike.Hub
Hub hb
LightMatrix lights
Button btn
repeat until btn:IsRightPressed()
    hb:Sleep(1)
end
lights:Write("Right Button Pressed!)