我正在从Paul Zirkle和Joe Hogue的书中学习iPhone游戏编程,除了我已经改变了一些东西。你有可能不懂那本书,所以我会向你解释我的应用程序的结构。我有一个xib,MainMenu.xib,它只有一个窗口。没有其他的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而不是零。出了什么问题?