Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c OpenGL ES/iPhone开发问题-第一个游戏_Objective C_Ios_Opengl Es - Fatal编程技术网

Objective c OpenGL ES/iPhone开发问题-第一个游戏

Objective c OpenGL ES/iPhone开发问题-第一个游戏,objective-c,ios,opengl-es,Objective C,Ios,Opengl Es,我目前正在用openGLES开发我的第一款iPhone游戏——它太棒了!爱它的每一分钟。不过,我有几个问题: 我想做一个粒子系统-最快的方法是什么?我可以想象我可以制作一个可变的粒子对象数组,但是每个粒子都必须从NSObject派生出来,对吗?这似乎会带来相当大的开销。。有更好的办法吗?过去,用C++我使用了一个非常简单的粒子对象向量,并把死粒子交换到最后,然后在需要一个新粒子的时候再使用这些粒子——我可能会在这里做同样的事情。只是担心(也许是不公正的)效率 如何更改OpenGL的坐标系,以允许

我目前正在用openGLES开发我的第一款iPhone游戏——它太棒了!爱它的每一分钟。不过,我有几个问题:

  • 我想做一个粒子系统-最快的方法是什么?我可以想象我可以制作一个可变的粒子对象数组,但是每个粒子都必须从NSObject派生出来,对吗?这似乎会带来相当大的开销。。有更好的办法吗?过去,用C++我使用了一个非常简单的粒子对象向量,并把死粒子交换到最后,然后在需要一个新粒子的时候再使用这些粒子——我可能会在这里做同样的事情。只是担心(也许是不公正的)效率

  • 如何更改OpenGL的坐标系,以允许我使用0-screensize作为单位,而不是默认的-1:1?(例如,使用点{-1,0,0,1,0,0,0,1,0}的简单顶点列表将形成一个三角形,其中斜边沿整个中心水平轴拉伸)

  • 看起来我根本无法在1.1中使用着色器,但2.0在所有方面都使用它们。我有什么理由坚持使用1.1吗

  • 是否有充分的理由完全在OpenGL中创建GUI?或者使用标准系统对我有好处吗?(例如使用GUI元素创建xib文件)

  • 因为我才刚刚开始,OpenGL ES有没有常见的陷阱?我并不是真的希望它是开放式的,我正试图根除任何具体的,绊倒了规范的许多新用户的东西

  • 我使用的是常规的C结构,在这种情况下,NSObjects是大杂烩,在3G上,我可以得到2000个粒子,C结构没有问题,对象不到200个
  • 类似这样的东西将为您提供480x320坐标系:

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    CGRect rect = self.view.bounds;
    if (highRes && (retina == 1)) {
        glOrthof(0.0, rect.size.width/2, 0.0 ,  rect.size.height/2, -1, 1000.0);
    } else {
        glOrthof(0.0, rect.size.width, 0.0 ,  rect.size.height, -1, 1000.0);    
    }
    
  • 仅支持<3GS的旧设备
  • 取决于你想要的外观和工作。如果您需要文本输入,请记住,您必须在openGL中从头开始进行输入,以及字体渲染等。有时您可以将两者混合使用(例如,使用文本框等打开抽屉),但混合使用openGL时,发生的事情必须非常简单
  • 很多陷阱,最好有一个好的教程,这样你就有了基础知识,从设置视图到获得模型纹理,之后如果出现问题,你可以参考它

  • 祝你好运,让它成为一个有趣的游戏:-)

    你考虑过使用像Cocos2D这样的框架吗?当然-我不反对框架。我通常很笨,喜欢自己滚。。。但是我现在还不太了解这个规范,所以像cocos2d这样的东西可能是个好主意。我应该把这个问题分解成倍数吗?哈哈,谢谢你的回答-我已经弄清楚了一切,除了我想对粒子做什么,我很感激!(哦,这已经很让人上瘾了,我花更多的时间玩这个愚蠢的游戏,而不是制作它!)