如何将NSObject移动到Point(x,y)?

时间:2010-11-26 09:45:46

标签: iphone sprite

我有一个Sprite对象定义如下:

@interface Sprite : NSObject {
CGFloat x;                      // x location
CGFloat y;                      // y location
CGFloat r;                      // red tint
CGFloat g;                      // green tint
CGFloat b;                      // blue tint
CGFloat alpha;                  // alpha value, for transparency
}

在包含视图的initWithCoder函数中,我使用:

实例化它
sprite = [[Sprite alloc] init];
sprite.x = 50; 
sprite.y = 100; 
sprite.width = 100; 
sprite.height = 200; 
sprite.r = 0.0; 
sprite.g = 1.0; 
sprite.b = 0.0;

我正确地看到了一个绿色的矩形。 现在我想移动它:我定义了一个像这样的moveTo方法

- (void) moveTo: (CGPoint) p
{
    x = p.x;
    y = p.y;
}

但是当我打电话时没有任何反应......我不知道如何重绘我的对象

任何人都可以帮助我吗?

提前致谢! 角

2 个答案:

答案 0 :(得分:4)

你怎么看绿色的矩形?你在哪里画画的? NSObject无法画出......

您可以从UIView派生它并将您的moveTo更改为:

- (void) moveTo: (CGPoint) p
{
   self.frame.origin = p;
   [self setNeedsDisplay];
}

答案 1 :(得分:1)

NSObject不是可绘制的对象。如果你想拥有一个可绘制的对象,你应该使用UIView或其子类,它具有绘制自己的所有方法,如drawRect