日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2 TileMapObject的使用

發布時間:2024/9/27 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2 TileMapObject的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 CCTMXObjectGroup的使用方法

為了取以下內容:


操作代碼如下:

T27TileMapObject.h

#ifndef __T27TileMapObject_H__

#define __T27TileMapObject_H__

?

#include "cocos2d.h"

#include "cocos-ext.h"

#include "TBack.h"

USING_NS_CC;

USING_NS_CC_EXT;

?

//格子地圖對象層

class T27TileMapObject :public TBack

{

public:

??? CREATE_FUNC(T27TileMapObject);

??? bool init();

??? static CCScene* scene();

};

?

#endif

?

?

T27TileMapObject.cpp

#include "T27TileMapObject.h"

?

CCScene* T27TileMapObject::scene()

{

??? CCScene* scene = CCScene::create();

??? T27TileMapObject * layer = T27TileMapObject::create();

??? scene->addChild(layer);

??? return scene;

}

?

bool T27TileMapObject::init()

{

??? TBack::init();

?

??? CCTMXTiledMap * map = CCTMXTiledMap::create("MarioMap1.tmx");

??? addChild(map);

???

??? //這里的objects是MarioMap1.tmx中的一個key

??? CCTMXObjectGroup* objGroup = map->objectGroupNamed("objects");

??? CCArray* objs = objGroup->getObjects();

??? CCObject* obj;

?

??? CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("Mushroom0.png");

??? CCSpriteFrame* frame = CCSpriteFrame::createWithTexture(

??????? texture, CCRectMake(0,0,texture->getContentSize().width / 4,texture->getContentSize().height));

??? CCARRAY_FOREACH(objs, obj)

??? {

??????? //通過下面的方式獲得object中的參數信息

??????? CCDictionary* dict = (CCDictionary*)obj;

??????? const CCString* name = dict->valueForKey("name");

??????? const CCString* type = dict->valueForKey("type");

??????? const CCString* x = dict->valueForKey("x");

??????? const CCString* y = dict->valueForKey("y");

??????? if (type->m_sString == "mushroom")

??????? {

??????????? //創建一個蘑菇怪Mushroom0.png

??????????? CCSprite* sprite = CCSprite::createWithSpriteFrame(frame);

??????????? map->addChild(sprite);

??????????? sprite->setPosition(ccp(x->intValue(),y->intValue()));

??????????? sprite->setZOrder(10000);

??????? }

??????? //如果object對象的名字是Birthday,那么將執行以下的操作

??????? if (type->m_sString == "BirthPoint")

??????? {

??????????? CCSprite* sprite = CCSprite::createWithSpriteFrame(frame);

??????????? map->addChild(sprite);

??????????? sprite->setPosition(ccp(x->intValue(),y->intValue() - 16));

??????????? //如果不設置這一句,馬里奧會在山后

??????????? sprite->setZOrder(10000);

??????????? //設置錨點

??????????? sprite->setAnchorPoint(ccp(0,0));

??????? }

??? }

??? return true;

}

?

運行結果:


?

?

?

?

?

總結

以上是生活随笔為你收集整理的2 TileMapObject的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。