iOS 棋盘游戏架​​构

Posted

技术标签:

【中文标题】iOS 棋盘游戏架​​构【英文标题】:iOS board game architecture 【发布时间】:2012-07-08 13:50:35 【问题描述】:

我即将将我的五合一客户端移植到 ios 平台。最初我是用Java设计的。有 15*15 个字段需要显示。在 PC 上,我用单独的对象表示字段,这些对象只对自己负责(事件处理等)。我不确定在移动平台上做同样的事情是否是个好主意(我的意思是使用 225 个手势识别器听起来不太有希望)。还有另一种方法将所有这些字段合并到一个大视图中,该视图通过对屏幕坐标进行一些数学运算来负责绘图和事件处理。我个人更喜欢第一种方法,因为它更基于 OO。你认为,如果性能是主要的,我应该在 iOS 上更喜欢哪一个?提前致谢!

【问题讨论】:

【参考方案1】:

如果性能是主要的,您可以使用自定义绘制视图,使用UIGestureRecognizer 获取 CGPoint 并仅重绘使用UIView 影响的区域(正方形):

- (void)drawRect:(CGRect)rect

做这个数学很简单。

但是,根据控件和每个单元格的复杂性,该代码可能难以维护。创建一个带有子视图的分层控件,其中每个子视图负责它如何绘制、处理手势等……更易于维护,代码最终会更干净。会不会有更多的开销?是的。这会是个问题吗?可能不会。因此,您需要尝试并测量。使用子视图创建聚合视图是很常见的,每个子视图都知道如何绘制和处理手势——这就是可可触摸的全部意义所在。

【讨论】:

我会尝试一下,并像在 Java 中那样实现它,而这些字段有一些非常复杂的行为!谢谢!

以上是关于iOS 棋盘游戏架​​构的主要内容,如果未能解决你的问题,请参考以下文章

畅玩三子棋(可选择棋盘大小)

棋盘游戏

1358 棋盘游戏[状压dp]

Java中简单棋盘游戏的Canvas或Swing?

codevs1358棋盘游戏(状压dp)

91 棋盘游戏