在Xcode中创建一个操纵杆/ D-Pad来移动UIImageView(包含字符)

时间:2011-04-08 14:56:29

标签: objective-c xcode ios4 joystick

我有一个UIImageView连接到我编码的游戏。但是我想知道如何通过操纵杆/ D-Pad移动这个UIImageView。我没有编写JoyStick或D-Pad,因为我不知道如何操作。如果你能告诉我如何做到这一点,我将非常感激。


修改

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

2 个答案:

答案 0 :(得分:3)

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

否则,如果你想合法地做事,一个外接操纵杆连接到iphone的30针自动连接,或通过蓝牙连接要求你是Registered iOS Developer(RAD),也是{{3}的一部分}(MFI)。

在iOS上设置与附件的通信需要使用Made for iPod Program,其中有一个Apple示例项目:ExternalAccessoryFramework,以及此处的Apple演练EADemo

还有一本名为External Accessory Programming Topics的Apress书,以及一个类似于你想做的乒乓游戏的相关演示项目。本书将指导您如何设置EAAccessoryFramwork代码,以及如何构建游戏控制器硬件,但没有描述如何为附件编写任何固件,因为您需要获得MFi许可才能获得此信息。

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

答案 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); 
}]; 

如果您需要进一步澄清,请与我们联系。