Cocos2d 给图层添加背景图片?

Posted

技术标签:

【中文标题】Cocos2d 给图层添加背景图片?【英文标题】:Cocos2d adding a background image to a layer? 【发布时间】:2010-12-29 14:56:21 【问题描述】:

我刚刚阅读了一些 cocos2d 文档,据我了解,要将背景图像添加到图层中,您必须执行以下操作:

Sprite * bg = [Sprite spriteWithFile:@"Background.png"];
[layer addChild:bg z:0];

尽管就我的测试而言,您可以像这样直接将精灵添加到场景中:

@implementation IntroScene
- (id) init 
self = [super init];
if (self != nil) 
    Sprite * bg = [Sprite spriteWithFile:@"Background.png"];
    [bg setPosition:ccp(240, 160)];
    [self addChild:bg z:0];
    [self addChild:[MenuLayer node] z:1];

return self;

这两个选项有什么区别,为图层设置背景的更好方法是什么?任何帮助将不胜感激。

【问题讨论】:

请记住,Sprite 已经成为 CCSprite。是的,请记住 Danyal。 【参考方案1】:

您不需要有图层,但它们很方便。将图层视为对精灵进行分组的一种方式(无论是在视觉上还是在组织上)。您可能希望将背景图像分组为一个图层,并将游戏中的所有敌人作为另一个图层。这使您可以更干净地处理每个集合。例如您可以移除特定层,而不是找到所有敌人并移除它们。

如果有帮助,请在 Photoshop 或图形编辑程序中使用图层。 cocos2d 中的层工作方式类似。

对于简单的场景,将背景添加到图层或场景不会有太大区别。但没过多久,分层的好处就会发挥作用。

【讨论】:

【参考方案2】:

图层也控制绘图顺序(在任何层间 z 顺序之上)。

例如,在geoSpark中,我有一个背景层、一个火花层、一个UI层等(简化)。但这让我可以确保我的 UI 内容始终位于任何游戏内容(火花层)之上,并且所有内容都在背景之上。

如果您的游戏仅使用附加渲染,则绘制顺序无关紧要。 :)

-- 大卫

【讨论】:

【参考方案3】:

场景是一块黑板,层是一个页面……新闻是写在页面上的,但是,如果你愿意,你可以写在板上。如果你想清除所有新的。

【讨论】:

【参考方案4】:

在 cocos2d 中我们可以在任意节点上添加任意节点。但这取决于层次结构。

您可以在场景中添加图层。如果您想要相同的属性或查找您在 CCScene 上添加的所有图层,您可以在 CCScene 中添加这些(如您的第二种情况)。但是如果你想在每一层都有不同的特性,请将它们添加到 CCLayer。

CCLayer 用于为某些目的对一组节点/精灵进行分组。例如,您可以添加一个包含暂停游戏后选项的图层,或者添加用于始终在屏幕上显示 som kind 的 HUD 图层以及一些滚动层(类似于某些滚动平台游戏)。

最后,您甚至可以在 CCScene 上使用 CCNode,在另一层上使用一层,甚至在 CCSprite 上使用 CCNode。 但是cocos2d中图形上下文的绘制顺序不同。

希望你有所作为。

祝你好运!

【讨论】:

以上是关于Cocos2d 给图层添加背景图片?的主要内容,如果未能解决你的问题,请参考以下文章

怎么用CSS做图层的投影效果?

arcgis中怎么样给图层设定坐标系

arcengine 怎么给图层的一个字段 重新赋值

Cocos2D 图层中的自定义滚动

如何在ARCGIS中给图框4个角添加经纬度,例如下面的图片。

如何在 cocos2d 中为图层添加滚动?