问题标签 [gamecontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
676 浏览

swift - 应用程序激活后保持游戏暂停?

这是我在这个论坛上的第一篇文章,如果我做的事情不正确,我提前道歉!:)

我正在使用 Swift & SpriteKit 制作 iphone 游戏,但我目前面临一个问题。当我的应用程序进入后台时,它会调用一个函数 pause(参见下文),但在游戏恢复时它会自动取消暂停。

我看过这篇非常有趣的帖子:Spritekit - 在 didBecomeActive 时保持游戏暂停(以及如何在应用程序变得活跃时保持 SpriteKit 场景暂停?)但我被卡住了。

我不知道如何实现新的 SKView 类,因为我的 View 配置如下面的代码所示......

这就是我的应用程序的工作方式:

我尝试了以下方法:

我添加了一个新类:

然后,我尝试将我的视图设置为,let SkView = view as! GameSceneView但我收到一条错误消息,说我无法将视图投射到 MyProjectName.GameSceneView()... 我还尝试了以下操作:let SkView! = GameSceneView() as GameSceneView!但我最终得到了一个灰色的背景场景...

有谁知道我如何实现新的 SKView 类以防止发生 CBApplicationDidBecomeActive() 错误,以便游戏在激活时不会取消暂停?

非常感谢您提前!:)

0 投票
1 回答
1326 浏览

ios - 如何在 Xcode 中正确设置 GCController valueChangeHandler?

我已成功连接 Steel 系列 Nimbus 双模拟控制器,用于在我的 iOS 和 tvOS 应用程序中进行测试。但我不确定如何正确设置valueChangeHandler我的GCController财产部分。

到目前为止,我了解有microGamepad,gamepadextendedGamepad类控制器以及它们之间的区别。我还了解到,您可以检查连接到您设备的控制器上是否有相应的控制器类可用。

但是现在我在设置时遇到了麻烦,valueChangeHandler因为如果我像这样设置三个 valueChangeHandler 部分,那么只有valueChangeHandler在这个序列中加载的最后一个有效:

如果我切换它们并self.gameController.extendedGamepad.valueChangeHandler...最后调用,那么这些方法将起作用,而gamepadandmicroGamepad方法将不起作用。

有人知道怎么修这个东西吗?

0 投票
1 回答
547 浏览

sprite-kit - 适用于 iOS 同时使用的双虚拟操纵杆

我正在为 SpriteKit 使用虚拟操纵杆,效果很好。我尝试过JCInput版本或SpriteKit-Joystick版本。两者都用于运动,并在左侧使用它们。

这是我使用的代码,尽管文档在 gitHub 中非常好:

对于 JCInput 版本:

和更新功能:

}

对于 SpriteKit-Joystick 版本:

和更新功能:

现在一切正常,没有任何问题。但我需要添加另一个来旋转我的角色(我们称之为self.myLabel1)。我尝试复制对象创建(使用唯一的名称、参数和位置将它们放在屏幕的右侧,但其他代码位与我上面使用的完全相同)。

它们也可以工作,但问题是它们不能同时工作。我可以在任何给定时间使用左侧或右侧,而不是一起使用。我需要在两个单独的线程上运行它们吗?我尝试过使用两个 CADisplayLink 和两个单独的选择器,但什么也没有。我尝试使用相同的,但没有。

谁能解释一下这个阴影?

提前非常感谢。

0 投票
0 回答
433 浏览

android - 使控制器视图充当游戏控制器 Android

我正在关注以下链接以制作控制器视图

  1. https://github.com/andretietz/controller-lib
  2. http://www.akexorcist.com/2012/10/android-code-joystick-controller.html

现在查看部分已经完成,我能够检测到按钮按下和所有事情,现在的问题是如何将控件发送到设备上运行的游戏?显然,它通过蓝牙/Wi-Fi 连接,但我没有得到任何适当的资源来做这些事情。我的控制器适用于任何支持基于蓝牙的控制器的第三方游戏。

问:涉及哪些设备?

Ans: 2 台安卓设备通过蓝牙连接。

问:他们应该或可以如何沟通?

答:使用蓝牙连接。

Q. 控制器发送什么样的命令,游戏也在监听什么样的命令/api?

答:控制器基于用户在第一台设备上给出的触摸输入事件,任何第三方游戏都可以监听来自通过蓝牙连接的第二台设备的用户输入事件。

0 投票
1 回答
234 浏览

swift - 使用游戏控制器 (ThumbStick) Swift 移动 skspritenode

我尝试构建 2d - 自上而下的游戏,我有玩家(skspritenode),我想在使用拇指杆时移动他。我使用这段代码:

游戏手柄其 GCExtendedGamepad

moveAndRotate - 函数

但是,当玩家沿对角线移动时,他的速度比正常速度快。谁能帮我?

0 投票
0 回答
5401 浏览

sdl - 如何测试/处理 SDL2 游戏控制器输入?

