From 7c890f70c98985d5ee11a692efb073dc11ed7242 Mon Sep 17 00:00:00 2001 From: Kouji Takao Date: Sat, 17 Jan 2026 17:45:58 +0900 Subject: [PATCH] feat: fixed --- src/extensions/microbitMore/index.js | 78 ++++++++++++------- src/extensions/microbitMore/translations.json | 8 +- 2 files changed, 56 insertions(+), 30 deletions(-) diff --git a/src/extensions/microbitMore/index.js b/src/extensions/microbitMore/index.js index 348bb59d19..6f1871f3d0 100644 --- a/src/extensions/microbitMore/index.js +++ b/src/extensions/microbitMore/index.js @@ -287,6 +287,31 @@ const MbitMoreGestureID = 11: 'SHAKE' }; +/** + * Enum for name of tilt direction. + * @readonly + * @enum {string} + */ +const MbitMoreTiltDirectionName = +{ + FRONT: 'FRONT', + BACK: 'BACK', + LEFT: 'LEFT', + RIGHT: 'RIGHT', + ANY: 'ANY' +}; + +/** + * Tilt direction to gesture name mapping + * @readonly + */ +const MbitMoreTiltDirectionToGestureName = { + FRONT: MbitMoreGestureName.TILT_UP, + BACK: MbitMoreGestureName.TILT_DOWN, + LEFT: MbitMoreGestureName.TILT_LEFT, + RIGHT: MbitMoreGestureName.TILT_RIGHT +}; + /** * Enum for event type in the micro:bit runtime. * @readonly @@ -1729,19 +1754,19 @@ class MbitMoreBlocks { return [ { text: formatMessage({ - id: 'mbitMore.tiltDirectionMenu.up', + id: 'mbitMore.tiltDirectionMenu.front', default: 'front', description: 'label for front element in tilt direction picker for Microbit More extension' }), - value: MbitMoreGestureName.TILT_UP + value: MbitMoreTiltDirectionName.FRONT }, { text: formatMessage({ - id: 'mbitMore.tiltDirectionMenu.down', + id: 'mbitMore.tiltDirectionMenu.back', default: 'back', description: 'label for back element in tilt direction picker for Microbit More extension' }), - value: MbitMoreGestureName.TILT_DOWN + value: MbitMoreTiltDirectionName.BACK }, { text: formatMessage({ @@ -1749,7 +1774,7 @@ class MbitMoreBlocks { default: 'left', description: 'label for left element in tilt direction picker for Microbit More extension' }), - value: MbitMoreGestureName.TILT_LEFT + value: MbitMoreTiltDirectionName.LEFT }, { text: formatMessage({ @@ -1757,7 +1782,7 @@ class MbitMoreBlocks { default: 'right', description: 'label for right element in tilt direction picker for Microbit More extension' }), - value: MbitMoreGestureName.TILT_RIGHT + value: MbitMoreTiltDirectionName.RIGHT }, { text: formatMessage({ @@ -1765,7 +1790,7 @@ class MbitMoreBlocks { default: 'any', description: 'label for any direction element in tilt direction picker for Microbit More extension' }), - value: 'ANY' + value: MbitMoreTiltDirectionName.ANY } ]; } @@ -1781,7 +1806,7 @@ class MbitMoreBlocks { default: 'front', description: 'label for front element in tilt angle direction picker for Microbit More extension' }), - value: 'FRONT' + value: MbitMoreTiltDirectionName.FRONT }, { text: formatMessage({ @@ -1789,7 +1814,7 @@ class MbitMoreBlocks { default: 'back', description: 'label for back element in tilt angle direction picker for Microbit More extension' }), - value: 'BACK' + value: MbitMoreTiltDirectionName.BACK }, { text: formatMessage({ @@ -1797,7 +1822,7 @@ class MbitMoreBlocks { default: 'left', description: 'label for left element in tilt angle direction picker for Microbit More extension' }), - value: 'LEFT' + value: MbitMoreTiltDirectionName.LEFT }, { text: formatMessage({ @@ -1805,7 +1830,7 @@ class MbitMoreBlocks { default: 'right', description: 'label for right element in tilt angle direction picker for Microbit More extension' }), - value: 'RIGHT' + value: MbitMoreTiltDirectionName.RIGHT } ]; } @@ -2441,7 +2466,7 @@ class MbitMoreBlocks { DIRECTION: { type: ArgumentType.STRING, menu: 'tiltDirectionMenu', - defaultValue: 'ANY' + defaultValue: MbitMoreTiltDirectionName.ANY } } }, @@ -2457,7 +2482,7 @@ class MbitMoreBlocks { DIRECTION: { type: ArgumentType.STRING, menu: 'tiltDirectionMenu', - defaultValue: 'ANY' + defaultValue: MbitMoreTiltDirectionName.ANY } } }, @@ -2473,7 +2498,7 @@ class MbitMoreBlocks { DIRECTION: { type: ArgumentType.STRING, menu: 'tiltAngleDirectionMenu', - defaultValue: 'FRONT' + defaultValue: MbitMoreTiltDirectionName.FRONT } } }, @@ -3247,7 +3272,7 @@ class MbitMoreBlocks { }, this.runtime.currentStepTime); } const direction = args.DIRECTION; - if (direction === 'ANY') { + if (direction === MbitMoreTiltDirectionName.ANY) { const tiltGestures = [ MbitMoreGestureName.TILT_UP, MbitMoreGestureName.TILT_DOWN, @@ -3261,10 +3286,11 @@ class MbitMoreBlocks { return lastTimestamp !== this.prevGestureEvents[name]; }); } - const lastTimestamp = this._peripheral.getGestureEventTimestamp(direction); + const gestureName = MbitMoreTiltDirectionToGestureName[direction]; + const lastTimestamp = this._peripheral.getGestureEventTimestamp(gestureName); if (lastTimestamp === null) return false; - if (!this.prevGestureEvents[direction]) return true; - return lastTimestamp !== this.prevGestureEvents[direction]; + if (!this.prevGestureEvents[gestureName]) return true; + return lastTimestamp !== this.prevGestureEvents[gestureName]; } /** @@ -3277,13 +3303,13 @@ class MbitMoreBlocks { switch (args.DIRECTION) { case 'ANY': return Math.abs(this._peripheral.pitch) > 15 || Math.abs(this._peripheral.roll) > 15; - case MbitMoreGestureName.TILT_UP: + case MbitMoreTiltDirectionName.FRONT: return this._peripheral.pitch < -15; - case MbitMoreGestureName.TILT_DOWN: + case MbitMoreTiltDirectionName.BACK: return this._peripheral.pitch > 15; - case MbitMoreGestureName.TILT_LEFT: + case MbitMoreTiltDirectionName.LEFT: return this._peripheral.roll < -15; - case MbitMoreGestureName.TILT_RIGHT: + case MbitMoreTiltDirectionName.RIGHT: return this._peripheral.roll > 15; default: return false; @@ -3298,13 +3324,13 @@ class MbitMoreBlocks { */ getTiltAngle (args) { switch (args.DIRECTION) { - case 'FRONT': + case MbitMoreTiltDirectionName.FRONT: return -this._peripheral.pitch; - case 'BACK': + case MbitMoreTiltDirectionName.BACK: return this._peripheral.pitch; - case 'LEFT': + case MbitMoreTiltDirectionName.LEFT: return -this._peripheral.roll; - case 'RIGHT': + case MbitMoreTiltDirectionName.RIGHT: return this._peripheral.roll; default: return 0; diff --git a/src/extensions/microbitMore/translations.json b/src/extensions/microbitMore/translations.json index 6c4ceb4cb4..6e833a119b 100644 --- a/src/extensions/microbitMore/translations.json +++ b/src/extensions/microbitMore/translations.json @@ -128,8 +128,8 @@ "mbitMore.whenTilted": "[DIRECTION] に傾いたとき", "mbitMore.isTilted": "[DIRECTION] に傾いた", "mbitMore.tiltDirectionMenu.any": "どれかの向き", - "mbitMore.tiltDirectionMenu.up": "前", - "mbitMore.tiltDirectionMenu.down": "後ろ", + "mbitMore.tiltDirectionMenu.front": "前", + "mbitMore.tiltDirectionMenu.back": "後ろ", "mbitMore.tiltDirectionMenu.left": "左", "mbitMore.tiltDirectionMenu.right": "右", "mbitMore.getTiltAngle": "[DIRECTION] 方向の傾き", @@ -233,8 +233,8 @@ "mbitMore.whenTilted": "[DIRECTION] にかたむいたとき", "mbitMore.isTilted": "[DIRECTION] にかたむいた", "mbitMore.tiltDirectionMenu.any": "どれかのむき", - "mbitMore.tiltDirectionMenu.up": "まえ", - "mbitMore.tiltDirectionMenu.down": "うしろ", + "mbitMore.tiltDirectionMenu.front": "まえ", + "mbitMore.tiltDirectionMenu.back": "うしろ", "mbitMore.tiltDirectionMenu.left": "ひだり", "mbitMore.tiltDirectionMenu.right": "みぎ", "mbitMore.getTiltAngle": "[DIRECTION] ほうこうのかたむき",