Model view controller MVC iOS突破游戏设计

Model view controller MVC iOS突破游戏设计,model-view-controller,Model View Controller,我的突破类游戏中有以下型号: Ball.h Block.m 游戏性 划桨 划桨 我亦有以下意见: 鲍尔维尤 区块视图 桨景 我的问题是,当我更改模型中的属性时,我还必须更改视图中的属性。例如: 球型: @interface Ball : NSObject @property (nonatomic, strong) NSNumber *radius; @property (nonatomic, strong) NSNumber *xSpeed; @property (nonatomic,

我的突破类游戏中有以下型号:

  • Ball.h
  • Block.m
  • 游戏性
  • 划桨
  • 划桨
我亦有以下意见:

  • 鲍尔维尤
  • 区块视图
  • 桨景
我的问题是,当我更改模型中的属性时,我还必须更改视图中的属性。例如:

球型:

@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
球视图:

@interface BallView : UIView
@property (strong, nonatomic) UIColor *color;
@property (nonatomic) int radius;
@end

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

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

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

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