Cocos2D iOS之旅:如何写一个敲地鼠游戏(五):设置背景

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)


免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!

设置背景

接下来,打开HelloWorldScene.m文件,然后找到你的init方法.删除创建HelloWorld标签的4行,用以下代码替换:

// Determine names of sprite sheets and plists to load
NSString *bgSheet = @"background.pvr.ccz";
NSString *bgPlist = @"background.plist";
NSString *fgSheet = @"foreground.pvr.ccz";
NSString *fgPlist = @"foreground.plist";
NSString *sSheet = @"sprites.pvr.ccz";
NSString *sPlist = @"sprites.plist";
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    bgSheet = @"background-hd.pvr.ccz";
    bgPlist = @"background-hd.plist";
    fgSheet = @"foreground-hd.pvr.ccz";
    fgPlist = @"foreground-hd.plist";
    sSheet = @"sprites-hd.pvr.ccz";
    sPlist = @"sprites-hd.plist";
}

// Load background and foreground
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:bgPlist];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:fgPlist];

// Add background
CGSize winSize = [CCDirector sharedDirector].winSize;
CCSprite *dirt = [CCSprite spriteWithSpriteFrameName:@"bg_dirt.png"];
dirt.scale = 2.0;
dirt.position = ccp(winSize.width/2, winSize.height/2);
[self addChild:dirt z:-2]; 

// Add foreground
CCSprite *lower = [CCSprite spriteWithSpriteFrameName:@"grass_lower.png"];
lower.anchorPoint = ccp(0.5, 1);
lower.position = ccp(winSize.width/2, winSize.height/2);
[self addChild:lower z:1];

CCSprite *upper = [CCSprite spriteWithSpriteFrameName:@"grass_upper.png"];
upper.anchorPoint = ccp(0.5, 0);
upper.position = ccp(winSize.width/2, winSize.height/2);
[self addChild:upper z:-1];

// Add more here later...

让我们一段一段的看一下,因为这里有好多新的东东:

  • 确定加载精灵表和plists的名称.该段列出了要被加载的精灵表和被TexturePacker创建plists文件的名称.注意在iphoen里,Cocos2D将在高清显示开启时自动根据设备的屏幕选择合适版本的图片.但是在ipad中除非你告诉它,否则它不会加载”-hd”版本的图片.所以我们检查是否为ipad,如果是则使用高清图片.
  • 加载背景和前景.下一步是把你将使用的背景和前景相关的每一个精灵加载到精灵帧缓冲中去.注意这些精灵并不会实际被加载到CCSpriteBachNode的任何地方 — 因为这些图片只会被使用一次.
  • 添加背景.背景图片被加载到该层上,成为其子节点(z序为-2使其可以出现在所有东东的下方).将图片放大2倍因为我们故意让其更小便于居中和节省空间.
  • 添加前景.前景有2个部分,为了容易的放置图片,它将上半部分图片的锚点设置为居中/底部,下半部设置为居中/顶部,并且使锚点居中于屏幕.这可以让你不用任何复杂的数学就可以在任何设备上正确的显示.注意一部分的背景将在iphone上超出屏幕显示,但对于该背景来说没有问题,甚至都不会注意到.同样注意这2部分的图片的z序不一样,so低z序的图片出现在上面.

编译运行代码,你应该看到如下画面!在iphone和ipad模拟器上都试一下,确保所有设备都显示正确.

如果你在高清屏上运行并且放大,你将注意到仍然使用的是普通的图片:

这是因为我们并没有在之前”高清屏和Cocos2D”章节里做其中的第一步:调用CCDirector的enableRetinaDisplay方法去开启高清支持.

在开启高清支持之后再编译运行你的代码,现在你会发现在高清屏设备上使用的是HD图片了.

时间: 2024-08-04 03:12:43

Cocos2D iOS之旅:如何写一个敲地鼠游戏(五):设置背景的相关文章

Cocos2D iOS之旅:如何写一个敲地鼠游戏(七):弹出地鼠

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 弹出地鼠 现在我们已经确认地鼠被放置在正确的位置上了,让我们添加它们弹出洞的代码吧. 首先,将原来999的z序改回0,使地鼠呆在地底下. 然后添加如下代码到init方法的底部

Cocos2D iOS之旅:如何写一个敲地鼠游戏(十一):完善游戏逻辑

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 好了,现在我们用userData标志来确定是否可以点击精灵,我们可以最后添加如下敲击反馈代码了: -(void) registerWithTouchDispatcher {

Cocos2D iOS之旅:如何写一个敲地鼠游戏(二):Cocos2D中的高清支持

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 高清显示和Cocos2D 好吧,有一个好消息 - 在最新版本的Cocos2D中包括了高清屏的完整支持,你可以用下面1-2-3步就可简单搞定! 在调用CCDirector的en

Cocos2D iOS之旅:如何写一个敲地鼠游戏(八):为动画建立属性列表

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 在之前的博文中,我们创建了游戏的基础 - 小可爱的地鼠从洞中呼之欲出.我们花了大量的时间思考关于如何组织素材以及坐标置位,以让我们的游戏在iphone,ipad以及高清屏上看

Cocos2D iOS之旅:如何写一个敲地鼠游戏(一):高清屏显示和UIKit

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 原文由Ray Wunderlich写成,地址在: http://www.raywenderlich.com/2560/cocos2d-tutorial-for-ios-how

Cocos2D iOS之旅:如何写一个敲地鼠游戏(四):创建TexturePacker自动脚本

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 开始吧 打开Xcode,选择新建项目,选择cocos2D模板.命名新项目为WhackAMole,点击保存. 接下来将你下载的Art文件夹拷贝到WhackAMole项目的目录中

Cocos2D iOS之旅:如何写一个敲地鼠游戏(十):创建游戏逻辑

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 增加游戏逻辑 现在我们准备添加游戏逻辑进来.想法是地鼠会钻出一定次数,你每敲击一次会得到一定分数.你尽可能试图多得分. 我们需要保持跟踪分数,然后把它显示给玩家.并且当地鼠结

Cocos2D iOS之旅:如何写一个敲地鼠游戏(三):素材最终解决方法

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! OK,基于以上讨论,这里是本次Cocos2D之旅中的素材准备工作: 素材将被设计在960x640大小的"可玩区域"中,在高清iphone中全屏显示,而在ipad中居

Cocos2D iOS之旅:如何写一个敲地鼠游戏(九):创建动画

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 理解上述代码非常重要,让我们一行一行的看一下: 属性列表包含在项目文件中,所以在app的"main bundle"里.这里是一个帮助方法取得属性文件在main bu