2011-06-03 36 views
0

所有你ios架构师那里,请帮我选择架构/技术为以下iphone/ipad应用程序。Iphone/ipad体系结构游戏外观应用程序的建议

该应用程序本身是一个金融应用程序,但我们希望更多的应用程序的游戏外观和感觉,所以我们可能不想使用cocoa小部件的内置外观。屏幕上的元素可能会是某种形状的斑点图像。

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

主要用户交互将在中间blob内滑动,显示概念上包含在blob底层数据存储区内的项目摘要。现在,用户会将该项目拖放到其他斑点之一。在拖动的时候,应该通过一条线来追踪该物品,并且当放置在另一个物体上时,该物品应该被动画化,看起来它被“吸入”了一团。

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

我意识到这个问题可能不那么直截了当,因为问题通常都是关于这个问题,但是我希望你的答案会比我更多的人使用。谢谢!

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

另一件有用的事情是UIGestureRecognizer:s。我发现它们对于处理诸如刷卡,longpress等“真实”手势都有用,而且对于处理UIControl的子类UIView类的普通“tap”也是非常有用的。 UIImage,UILabel和UIView本身就是两个例子。这样我可以处理这些简单类的水龙头。例如,我可以使用一个普通的UIView,修改它的CALayer完全改变它的外观,并仍然处理水龙头。使用这种技术,我不必在我的应用程序中继承任何视图。

即使我不得不使用非公开方法来使用“吸”动画,动画也非常容易,所以我的应用程序永远不会通过App Store审核。这只是一个原型,所以我不在乎。

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

回答

1

如果您需要快速移动元素,那么Cocos2d非常棒,因为它是OpenGLES之上的一个图层。我认为从你所说的UIKit会很好,你会得到很好的动画支持,你可以用UIScrollViews做一些很好的事情来处理周围的移动元素等。

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

+0

不要混合UIKit和OpenGL。这是一场性能灾难。 – Moshe 2011-06-03 13:45:37

+0

Errrr,我不是,我说要么Cocos2D OR UIKit .... – 2011-06-03 13:53:46

+0

谢谢!我想我会和Cocos2D一起去。就我个人而言,我发现UIKit混淆和限制。我经常遇到无法完成的事情,或者我无法弄清楚事情出错的情况。通常情况下,我忘了重写一些不太明确的方法,或者在Interface Builder中单击一些设置,从而以基本方式更改应用程序的行为。但是,这可能是由于我的UIKit巨大的知识空白。我不明白的一切当然令人困惑;) – Hunkpapa 2011-06-03 15:31:05