【问题标题】:Create a Joystick/D-Pad in Xcode to move UIImageView (containing character)在 Xcode 中创建 Joystick/D-Pad 以移动 UIImageView(包含字符)
【发布时间】:2011-04-08 14:56:29
【问题描述】:

我有一个 UIImageView 连接到我编写的游戏。但是我想知道如何通过操纵杆/方向键移动这个 UIImageView。我没有编写操纵杆或方向键,因为我不知道如何编写。如果你能告诉我我该怎么做,我将不胜感激。


编辑:

一个虚拟操纵杆(在应用程序中)。

【问题讨论】:

  • 你是指虚拟的还是真实的?
  • imageView.center = CGPointMake(x,y);
  • 虚拟一个。不是真的。我要更新问题。

标签: objective-c xcode ios4 joystick


【解决方案1】:

如果您使用的是越狱的 iphone,您可以尝试this tutorial 使用 rs232 与 iphone/ipod 进行串行通信。

否则,如果您想合法地做事,连接到 iphone 的 30 针串行连接或通过蓝牙的外部操纵杆要求您是 Registered iOS Developer(RAD),并且也是 Made for iPod Program(MFI) 的一部分.

在 iOS 上设置与配件的通信需要使用 ExternalAccessoryFramework,这里有一个 Apple 示例项目:EADemo,这里有一个 Apple 演练External Accessory Programming Topics

还有一本名为Building iPhone OS Accessories 的 Apress 书籍,以及一个与您想做的类似的乒乓球游戏的相关演示项目。本书将引导您完成如何设置 EAAccessoryFramwork 代码,以及如何构建游戏控制器硬件,但没有描述如何为配件编写任何固件,因为您需要获得 MFi 许可证才能获得此信息。

我希望这足以让您入门。 :)

【讨论】:

  • 哇,这里的信息非常有用,但我认为他所说的“编码”是指虚拟操纵杆/键盘。不过感谢您的信息!
  • 哦,我明白了,但是没问题,我不得不以艰难的方式找出所有这些东西,所以我想我会分享它,因为它可能会节省一些时间。 :)
  • 我一直在考虑摆弄连接到 iPhone 的硬件,所以你帮助我了解了开始所需的步骤(并且因为我必须跳的所有箍而粉碎了我的动力通过,但这不是你的错哈哈)
  • +1,但我几乎没有 - 恕我直言,越狱链接在这里并不合适。不过,这是一个小问题,其余的都非常有用。
  • 嘿,这真的很有趣,但我的意思是虚拟操纵杆(在我的应用程序中)!!
【解决方案2】:

如果您希望创建虚拟 dpad,请尝试以下操作:

创建 4 个 UIButton 对象,并使用方向箭头图形设置它们(我建议在 IB 中执行此部分)。

然后创建 4 个单独的 IBAction 方法并通过 IB 或以编程方式在 viewDidLoad 中将它们链接到您的按钮。

每个 IBAction 方法应该如下所示:

-(IBAction)moveLeft:(id)sender{
     myImageView.center = CGPointMake(myImageView.center.x-10, myImageView.center.y); 
}

-(IBAction)moveRight:(id)sender{
     myImageView.center = CGPointMake(myImageView.center.x+10, myImageView.center.y); 
}

-(IBAction)moveUp:(id)sender{
     myImageView.center = CGPointMake(myImageView.center.x, myImageView.center.y-10); 
}

-(IBAction)moveDown:(id)sender{
     myImageView.center = CGPointMake(myImageView.center.x, myImageView.center.y+10); 
}

您可以将 10 更改为您希望图像移动的任意数量的像素。

如果您希望视图在移动时具有动画效果,您可以将移动代码封装在动画块中:

[UIView animateWithDuration:1.0 animations:^{
     myImageView.center = CGPointMake(myImageView.center.x, myImageView.center.y+10); 
}]; 

如果您需要任何进一步的说明,请告诉我。

【讨论】:

    猜你喜欢
    • 2013-11-04
    • 2016-02-22
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 2022-08-09
    • 2013-07-09
    • 1970-01-01
    相关资源
    最近更新 更多