Iphone 核心动画还是opengl?
制作像“涂鸦跳跃”这样的游戏需要opengl或核心动画就足够了吗?哪一个是你应该考虑使用OpenGL的地方? 几周来,我一直在玩一个小的等距3D游戏。我第一次使用CA,但改用了OpenGL。我的理由是:Iphone 核心动画还是opengl?,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,制作像“涂鸦跳跃”这样的游戏需要opengl或核心动画就足够了吗?哪一个是你应该考虑使用OpenGL的地方? 几周来,我一直在玩一个小的等距3D游戏。我第一次使用CA,但改用了OpenGL。我的理由是: 考虑到我在做3D,切换是有意义的 我的代码中没有使用Cocoa或任何Obj-C结构,它是纯C OpenGL允许我在其他平台上使用稍微不同的包装器来测试我的应用程序 对我来说,这使OpenGL成为一项值得的投资 YMMV这是我个人的观点, 我认为用CA制作游戏很复杂。 我推荐OpenGL 在基
- 考虑到我在做3D,切换是有意义的
- 我的代码中没有使用Cocoa或任何Obj-C结构,它是纯C
- OpenGL允许我在其他平台上使用稍微不同的包装器来测试我的应用程序
YMMV这是我个人的观点, 我认为用CA制作游戏很复杂。 我推荐OpenGL 在基于OpenGL的项目中,您应该手动逐帧绘制和移动元素以制作动画。 它需要比CA稍长的代码,但您可以轻松地同步屏幕和游戏状态。 在使用CA时,很难严格地同步图形和游戏 当然,OpenGL的性能要比CA好得多。
而且,学习OpenGL并不难 如果您没有opengl和iphone开发经验,我建议您首先使用quartz制作基本游戏,因为它将为您提供最简单的学习曲线。出于您的需要,它甚至可能在最后一场比赛中表现得足够好 下面是一个简单的自定义视图,它以30帧/秒的动画循环渲染单个精灵
@interface GameView : UIView{
NSTimer* animTimer;
UIImage* sprite;
}
- (void)animate:(NSTimer*)theTimer;
@end
@implementation GameView
- (id)initWithFrame:(CGRect)frame {
if((self=[super initWithFrame:frame])){
sprite=[[UIImage imageNamed:@"sprite.png"] retain];
animTimer=[[NSTimer scheduledTimerWithTimeInterval:1.0/30.0
target:self selector:@selector(animate:)
userInfo:nil repeats:YES] retain];
}
return self;
}
- (void)animate:(NSTimer*)theTimer{
[self setNeedsDisplay];
}
- (void)drawRect:(CGRect)rect {
[sprite drawAtPoint:CGPointMake(0,0)];
}
@end
说得好。尽管如此,制作一个2d游戏,比如“涂鸦跳跃”并不一定需要opengl,是吗?我想做一个游戏。我刚刚开始学习这一点,所以我也想知道我应该从哪里开始呢?CA或OpenGLIt实际上取决于您将来打算使用它的位置。如果这是一个单一的游戏,而你对游戏开发没有任何兴趣,那就去CA吧。如果你最终想开发更复杂的游戏,学习OpenGL是一种有趣且非常有益的体验,在未来肯定会对你有所帮助。