我试图弄清楚如何正确处理 SDL2 程序中的游戏控制器输入。我编写了一个程序,它能够在我的 Mac 上处理来自我的游戏控制器的输入,但不能在我的 Linux 机器上处理。但是,游戏控制器确实可以与 Linux 机器上的其他程序一起使用。我的程序使用了一个名为Simple2D的库,它包装了 SDL2 以提供更简单的界面。

我正在尝试确定问题是否与控制器输入处理或 Linux 端缺少某些依赖项/配置有关。我还没有找到任何使用 SDL2 处理游戏控制器输入以确定代码是否正常工作的示例。

这是 Simple2D 用于处理游戏控制器输入的代码。您是否看到任何可能导致我的控制器无法在我的 Linux 机器上工作的东西?

https://github.com/simple2d/simple2d/blob/master/src/simple2d.c#L642-L689

https://github.com/simple2d/simple2d/blob/master/src/simple2d.c#L782-L806

更新:感谢@genpfault,我发现 SDL 代码库带有一个测试脚本。我正在编译和运行它。下载源代码后,在我的 Mac 上,我能够成功编译并运行测试脚本,如下所示:

但是,当我在我的 Linux 机器上尝试相同的操作时,它无法编译:

所以然后我尝试运行./configure && make

我不确定为什么它无法编译以及如何克服这些错误。

更新:再次感谢@genpfault,从源代码安装最新版本的 SDL (2.0.4),而不是使用作为包提供的版本 2.0.2,修复了我的编译问题。

现在,当我在我的 Linux 机器上运行控制器测试脚本时,我看到了:

然而,当我在我的 Mac 上运行它时,我看到了这个:

Linux 环境有什么不同?同样,同一控制器在同一台 Linux 机器上的其他程序中工作。

更新:我发现检测到设备:

但是,我不确定为什么 SDL 没有检测到它。

0 投票
1 回答
708 浏览

linux - 为什么 SDL 在 Linux (PocketCHIP) 上检测不到我的 iBuffalo 游戏控制器?

我最近获得了一台名为PocketCHIP的基于 ARM 的 Linux 计算机。这是一台很棒的小电脑!我正在编写一个使用 SDL 2.0.4 和iBuffalo USB gamepad的程序。但是,SDL 似乎无法识别 PocketCHIP 上的控制器。我认为这是一个流行的控制器,所以如果 SDL 不支持它,我会感到惊讶,这让我觉得我的设置/安装有问题。该控制器确实可以在其他程序中工作(mednafen)。

在我的 Mac 上,当我运行 SDL 测试目录中包含的testgamecontroller.ctestjoystick.ccontrollermap.c脚本时,它们都可以正确识别控制器:

但是,当我在 PocketCHIP 上运行相同的脚本时,它没有检测到控制器。

Linux 似乎确实将设备识别为已连接:

我需要做什么才能让 SDL 识别 PocketCHIP 上的控制器?

0 投票
1 回答
613 浏览

android - 蓝牙控制器和控制台之间的游戏命令格式

我正在创建一个 Android 项目,其中我必须将android wearable智能手表作为游戏控制器,它可以向连接到该智能手表的手持设备上运行的游戏发送命令BLE(Bluetooth Low Energy)

我在可穿戴设备上设计了控制器板,并且可以通过点击控制器板的软按钮将一些硬编码文本发送到手持设备应用程序。问题是,我必须用在手持设备上运行的游戏所期望的游戏命令格式替换该文本。并且,在手持设备上运行的应用程序可以通过可穿戴服务收听文本。我知道,第三方游戏不会运行任何可穿戴服务,那么第三方游戏将如何接受/收听可穿戴智能手表发送的命令。

第三方游戏可通过Android SDK支持硬件控制器

0 投票
1 回答
659 浏览

ios - 快速从对象中获取哈希值

在 Swift 中,当我打字时

NSLog 打印效果很好

其中 vendorName 是 GCController 中的公共变量,但 deviceHash 不是。我可以以某种方式访问​​该值吗?即使是纯字符串?NSLog 从哪里获取值?我尝试以类似的格式制作 NSString,但它没有给我预期的结果

0 投票
0 回答
463 浏览

swift - 在 iOS Swift Playgrounds 中读取游戏控制器时遇到问题

我一直在修补 Swift Playgrounds 来学习 Swift 和 SpriteKit。直到现在,事情进展顺利。我能够组装一个完全在 9.7 英寸 iPad Pro 上开发的简单但有趣的游戏。它所需要的只是游戏控制器支持。在设法移植网上找到的 Swift 2 教程后,游戏控制器在 xCode 8.1 中工作。但是我更喜欢开发平台,iPad 的表现也不尽如人意。

以下是适用于 macOS 的游戏控制器代码:

在 iPad 上,我发现有必要在 Swift Playgrounds 和另一个应用程序(或 Home)之间短暂切换并返回以识别控制器。但在那之后,设置一直进行到为 A 按钮分配处理程序。随心所欲地按 A 按钮,iPad 不会收到消息。如前所述,macOS 似乎工作得很好。

谁能指出导致 iPad 脾气暴躁的原因?谢谢您的帮助!