Как использовать класс Sprite с CGRect - PullRequest
0 голосов
/ 05 апреля 2011

Я очень новичок в программировании (особенно Objective-C) и хотел бы знать, как переместить спрайт в виде нарисованного CGRect.У меня возникают проблемы при рисовании CGRect, и я застреваю при попытке переместить CGRect.Вот мой код до сих пор.В этом коде есть класс sprite (подкласс UIView для target-C) и контроллер представления.Весь этот код показывает, как я нарисовал свой CGRect.Любая помощь или идеи будут с благодарностью.

//the Sprite.h file

@interface Sprite : UIView {
    UIImage* image;
}

//the Sprite.m file

-(id)initWithFrame:(CGRect)frame {
    UIImage* loadedImage = [UIImage imageNamed:@"image1.png"];
    CGRect rect = CGRectMake(frame.origin.x, frame.origin.y, loadedImage.size.width, loadedImage.size.height);  
    self = [super initWithFrame:rect];
    image = [loadedImage retain];
    self.opaque = NO;
    self.backgroundColor = [UIColor clearColor];    
    return self;
}

-(void)drawRect:(CGRect)rect {
    [image drawInRect:rect];
}

//the ViewController.m file

-(void) viewWillAppear:(BOOL)animated {
    // add a sprite
    Sprite* mySprite = [[Sprite alloc] initWithFrame:CGRectMake(150, 100, 0, 0)];
    [self.view addSubview:mySprite];
}

//the ViewController.h file

@class Sprite; 

@interface Sprite2TestViewController : UIViewController {
    Sprite* Sprite;
}

1 Ответ

0 голосов
/ 05 апреля 2011

две точки

1> вы еще не написали

`if((self = [super initWithFrame:frame]))` 

в вашем методе init вы должны написать это

2> Линия

Sprite* mySprite = [[Sprite alloc] initWithFrame:CGRectMake(150, 100, 0, 0)];

вы задали x = 150 y = 100, а высота и ширина равны 0 ... Я думаю, что вы поменялись местами по ошибке ... Высота вашего изображения и ширина изображения сейчас равны 0 ...

...