游戏公司日记(5)

来源:互联网 发布:航盛导航端口 编辑:程序博客网 时间:2024/06/05 02:18

昨天有没写日记,和今天的一起补上吧。

昨天晚上代码看到2点,不是被逼的,而是发现cocos2dx代码中的精华了, 虽然公司用的是cocos2dx 2.2.2的很老的游戏版本,但是里面还是有很多值得看的地方。

昨天就发现了CocosGUITestMainLayer demo中的用法,真是受益匪浅啊,里面主要交代了界面的动画效果,比如界面的拖动和滚动。和控件层的使用。

昨天和老板讨论了一下自适应,iphone4和iphone5的长宽比不同,iphone4和ipad的长宽比也不同。一般游戏按照iphone4的手机分辨率为原型,如果游戏使用全适应,iphone5中游戏的高会被拉长(长宽比大),但是ipad的宽被拉长(长宽比小)。

对于比iphone4长的iphone5手机,应该采用根据宽度来自适应。唯一需要注意的地方是背景图的大小应该按照iphone5的来做,并且游戏画面应该始终按照屏幕中点坐标来搭建。这样做出来的游戏放在iphone4上是完全正确的,只是没显示整张背景图,而游戏运行在iphone5上就是把背景图全部显示出来,上下两边多出来一点空间。但比全适应美观。

对于比iphone4宽的ipad手机,同样的道理,应该采用根据长来自适应。需要注意的地方也是背景图的大小应该按ipad的来做,结合上面iphone5的经验,背景图片的长和宽都要比原iphone4中的要大。也是放在屏幕中点搭建,这样做出来的游戏放在iphone4上是完全正确的,只是没显示整张背景图,而游戏运行在ipad上就是把背景图全部显示出来,只是左右两边多出来一点空间。但比全适应美观。

所以根据ios的经验也可以得出安卓手机的自适应原理。

最后应该在代码中这样判断:

首先得到屏幕的长宽比currentAspectRatio和你现在开发游戏时原始长宽比originalAspectRatio。

if(currentAspectRatio>originalAspectRatio) 采用根据宽度自适应

if(currentAspectRatio<originalAspectRatio) 采用根据长度自适应


今天发现一个场景中的层弹出有2中方式

一是,新layer弹出(出现),老layer变暗。

二是,新layer弹出(出现),老layer弹出(消失)

我想了一下,可以这样实现

一是,当需要该layer时,创建一个Layer(应动态加载UILayer不要把UILayer全部写入studioScene中,然后游戏运行的时候全部加载,这样内存占用很大),位置设置在中间(以后开发游戏就必须这样做,为了不同屏幕适应问题),layer中添加一张大黑色图片,大小应和背景图片一样,锚点设为图片中心,黑色图片运行动画变黑。然后添加UILayer文件,当然锚点也是中心,然后为该UILayer执行弹出动画, 接着添加的就是UILayer中的关闭按钮事件, 关闭按钮时,执行黑色图片变淡和UILayer结束动画,动画结束时,删除该层. 以上方法你就可以创建一个层的模板类,复用非常方便.

二是, 

0 0
原创粉丝点击