[Godot] Input.joy_connection_changed bug on disconnect joypad (no signal emit)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
調査の方向性
Start by tracing the joy_connection_changed signal and get_connected_joypads() implementation; the issue does not name source files or tests. Reproduce the reported two-joypad disconnect order on Windows 10 with Godot v4.3. Done means disconnecting device0 before device1 emits the disconnection signals and leaves the connected-joypad list empty.
索引モデルが issue の本文から書いたものです。
説明
Tested versions
v4.3.stable.official
System information
Windows 10, v4.3.stable.official [77dcf97], Vulkan
Issue description
When connecting and disconnecting joypads, information is transmitted via a signal to some function and the Array Input.get_connected_joypads() is also formed.
When 2 joypads are connected in series (!), each one triggers the signal connected = true.
When disconnecting joypads in series (!), the return signal disconnected = true does not trigger, if the first joypad#1 on device0 was disconnected first.
Thus, Joypad#2 on device1 remains in Input.get_connected_joypads(), while all joypads are disconnected.
The description says that the signal is emitted every time a connection or disconnection occurs, which does not happen.
Steps to reproduce
- Create a simple 2D scene.
- Attach a script with the code:
extends Node2D
func _ready() -> void:
Input.joy_connection_changed.connect(_on_joy_connection_changed)
func _on_joy_connection_changed(device: int, connected: bool):
if connected:
prints("Joypad Array", Input.get_connected_joypads())
else:
prints("Joypad Array", Input.get_connected_joypads())
-
Run the scene and start connecting joypads
-
Then when we see Joypad Array [0, 1] in the console:
a) Disconnect in reverse order - joypad#2, then joypad#1. Everything works, Joypad Array [] all joypads are excluded.
b) Connect back, first joypad#1 then joypad#2. After that, first disconnect joypad#1 (
device0) then disconnect joypad#2 (device1). Joypad Array [1] all joypads are excluded. The list of joypads should be Joypad Array [].If after this you connect any joypad that gets to
device0, then thedisconnected = truesignal is triggered and immediatelyconnected = trueis triggered. The list of devices becomes Joypad Array [0].
Minimal reproduction project (MRP)
- 主要言語
- C++
- スター
- 6.1k
- フォーク
- 337
- 平均マージ
- 4日 16時間
- マージ済み PR(30日)
- 53
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Redot-Engine/redot-engine のほかの issue
-
bug confirmed topic:3d topic:rendering
Redot-Engine/redot-engine#1568 ·
メンテナーはふだん 1 日以内に返信
-
bug enhancement
難易度 3/5 1〜2日 初心者へのやさしさ 57/100
Redot-Engine/redot-engine#1559 ·
メンテナーはふだん 1 日以内に返信
-
Struct fields of external objects are not parsed対応中かも @DuBearte が今日担当しました。 オープンbug topic:gdscript usability
難易度 4/5 3〜5日 初心者へのやさしさ 50/100
Redot-Engine/redot-engine#1558 ·
メンテナーはふだん 1 日以内に返信
-
Classes Implementing a trait throw errors from lines that don't exist対応中かも @DuBearte が今日担当しました。 オープンbug topic:gdscript usability
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
Redot-Engine/redot-engine#1557 ·
メンテナーはふだん 1 日以内に返信
-
bug topic:worldscape usability
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
Redot-Engine/redot-engine#1556 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
Redot-Engine/redot-engine の issue をすべて見る
似ている issue
-
Remove source files from packaging for deb, zip, etc対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
OpenSpace/OpenSpace#4353 · コメント 1 件 ·
メンテナーはふだん 5 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
justcallmekoko/ESP32Marauder#1656 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
Decompiler: convertCharRef() in xml.y overflows its int4 accumulator on long character references対応中かも @kaayzouee が 1 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
NationalSecurityAgency/ghidra#10009 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
mutationpp/Mutationpp#337 ·