0

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


编辑:

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

4

2 回答 2

3

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

否则,如果您想合法地做事,连接到 iphone 的 30 针串行连接或通过蓝牙的外部操纵杆需要您是注册 iOS 开发人员(RAD),并且也是Made for iPod Program (MFI) 的一部分。

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

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

我希望这足以让你开始。:)

于 2011-04-08T15:39:04.407 回答
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); 
}]; 

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

于 2011-04-08T16:03:15.943 回答