我正在用操纵杆进行Arduino游戏。我有4个LED灯,每2秒点亮1个。使用操纵杆,您必须尽快做出反应,以关闭LED灯。因此,例如,如果左LED亮起,则必须向左转到操纵杆以将其关闭。
这是我的操纵杆的代码:
var joystick = new five.Joystick({
pins: ["A0", "A1"],
});
joystick.on("change", function() {
let x = this.x;
let y = this.y
});
因此,每当操纵杆的位置改变时,
let x
和let y
都会得到更新。现在,我将向您展示该函数的代码。此功能每2秒重新启动一次。
问题是我需要操纵杆上的
let x
和let y
才能使此功能起作用,但我不知道如何访问它们。
const playGame = () => {
setInterval(() => {
console.log(x, y);
}, 2000);
};
console.log(x, y)
生成undefined
。 最佳答案
您需要在更改事件的外部定义x和y,以便可以访问它
let x, y
var joystick = new five.Joystick({
pins: ["A0", "A1"],
});
joystick.on("change", function() {
x = this.x;
y = this.y
});
const playGame = () => {
setInterval(() => {
console.log(x, y);
}, 2000);
};
这是为了修复您的示例,但是还有更多的J5方法(摘自文档
let x, y
var joystick = new five.Joystick({
pins: ["A0", "A1"],
freq: 100 // this limit the joystick sample rate tweak to your needs
});
joystick.on("change", function() { // only fire as the sample rate freq
x = this.x;
y = this.y
});