【iphone游戏开发】Iphone游戏开发之五:游戏场景切换,点阵字的实现和Hiero工具的利用
Posted on 2011-11-14 14:48 Andy--清风 阅读(2166) 评论(1) 编辑 收藏 举报一、游戏场景切换
在iPhone游戏开发中,游戏之间的场景开发中有很多动画可以实现,具体实现的动画如下:
CCTransitionRotoZoom//从大到小画面缩小并跳动进入
CCTransitionJumpZoom//立体从左边缩小跳动进入
CCTransitionMoveInL//从左边移动进入右边
CCTransitionMoveInR//从右边移动进入左边
CCTransitionMoveInT//从上边移动到入下边
CCTransitionMoveInB//从下边移动到入上边
CCTransitionSlideInL//从左边移动入右边
CCTransitionSlideInR//从右边移动入左边
CCTransitionSlideInT//从上边移动入下边
CCTransitionSlideInB//从下边移动入上边
CCTransitionShrinkGrow//从大到小在中间缩小进入
CCTransitionFlipX//从X轴方向立体翻转
CCTransitionFlipY//从Y轴方向立体翻转
CCTransitionFlipAngular//从右边头翻转进入
CCTransitionZoomFlipX//从X轴方向立体跳动翻转
CCTransitionZoomFlipY//从Y轴方向立体跳动翻转
CCTransitionZoomFlipAngular//从右边立体缩小翻转进入
CCTransitionFade//从中间渐变进入
CCTransitionCrossFade//从外围渐变进入
CCTransitionTurnOffTiles//从格子覆盖上层进入
CCTransitionSplitCols//竖直分三个方块切入
CCTransitionSplitRows//横向分三个方块切入
CCTransitionFadeTR//从左下角向右上角格子渐变进入
CCTransitionFadeBL//从右上角角向左下角格子渐变进入
CCTransitionFadeUp//从下向上渐变进入
CCTransitionFadeDown//从上向下渐变进入
上面的每个动画都作了解释,当调用的时候要写入如下代码:
CCScene *sc = [CCScene node]; [sc addChild:[HelloWorld scene]]; [[CCDirector sharedDirector] replaceScene:[CCTransitionZoomFlipX transitionWithDuration:ttime scene:sc]]; |
画面中提供了二十六种场景切换的动作,我将贴上demo给大家分享。
二、点阵字的实现
在iPhone开发中,我们要实现不同类型的字体,不同变相的字体,我们除了用Photoshop画好图片加载进入之外还可以做点贴字来实现。
(1)点阵字介绍
点阵字能使用OpenGL ES将文本渲染到屏幕上。在点阵字中每个字符由一张图像表示,我们可以通过Hiero生成的点阵字精灵表来实现。Hiero的下载地址为:(http://n4te.com/hiero/hiero.jnlp),我们在windows平台还能利用BMFont(http://www.anglecode.com/products/bmfont) 从TrueType生成点阵字。它提供的功能比Hiero多。
(2)Hiero介绍
Hiero主界面
从左边的Font里面选择system里面的字体,或者可以加载文件里面的字体,并设置字体的大小或者黑体,斜体等,然后选择在右边的Effects,选择你喜欢的,然后在Rendering设置要用的宽度和高度,之后我们可以选择Reset Cache,设置后的如下:
然后我们点击File的save bmfont files,如下图:
这样我们就可以得到BMFont的文件了,一个png的精灵表使用的图片和一个fnt的控制文件。
(3)如何使用CCLabelBMFont解析并显示
在初始化里面写入如下代码:
CCLabelTTF *label = [CCLabelTTF labelWithString: @"I'm Andy From CCLabelTTF class" fontName: @"Marker Felt" fontSize:33]; CCLabelBMFont *label1 = [CCLabelBMFont labelWithString: @"I'm Andy" fntFile: @"Andy.fnt" ]; CCLabelBMFont *label2 = [CCLabelBMFont labelWithString: @"I'm Andy2" fntFile: @"Andy2.fnt" ]; // ask director the the window size CGSize size = [[CCDirector sharedDirector] winSize]; // position the label on the center of the screen label1.position = ccp( size.width /2 , size.height/2 +60); label.position = ccp( size.width /2 , size.height/2 ); label2.position = ccp( size.width /2 , size.height/2 -60); // add the label as a child to this Layer [self addChild: label1]; [self addChild: label]; [self addChild: label2]; |
这样我们就可以得到我们像上图那样模拟器的显示结果了,这节课讲了场景切换和点阵字,主要是场景的动画实现和如何制作我们想要的点阵字。好了,这节就讲到这里啦,欢迎大家支持哈。
附上源代码:
https://files.cnblogs.com/huangdongcheng/SceneTransition.zip
https://files.cnblogs.com/huangdongcheng/HelloCocos.zip
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库