Himi 原创, 欢迎转载,转载请在明显处注明! 谢谢。
原文地址:http://blog.csdn.net/xiaominghimi/article/details/6926913
本章节主要为大家介绍在游戏开发过程中经常遇到的两个问题;
1. 解决滚屏背景或拼接地图有黑边!
对于游戏开发中,背景(游戏地图)是必要的元素之一,那么对于大部分游戏的背景都是动态,或者不断移动的;例如RPG中的背景随着人物、主角而移动,那么一般情况下背景都是由地图编辑器(图块)拼出来的,要不就是直接一整张大图去显示,在或者就是将一张大图进行裁减成N张,然后再进行拼接完成等等;
那么对于背景(地图)元素中存在的重复图块很少的话基本上就没有利用地图编辑器的必要了;在这里Himi不来介绍如何在cocos2d中使用地图编辑器做背景地图 ,而是介绍在cocos2d中制作滚动地图时利用拼接地图方式遇到的黑边问题;
如下图所示,背景是由3张图片拼接而成,如下3张图:
然后Himi将此3张作为3个精灵然后顺次绘制在屏幕上代码如下:
-
- CGSize screenSize =[[CCDirector sharedDirector]winSize];
- CCSprite *bgTile1 =[CCSprite spriteWithFile:@"himi_01.png"];
- bgTile1.position=ccp(bgTile1.contentSize.width*0.5,screenSize.height*0.5);
- CCSprite *bgTile2 =[CCSprite spriteWithFile:@"himi_02.png"];
- bgTile2.position=ccp(bgTile1.position.x+bgTile1.contentSize.width,bgTile1.position.y);
- CCSprite *bgTile3 =[CCSprite spriteWithFile:@"himi_03.png"];
- bgTile3.position=ccp(bgTile2.position.x+bgTile2.contentSize.width,bgTile2.position.y);
- [self addChild:bgTile1 z:0 tag:11];
- [self addChild:bgTile2 z:0 tag:22];
- [self addChild:bgTile3 z:0 tag:33];
此时运行的截图如下:
从上图童鞋们就可以看到拼接有裂缝,那么接着让3个精灵从左向右不断的x轴+1进行移动,代码如下:
-
-
- [self schedule:@selector(move) interval:0.1];
-
- -(void)move{
- CCSprite *tempSprite =(CCSprite*)[self getChildByTag:11];
- tempSprite.position=ccpAdd(tempSprite.position, ccp(1,0));
- tempSprite =(CCSprite*)[self getChildByTag:22];
- tempSprite.position=ccpAdd(tempSprite.position, ccp(1,0));
- tempSprite =(CCSprite*)[self getChildByTag:33];
- tempSprite.position=ccpAdd(tempSprite.position, ccp(1,0));
- }
运行截图如下:
这时当移动到一定距离时候会发现刚才的缝隙消失了,是消失了,通过以上两张运行效果图可以说明:
在cocos2d中如图你使用拼接背景地图的方式去做的话,每处拼接处在移动时都会时不时的出现黑边(裂缝),至于如何解决我想童鞋们第一想法就是在裁图的时候多切出一像素的方法,第一张比如原来是100,故意裁出101,第二张绘制的时候X轴前一个像素...以此类推,还有些童鞋认为是美工的原因,可能在裁图的时候有透明像素的存在造成,当然美工裁图的不仔细确实是个不可排除的原因,但是最终解决的方案应该是将精灵设置贴图无锯齿的属性,这样就可以完美解决此问题,设置精灵贴图无锯齿方法如下:
- [CCSprite.texture setAliasTexParameters];
我们将这句添加上之后再次运行,代码更改如下:
-
- CGSize screenSize =[[CCDirector sharedDirector]winSize];
- CCSprite *bgTile1 =[CCSprite spriteWithFile:@"himi_01.png"];
- bgTile1.position=ccp(bgTile1.contentSize.width*0.5,screenSize.height*0.5);
- CCSprite *bgTile2 =[CCSprite spriteWithFile:@"himi_02.png"];
- bgTile2.position=ccp(bgTile1.position.x+bgTile1.contentSize.width,bgTile1.position.y);
- CCSprite *bgTile3 =[CCSprite spriteWithFile:@"himi_03.png"];
- bgTile3.position=ccp(bgTile2.position.x+bgTile2.contentSize.width,bgTile2.position.y);
-
- [bgTile1.texture setAliasTexParameters];
- [bgTile2.texture setAliasTexParameters];
- [bgTile3.texture setAliasTexParameters];
- [self addChild:bgTile1 z:0 tag:11];
- [self addChild:bgTile2 z:0 tag:22];
- [self addChild:bgTile3 z:0 tag:33];
再次运行效果图如下:
OK,完美解决;
2.下面介绍第二个问题:如何禁止手机自动锁屏的问题;
对于手机自动锁屏的问题一般都是在项目尾声的时候发现由于手机自动锁屏所带来的各种问题,例如,在cocos2d中我们调用暂停游戏的函数后,如果用户无操作,手机自动锁屏后,解锁再次进入游戏就会发现游戏不处于暂停了,(如果你有暂停界面的话,你将看到你暂停界面存在,而后面的游戏照常运行- -)
那么这里Himi给出在应用中禁止手机自动锁屏的代码,如下:
- [[UIApplication sharedApplication] setIdleTimerDisabled:YES];
OK,本章介绍的知识点虽然很少解决的方法也很简单,但是也是游戏中最容易遇到的两个问题;
那么这里肯定会有不少童鞋认为本身一句代码的事情非写这么多进行说明,嗯 ,确实写的过于详细,但是Himi之所以写这么详细主要还是想让还没有遇到此类问题的童鞋清晰化此类问题出现的原因,这样能让更多童鞋减少以后遇到此问题的疑问~
分享到:
相关推荐
VB 自动滚屏功能 VB 自动滚屏功能 VB 自动滚屏功能
JS控制页面背景色切换、显示字体、滚屏速度
Html 双击自动滚屏代码Html 双击自动滚屏代码
RichEdit控件删除行操作 自动滚屏到最后的应用示例
对于一些特殊的模板,可能为了展示的更加丰富、全面会在一个页面放置很多图表。表格等内容。由于内容过多,超出了浏览器窗口的大小...这样我们就需要用到JS滚屏效果来解决,这里主要介绍在FineReport中的具体制作方法。
• 自动滚屏 • 重点 • 暂停所有标签 • 显示密码 • YouTube - 提取字幕 • 密码生成器 • 自动点击 CTG Plugins 插件简介: 这是来自Chrome商店的 CTG Plugins 浏览器插件,您可以在当前页面下载它的最新版本...
如何实现自动滚屏功能VB.NET 如何实现自动滚屏功能VB.NET
自动滚屏工具,自动滚屏,看电子图书的好工具。
js实现页面自动滚屏效果,可以设置单击,双击,还可以绑定在一个元素上触发
jquery 自动刷新页面 页面无限循环滚屏 绝对好用
手机游戏 j2me MapEditor 地图编辑器 !!!!!!!!!!!!!!!!!!!!!
Flash游戏中人物走动与场景自动滚屏AS3.0代码,自己做游戏时,要用到,一直没在网上找到源码,自己结合相关知识动手写了一个.(保证能用)
自动滚屏软件,Window用。假如某个窗体太大,或者超出了显示器的边界而无法用鼠标键盘操作挪回来,那么可以试试这款自动滚屏软件(插件)。只要用鼠标的光标向(窗口超出部分)屏幕边界挪动,那么超出屏幕显示范围的...
能够使其他软件自动滚屏的软件 将鼠标指向要滚动的窗口后,该窗 口会自动滚动,然后按Ctrl+Alt+S 确认这个窗口。 1.2版改进了对Microsoft ;;;Word的支持。 1.22版改正了几个错误。 1.23版...
NULL 博文链接:https://pireswang.iteye.com/blog/325568
很小巧的txt滚屏小工具,但不只限于txt,还有其他。
实现双击自动滚屏的JS代码 实现双击自动滚屏的JS代码 实现双击自动滚屏的JS代码
背景概述 功能简介 游戏的策划 开发前的准备工作 各个类的简要介绍 游戏的框架简介 欢迎动画界面的设计与实现
更多资源请查看: http://download.csdn.net/user/njzdl
自动滚屏按钮.rar自动滚屏按钮.rar自动滚屏按钮.rar自动滚屏按钮.rar自动滚屏按钮.rar自动滚屏按钮.rar自动滚屏按钮.rar自动滚屏按钮.rar自动滚屏按钮.rar自动滚屏按钮.rar自动滚屏按钮.rar自动滚屏按钮.rar自动滚屏...