3

我在设备方向和输入方面遇到问题。使用 xcode->projects->orientation 设置,我禁用了除纵向之外的所有内容。当我转动设备时,图形保持在原位(如预期的那样),但 KKInput 手势(如平移)似乎提供了不正确的坐标和平移。我的第一个怀疑是我遗漏了与 KKInput 处理 convertToGL 相关的内容。在我看来,Cocos2d 似乎仍在读取设备的方向并将其考虑到计算中。如果有帮助,下面是一个插图。

来自正方形网格的两个“正方形”精灵。

**** | ****
*  * | *  *
**** | ****

将我的手指平移到 XX 精灵上,向右拖动。

      **** | ****
  ->  *XX* | *  * (squares move horizontal)
      **** | ****

将设备转为横向。

**** | ****
*  * | *  *
**** | ****

将我的手指平移到 XX 精灵上,向右拖动。

     ^ (squares move vertical)
     ^

    **** |
    *XX* | 
    **** |
    ____ | ****
           *  *
    **** | ****
    *  * |
    **** |
4

1 回答 1

0

是的,不幸的是 KKInput 使用操作系统的UIDeviceOrientation来转换用户输入。即使用户界面被锁定为纵向,设备方向也会返回横向,这会影响计算并导致此错误。

如果您的项目不是太旧,我建议迁移到 Cocos2d 3.0,它带有更简单的触摸处理。

于 2014-01-27T03:28:51.060 回答