`
zhangziyangup
  • 浏览: 1186628 次
文章分类
社区版块
存档分类
最新评论

cocos2d学习笔记(六)CCParallaxNode和Tile Map

 
阅读更多

如果你的游戏需要更大的场景,你就一定会用到CCParallaxNode或是tile map


我们知道,当我们移动时,我们会看到离我们越近的物体,会移动的越快,越远的物体,比如远处的山会移动的很慢,而最远处的物体,比如太阳几乎不动,这个现象叫视差,而在游戏中模仿视差,可以让玩家感觉到游戏中的角色的确是在移动。CCParallaxNode可以很容易的建立一个视差层,你可以控制每一层的视差率、位置和层级的高低。

parallaxNode = [CCParallaxNode node]; [parallaxNode
setPosition:ccp(levelSize.width/2.0f,screenSize.height/2.0f)]; float xOffset = 0;
// Ground moves at ratio 1,1
[parallaxNode addChild:BGLayer1 z:40 parallaxRatio:ccp(1.0f,1.0f) positionOffset:ccp(0.0f,0.0f)];
xOffset = (levelSize.width/2) * 0.3f; [parallaxNode addChild:BGLayer2 z:20 parallaxRatio:ccp(0.2f,1.0f)
positionOffset:ccp(xOffset, 0)];
xOffset = (levelSize.width/2) * 0.8f; [parallaxNode addChild:BGLayer3 z:30 parallaxRatio:ccp(0.7f,1.0f)
positionOffset:ccp(xOffset, 0)]; [self addChild:parallaxNode z:10];

我们可以看到z轴为40的视察率最大,20的最小,也就是说,最远的那一层在移动时只有当前层x轴移动速度的0.2倍,y轴速率之所以为1是因为这段代码只是在x轴上进行视差表现。


对了,有个小tip

id followAction = [CCFollow actionWithTarget:playerCharacter];
[layer runAction:followAction];

CCFollow可以让你的层镜头跟随target,不过这个镜头跟随会包括x轴和y轴


接下来说说tile map,软件下载地址:http://www.mapeditor.org,软件用法就不说了,比较简单,最后会生成.tmx文件,其实这个文件就是一个xml文件

创建对象方法

CCTMXTiledMap*tiledMapWithTMXFile:@"Level2TileMapiPhone.tmx"];

tile map的好处就是无论你的地图多大,内存占用只是每个不同tile的总和,所以使用tile map是非常省内存的一种做法,rpg游戏的地图一般都是用tile map

CCTMXLayer *groundLayer = [tileMapNode 
                                    layerNamed:@"RockBoulderLayer"];
    
    // 2
    parallaxNode = [CCParallaxNode node];
    [parallaxNode setPosition:
     ccp(levelSize.width/2,screenSize.height/2)];
    float xOffset = 0.0f;
    
    // 3
    xOffset = (levelSize.width/2);
    [groundLayer retain];
    [groundLayer removeFromParentAndCleanup:NO];
    [groundLayer setAnchorPoint:CGPointMake(0.5f, 0.5f)];
    [parallaxNode addChild:groundLayer z:30 parallaxRatio:ccp(1,1) 
            positionOffset:ccp(0,0)];
    [groundLayer release];

如上代码,如果tile map中有多个层,把这些层加入其他对象中时一定要先retain,然后从tileMapNode中remove,然后在进行加入操作,之后别忘了release一下,这样让他当前的持有者把控他的生命周期


ok,就是这些,下个博客开始写物理引擎box2d!






分享到:
评论

相关推荐

    素材_tilemap素材_使用TileMap快速构造2D关卡_

    在Unity、Cocos2d-x等引擎中,都有内置的TileMap编辑器,支持直观地绘制和编辑关卡。 3. 创建TileMap: - 准备瓷砖图像:首先,你需要设计一组或多组瓷砖图像,每组包含不同的地形、装饰或其他元素。 - 创建...

    【cocos2d-html5】 如何使用cocos2d-html5 制作基于tile地图的游戏教程:第一部分

    Cocos2d-HTML5支持Tiled Map Editor(TMX)格式,这是一种XML文件格式,用于存储TileMap的信息,包括tiles、图层、对象和属性。TMX文件包含了地图的布局、层、tiles以及它们的属性,使得地图编辑变得直观且易于管理...

    Cocos2d-x Tilemap Classes

    在这个主题中,我们专注于"Cocos2d-x Tilemap Classes",这是一组工具,让开发者能够轻松地在游戏环境中构建和管理瓷砖地图(Tile Maps)。瓷砖地图是一种高效且灵活的方法,用于创建复杂的2D场景,如游戏关卡,它们...

    Cocos2d-x学习笔记

    在学习Cocos2d-x的过程中,新手首先需要了解其基本概念和安装配置过程。下面将详细介绍如何通过Cocos2d-x的官方文档进行入门学习,以及一些基础的开发步骤。 首先,进入Cocos2d-x的官方网站,下载最新的开发包。...

    cocos2d 学习笔记

    本学习笔记将深入探讨cocos2d的核心概念、关键组件以及实际应用技巧。 一、cocos2d基本概念 1. Scene(场景):cocos2d中的基本构造单元,代表游戏或应用的一个完整状态,例如主菜单、游戏关卡等。 2. Layer(层)...

    cocos2d-x学习笔记

    《cocos2d-x学习笔记》 在学习cocos2d-x时,了解其核心组件和工作流程至关重要。AppDelegate是cocos2d-x框架中的一个关键类,它扮演着应用程序入口点的角色,处理应用程序的生命周期事件。让我们深入探讨...

    cocos2d学习资源汇总

    cocos2d-x学习资源汇总 cocos2d-x是一款功能强大且广泛...cocos2d-x是一个功能强大且广泛应用于游戏开发的游戏引擎,通过学习和实践,开发者可以快速掌握cocos2d-x的使用和开发技能,从而快速开发出高质量的游戏产品。

    【吼吼睡cocos2d学习笔记】第七章 - 4个很酷的类 代码

    通过阅读提供的"吼吼睡cocos2d学习笔记"第七章,你将能够深入理解这些类的工作原理,学习如何在实际项目中应用它们。同时,提供的CH07.xcodeproj文件可能是包含示例代码的工程,可以帮助你直接在Xcode环境中运行和...

    cocos2d的学习资料

    Cocos2d是一款广泛应用于游戏开发、图形界面和2D应用程序的开源框架,它支持多种编程语言,包括Python(cocos2d),Objective-C(cocos2d-objc)以及C++(cocos2d-x)。这篇学习资料是针对cocos2d/x,特别是cocos2d-...

    Cocos2D-X开发学习笔记-渲染框架之布景层类的使用示例

    本篇学习笔记主要聚焦于Cocos2D-X的渲染框架,特别是布景层类的使用,这对于构建游戏场景至关重要。 首先,我们要理解Cocos2d-x中的“布景层”(CCLayer)。在Cocos2D-X中,布景层是场景(CCScene)的一个子类,...

    cocos2d-x游戏开发详细教程, 附带超详细cocos2d学习路径图

    cocos2d是一个基于MIT协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。可以让你在创建自己的多平台游戏时节省很多的时间。 Cocos2D也拥有几个主要版本,包括Cocos2D-iPhone、Cocos2D-X,以及被社区...

    Cocos2d-x实战:JS卷——Cocos2d-JS开发

    资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...

    Cocos2D-X2.2.3学习笔记3(内存管理)

    在Cocos2D-X2.2.3的学习过程中,内存管理是至关重要的一个环节,它直接影响到游戏的性能和稳定性。Cocos2D-X是一个跨平台的2D游戏开发框架,使用C++作为主要编程语言,并支持Lua和JavaScript。本笔记将深入探讨Cocos...

    Cocos2d-x学习笔记——完全掌握C++ API与游戏项目开发.zip

    本学习笔记旨在帮助开发者全面掌握Cocos2d-x的C++ API以及游戏项目的开发流程。 一、Cocos2d-x框架基础 Cocos2d-x是Cocos2d-x系列的C++版本,它提供了丰富的图形绘制、动画制作、音频播放、物理引擎等功能。Cocos2d...

    cocos2d-x源码素材

    总之,通过学习和实践这个【cocos2d-x源码素材】,开发者不仅可以掌握cocos2d-x的基本用法,还能深入了解碰撞检测、瓦片地图和动画制作等游戏开发关键技术。对于想要进入游戏开发领域的初学者来说,这是一个非常宝贵...

    cocos2d-x-cocos2d-x-2.2.2.zip

    总的来说,cocos2d-x 2.2.2是一个功能完备、易于学习和使用的2D游戏开发框架。通过深入理解并掌握这个版本,开发者可以创建出运行在多种平台上的高质量游戏,享受到cocos2d-x带来的强大开发体验。无论是初学者还是...

    cocos2d学习教程

    教程的文件列表包括了六个部分,从基础到高级,逐步展开cocos2d的学习路径。每一份PDF可能对应一个主题或一组相关概念,如Cocco2D-iPhone01.pdf可能介绍基础概念,Cocco2D-iPhone05.pdf可能涉及更高级的主题如物理...

    Cocos2d-x实战 JS卷 Cocos2d-JS开发

    《Cocos2d-x实战 JS卷 Cocos2d-JS开发》是一本深入探讨Cocos2d-...总之,这本书是JavaScript开发者进入Cocos2d-x世界的一把钥匙,通过深入学习,开发者可以利用Cocos2d-JS的强大功能,创造出富有创意和吸引力的2D游戏。

    cocos2d-x json字符串与cocos2d::Value转换工具

    该资源主要用于cocos2d-x中Value与json字符串的相互转换,提供从json文件...json字符串转换成cocos::Value后就可以很方便的使用了,其本质就是json字符串的数组对应cocos2d::ValueVector,对象对应cocos2d::ValueMap.

    cocos2d-x学习笔记\cocos2d-x学习笔记(17)--简单游戏实例1--双枪手

    《cocos2d-x学习笔记(17)--简单游戏实例1--双枪手》 cocos2d-x是一款跨平台的2D游戏开发框架,基于C++,支持iOS、Android、Windows等多个操作系统。本笔记主要讲解如何使用cocos2d-x创建一个简单的双枪手游戏实例,...

Global site tag (gtag.js) - Google Analytics