cocos2d學習筆記(六)CCParallaxNode和Tile Map

來源:互聯網
上載者:User

如果你的遊戲需要更大的情境,你就一定會用到CCParallaxNode或是tile map

我們知道,當我們移動時,我們會看到離我們越近的物體,會移動的越快,越遠的物體,比如遠處的山會移動的很慢,而最遠處的物體,比如太陽幾乎不動,這個現象叫視差,而在遊戲中模仿視差,可以讓玩家感覺到遊戲中的角色的確是在移動。CCParallaxNode可以很容易的建立一個視差層,你可以控制每一層的視差率、位置和層級的高低。

parallaxNode = [CCParallaxNode node]; [parallaxNodesetPosition: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!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.