0

ゲームのようなブレイクアウトには次のモデルがあります。

  • ボール.h
  • Block.m
  • GamePlay.m
  • パドル.h
  • パドル.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

モデルのプロパティが変更された場合、場所や色などがあります。ビューでこれらの同じプロパティを更新する必要があります。モデルの位置と色を追跡するべきではありませんか?

4

1 に答える 1

0

MVC の主なポイントは、長期にわたる保守性だと思います。明日、ゲームのまったく異なるビューが必要になった場合でも、モデル コードは同じままでよいため、ビュー部分のみの変更に集中できます。

また、ゲームの状態に関するデータが必要であることがわかっている場合は、モデル内のどこにデータがあるかがわかります。たとえば、友人があなたがブロックを壊すのを見たいと思っている場合、ボールの位置をインターネット経由で友人に送信したい場合があります。

おそらく最後の 2 つの段落から推測できるように、実際には、モデル内のボールの位置と色を保存して更新する必要があります。ビューは、アプリの状態の所有者であってはなりません。

于 2012-07-01T21:51:38.290 に答える