Iphone / ipad架构建议游戏外观应用程序

时间:2011-06-03 12:08:10

标签: iphone objective-c ios ipad

所有ios架构师,请帮助我选择以下iphone / ipad应用程序的架构/技术。

该应用程序本身是一个财务应用程序,但我们想要更多的游戏外观应用程序,所以我们可能不想使用可可小部件的内置外观。屏幕上的元素可能是某种blob形状的图像。

该应用程序基本上有五个“blob”形区域,均匀分布在整个屏幕上。其中一个斑点将居中并且比其他斑点更大。在每个blob中都会有可点击的区域,这些区域会弹出“细节”和菜单动作blob。这些blob也是图形对象,不能接管整个屏幕。弹出时,斑点应该很好地动画。图形元素将生成几行文本,因此叠加文本本身不能成为静态背景图像的一部分。

主用户交互将在中心blob内滑动,显示概念上包含在blobs底层数据存储中的项目的摘要。有时,用户会将项目拖放到其他blob中。在拖动时,该项应该由一条线跟踪,当放在另一个blob上时,该项应该被设置为动画,看起来像是“被吸进”了这个blob。

现在,您会为这款应用推荐什么样的技术? Cocoa适合这种情况吗?我应该使用像Cocos2D这样的游戏框架吗?包括示例代码片段在内的各种建议都是最受欢迎的。

我意识到这个问题可能不那么简单,而且问题一般都是关于SO的问题,但我希望你的答案会比我更多的人使用。谢谢!

编辑(我的解决方案): 我最终在UIKit做了一切,这比我预想的要容易得多。 简单地描述我使用了具有自定义样式的UIButtons和图像背景,这使我可以完全控制“项目”的视觉外观。我还发现操纵我的许多其他UIViews的底层CALayer非常有用。它通常比使用Core Graphics编程从头开始绘制更容易。

另一个有用的东西是UIGestureRecognizer:s。我发现它们既可用于处理“真实”手势,如滑动,长按等,也可用于处理不是UIControl子类的UIView类的正常“点击”。两个例子是UIImage,UILabel和UIView本身。这样我可以处理这些简单类的水龙头。例如,我可以使用普通的UIView,修改它的CALayer来完全改变它的外观并仍然处理水龙头。使用这种技术,我不必在我的应用程序中对任何视图进行子类化。

动画也很简单,即使我必须使用非公共方法来使用“吮吸”动画,所以我的应用程序永远不会通过App Store审核。无论如何它只是一个原型,所以我不在乎。

当这个应用程序真实存在时,我可能会在Phonegap包装的HTML5 / JavaScript中实现它。其原因主要是重用现有的移动Web服务以及跨平台的代码重用。使用webapp时,可能更容易挂钩现有的安全解决方案。

1 个答案:

答案 0 :(得分:1)

如果你需要快速移动元素,Cocos2d很棒,因为它是OpenGLES之上的一层。我想从你所说的UIKit会很好,你得到了很好的动画支持,你可以用UIScrollViews来处理移动元素等等。

如果您需要更详细的图形支持和大量的移动元素,粒子效果等,那么一定要去Cocos2D,但请注意,在Cocos2d中,应用程序在预定的更新方法上工作得更多,即每1/60收到一次通知一秒钟移动东西绘制东西等,而与正常的UIKit方法,它是更多的事件驱动器,即我点击一个按钮,并显示一个视图等。