博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cocos2d tiledmap
阅读量:5208 次
发布时间:2019-06-14

本文共 2229 字,大约阅读时间需要 7 分钟。

#include "HelloWorldScene.h"USING_NS_CC;CCScene* HelloWorld::scene(){    CCScene *scene = CCScene::create();    HelloWorld *layer = HelloWorld::create();    scene->addChild(layer);    return scene;}bool HelloWorld::init(){    if ( !CCLayer::init() )    {        return false;    }        CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();    CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();        //添加地图    map=CCTMXTiledMap::create("map.tmx");    addChild(map);    //获取英雄的对象层    CCTMXObjectGroup *objGroup=map->objectGroupNamed("objHero");    CCDictionary *hero=objGroup->objectNamed("hero");    float x=hero->valueForKey("x")->floatValue();    float y=hero->valueForKey("y")->floatValue();    sp=CCSprite::create("1.png");    sp->setAnchorPoint(CCPointZero);//瓦片地图默认放在左下角。所以需要设置一下。    sp->setPosition(ccp(x,y));    addChild(sp);    //打开触屏开关    this->setTouchEnabled(true);        return true;}CCPoint HelloWorld::tileCoordForPosition(CCPoint position){    int x = position.x /map->getTileSize().width;    int y = ((map->getMapSize().height * map->getTileSize().height) - position.y) / map->getTileSize().height;    return ccp(x, y);}void HelloWorld::ccTouchesBegan(CCSet *pTouches,CCEvent *pEvent){    CCTouch* touch=(CCTouch*)(pTouches->anyObject());    CCPoint pos=touch->getLocation();    CCActionInstant *func=CCCallFunc::create(this,callfunc_selector(HelloWorld::judgeCollide));    sp->runAction(CCSequence::create(CCMoveTo::create(1,pos),func,NULL));}void HelloWorld::judgeCollide(){    CCTMXLayer *collisionLayer=map->layerNamed("collisionLayer");    CCPoint tiledPos=tileCoordForPosition(sp->getPosition());    if(collisionLayer->tileGIDAt(tiledPos))    {        CCLOG("%d",collisionLayer->tileGIDAt(tiledPos));        collisionLayer->removeTileAt(tiledPos);    }}void HelloWorld::menuCloseCallback(CCObject* pSender){#if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) || (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)    CCMessageBox("You pressed the close button. Windows Store Apps do not implement a close button.","Alert");#else    CCDirector::sharedDirector()->end();#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)    exit(0);#endif#endif}

 

转载于:https://www.cnblogs.com/yufenghou/p/3736073.html

你可能感兴趣的文章
Python命名规范
查看>>
50款漂亮的国外婚礼邀请函设计(上篇)
查看>>
MD5加密简单算法
查看>>
安装Qcreator2.5 + Qt4.8.2 + MinGW_gcc_4.4 (win7环境)
查看>>
代码检查
查看>>
滚动条
查看>>
程序员的自我修养九Windows下的动态链接
查看>>
记一次修改数据库引擎的方法
查看>>
开发工具 idea 激活方法
查看>>
BZOJ 4052: [Cerc2013]Magical GCD
查看>>
libevent和libcurl的一些学习
查看>>
iOS的横屏(Landscape)与竖屏(Portrait)InterfaceOrientation
查看>>
JS中 window的用法
查看>>
Codeforces Round #361 (Div. 2)
查看>>
oauth2学习
查看>>
Python time & datetime & string 相互转换
查看>>
细说WebSocket - Node篇
查看>>
【pwnable.kr】 flag
查看>>
1014 装箱问题——http://codevs.cn/problem/1014/
查看>>
poj 3177 边双联通 **
查看>>