Cocos2D是以OpenglES为底层图形库, 所以它采用的是OpenglES的坐标系统,即x轴向右,y轴向上。 而苹果的Quarze2D则使用的是不同的坐标系统,x轴向右,y轴向下。在初学OpenglES纹理的时候,用Quarze2D读取的图片在贴在OpenglES坐标系里图片是上下颠倒的,原因就是坐标系的不同造成的。
成都创新互联专注于企业成都全网营销、网站重做改版、榆社网站定制设计、自适应品牌网站建设、H5开发、商城网站定制开发、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为榆社等各大城市提供网站开发制作服务。
最近在学习Cocos2D的时候,用它的API进行渲染到纹理的时候也出现了上下颠倒的情况。
具体是这样发生的。首先我进行渲染到纹理的功能,伪代码如下:
- // 1: Create new CCRenderTexture
- CCRenderTexture *rt = [CCRenderTexture renderTextureWithWidth:textureSize height:textureSize];
- // 2: Call CCRenderTexture:begin
- [rt beginWithClear:bgColor.r g:bgColor.g b:bgColor.b a:bgColor.a];
- // 3: Draw all you want here with OpenglES
- // 4: Call CCRenderTexture:end
- [rt end];
- // 5: Create a new Sprite from the texture
- CCSprite *renderSprite [CCSprite spriteWithTexture:rt.sprite.texture];
- // 1: Create new CCRenderTexture
- CCRenderTexture *rt = [CCRenderTexture renderTextureWithWidth:textureSize height:textureSize];
- // 2: Call CCRenderTexture:begin
- [rt beginWithClear:bgColor.r g:bgColor.g b:bgColor.b a:bgColor.a];
- // 3: Draw all you want here with OpenglES
- // 4: Call CCRenderTexture:end
- [rt end];
- // 5: Create a new Sprite from the texture
- CCSprite *renderSprite [CCSprite spriteWithTexture:rt.sprite.texture];
然后我用第五步生成的精灵加到场景中,发现图是上下倒立的。因为我在第三步中我是采用的是openglES的坐标系,如果我用Quarze2D坐标系的方式去绘制,结果就是正确的。
还有一种解决办法,就是
- renderSprite.flipY = YES;
发生这种问题的具体原因不太清楚,只有看看cocos2d具体实现了。
小结:解析Cocos2D中坐标系问题的内容介绍完了,希望通过本文的学习,能对你有所帮助!
网站栏目:解析Cocos2D中坐标系问题
转载来于:http://www.shufengxianlan.com/qtweb/news33/535583.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联