首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MVC iOS突破游戏设计

MVC iOS突破游戏设计
EN

Stack Overflow用户
提问于 2012-06-29 13:33:38
回答 1查看 201关注 0票数 0

我有以下的模型在我的突破喜欢游戏:

  • Ball.h
  • Block.m
  • GamePlay.m
  • Paddle.h
  • Paddle.m

我亦有以下意见:

  • BallView
  • BlockVIew
  • PaddleView

我的问题是,当我改变模型中的属性时,我也必须改变视图中的属性。例如:

球模型:

代码语言:javascript
运行
复制
@interface Ball : NSObject
@property (nonatomic, strong) NSNumber *radius;
@property (nonatomic, strong) NSNumber *xSpeed;
@property (nonatomic, strong) NSNumber *ySpeed;
@property (nonatomic, strong) NSNumber *xDirection;
@property (nonatomic, strong) NSNumber *yDirection;
@property (nonatomic) CGPoint location;
@property (nonatomic, strong) UIColor *color;
@end

球视图:

代码语言:javascript
运行
复制
@interface BallView : UIView
@property (strong, nonatomic) UIColor *color;
@property (nonatomic) int radius;
@end

当模型的属性发生变化时,我就会有这样的位置或颜色。我必须在视图中更新这些相同的属性。我不应该跟踪我的模型的位置和颜色吗?

EN

回答 1

Stack Overflow用户

发布于 2012-07-01 21:51:38

我认为MVC的要点是随着时间的推移可维护性。如果您决定明天需要一个完全不同的游戏视图,则模型代码可以保持不变,因此您可以专注于修改视图部分。

此外,如果你知道你需要一些关于游戏状态的数据,你知道在哪里可以找到它-在模型中。例如,如果你的朋友有兴趣观看你的破门而入,你可以通过互联网把球的位置传送给他。

正如您可能从最后两段中猜测到的那样,您确实应该存储并更新模型中球的位置和颜色。视图不应该是应用程序状态的所有者。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11262776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档