iPhone [NSString drawAtPoint: withFont:] Всегда рисует ноль - PullRequest
1 голос
/ 22 июня 2011

Я изучаю программирование игр для iPhone из книги Пола Зиркля и Джо Хога, за исключением того, что немного изменил ситуацию. Скорее всего, вы не знаете эту книгу, поэтому я объясню вам структуру моего приложения. У меня есть один xib, MainMenu.xib, который имеет только окно. Никаких других сибсов. Тогда у меня есть контроллер представления и на данный момент один подкласс UIView. (И, конечно, мой представитель приложения). Прямо сейчас приложение должно повернуть экран синим цветом и нарисовать FPS (29) черным. Вот что происходит:

http://img27.imageshack.us/img27/6918/screenshot20110621at100.png (я не мог вставить это, форум не позволил бы мне)

Ой! FPS в моей консоли говорит 29! И в левом нижнем углу экрана есть маленький ноль. Вот мой код для нарисованного в настоящее время UIView:

#import "MainMenuState.h"

@implementation MainMenuState

- (void)drawRect:(CGRect)rect
{
    g = UIGraphicsGetCurrentContext();
    [self render];
}

- (void)updat { // yes, updat

}

- (void)render {
    //NSLog(@"render called (MainMenuState)");
    UIGraphicsPushContext(g);
    if (g == nil)
        NSLog(@"g == nil"); // Doesn't print b/c it shouldnt
    if (UIGraphicsGetCurrentContext() == nil)
        NSLog(@"UIGraphicsGetCurrentContext == nil"); // also doesnt for same reason
    // fill background with blue
    CGContextSetFillColorWithColor(g, [UIColor blueColor].CGColor);
    CGContextFillRect(g, [self bounds]);

    // Let's draw the FPS now
    int fps = [[[UIApplication sharedApplication] delegate] getFPS];
    NSLog(@"Received FPS of %d (MainMenuState)", fps);                          // prints 29
    NSString *fpsString = [NSString stringWithFormat:@"%d", fps];
    NSLog(fpsString);                                                           // prints 29
    CGContextSetFillColorWithColor(g, [UIColor blackColor].CGColor);
    [fpsString drawAtPoint:CGPointMake(30.0, 60.0) withFont:[UIFont systemFontOfSize:[UIFont systemFontSize]]];
    UIGraphicsPopContext();
}


- (void)dealloc
{
    [super dealloc];
}

@end

Я поместил пару заметок справа, думаю, вам нужно прокрутить представление кода, чтобы увидеть их. В любом случае должно отображаться 29 вместо нуля. Что не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...