#include "HelloWorldScene.h"
using namespace cocos2d;
CCScene* HelloWorld::scene()
{
CCScene * scene = NULL;
do
{
// 'scene' is an autorelease object
scene = CCScene::create();
CC_BREAK_IF(! scene);
// 'layer' is an autorelease object
HelloWorld *layer = HelloWorld::create();
CC_BREAK_IF(! layer);
// add layer as a child to scene
scene->addChild(layer);
} while (0);
// return the scene
return scene;
}
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0,false);
count=0;
bool bRet = false;
do
{
CC_BREAK_IF(! CCLayer::init());
_tileMap=CCTMXTiledMap::create("map.tmx");
_tileMap->setPosition(mapPoint);
addChild(_tileMap);
wall=_tileMap->layerNamed("wall");
foreground=_tileMap->layerNamed("foreground");
CCTMXObjectGroup *objects=_tileMap->objectGroupNamed("hero");//获取对象层
CCDictionary *spawnPoint=objects->objectNamed("pa");//获取对象
heroPoint.x=spawnPoint->valueForKey("x")->floatValue();//获取对象的坐标
heroPoint.y=spawnPoint->valueForKey("y")->floatValue();
CCLog("x=%f,y=%f",heroPoint.x,heroPoint.y);
_player=CCSprite::create("www.png");
_player->setAnchorPoint(CCPoint(0,0));
_player->setPosition(heroPoint);
_tileMap->addChild(_player,0);
label=CCLabelTTF::create("0","微软雅黑",20);
label->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width-label->getContentSize().width/2,label->getContentSize().height/2));
addChild(label,1);
bRet = true;
} while (0);
return bRet;
}
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
// "close" menu item clicked
CCDirector::sharedDirector()->end();
}
bool HelloWorld::ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
beginPoint=pTouch->getLocation();
return 1;
}
void HelloWorld::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
cocos2d::CCPoint pp=pTouch->getLocation();
if(beginPoint.x==pp.x&&beginPoint.y==pp.y)
{
cocos2d::CCPoint pt=_player->getPosition();
if(fabs(pt.x-(pp.x-mapPoint.x))>=fabs(pt.y-(pp.y-mapPoint.y)))
{
if(pt.x>=pp.x-mapPoint.x)
{
if(9-_player->getPosition().y/32<10&&9-_player->getPosition().y/32>=0&&
_player->getPosition().x/32-1<50&&_player->getPosition().x/32-1>=0&&
!(wall->tileGIDAt(ccp(_player->getPosition().x/32-1,9-_player->getPosition().y/32))))
{
_player->setPosition(ccp(_player->getPosition().x-32,_player->getPosition().y));
if(foreground->tileGIDAt(ccp(_player->getPosition().x/32,9-_player->getPosition().y/32)))
{
foreground->removeTileAt(ccp(_player->getPosition().x/32,9-_player->getPosition().y/32));
count++;
CCString *temp=CCString::stringWithFormat("%d",count);
label->setString(temp->getCString());
}
}
}
else
{
if(9-_player->getPosition().y/32<10&&9-_player->getPosition().y/32>=0&&_player->getPosition().x/32+1<50&&_player->getPosition().x/32+1>=0&&!(wall->tileGIDAt(ccp(_player->getPosition().x/32+1,9-_player->getPosition().y/32))))
{
_player->setPosition(ccp(_player->getPosition().x+32,_player->getPosition().y));
if(foreground->tileGIDAt(ccp(_player->getPosition().x/32,9-_player->getPosition().y/32)))
{
foreground->removeTileAt(ccp(_player->getPosition().x/32,9-_player->getPosition().y/32));
count++;
CCString *temp=CCString::stringWithFormat("%d",count);
label->setString(temp->getCString());
}
}
}
}
else
{
if(pt.y>=pp.y-mapPoint.y)
{
if(9-_player->getPosition().y/32+1<10&&9-_player->getPosition().y/32+1>=0&&_player->getPosition().x/32<50&&_player->getPosition().x/32>=0&&!(wall->tileGIDAt(ccp(_player->getPosition().x/32,9-_player->getPosition().y/32+1))))
{
_player->setPosition(ccp(_player->getPosition().x,_player->getPosition().y-32));
if(foreground->tileGIDAt(ccp(_player->getPosition().x/32,9-_player->getPosition().y/32)))
{
foreground->removeTileAt(ccp(_player->getPosition().x/32,9-_player->getPosition().y/32));
count++;
CCString *temp=CCString::stringWithFormat("%d",count);
label->setString(temp->getCString());
}
}
}
else
{
if(9-_player->getPosition().y/32-1<10&&9-_player->getPosition().y/32-1>=0&&_player->getPosition().x/32<50&&_player->getPosition().x/32>=0&&!(wall->tileGIDAt(ccp(_player->getPosition().x/32,9-_player->getPosition().y/32-1))))
{
_player->setPosition(ccp(_player->getPosition().x,_player->getPosition().y+32));
if(foreground->tileGIDAt(ccp(_player->getPosition().x/32,9-_player->getPosition().y/32)))
{
foreground->removeTileAt(ccp(_player->getPosition().x/32,9-_player->getPosition().y/32));
count++;
CCString *temp=CCString::stringWithFormat("%d",count);
label->setString(temp->getCString());
}
}
}
}
}
}
void HelloWorld::ccTouchMoved(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
CCPoint pp=pTouch->getPreviousLocation();//获取之前的点
CCPoint np=pTouch->getLocation();//获取现在的点
CCPoint dp=ccpSub(np,pp);//获取差
if(_tileMap->getPosition().x+dp.x>-480&&_tileMap->getPosition().x+dp.x<0)
{
mapPoint=ccp(_tileMap->getPosition().x+dp.x,0);
_tileMap->setPosition(mapPoint);//移动地图
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
【Cocos2d-x游戏引擎开发笔记(13)】Tiled Map Editor(二)
共81个文件
tlog:50个
png:6个
h:4个
5星 · 超过95%的资源 需积分: 10 387 下载量 80 浏览量
2012-12-18
22:28:06
上传
评论 2
收藏 781KB ZIP 举报
温馨提示
Cocos2d-x【Cocos2d-x游戏引擎开发笔记(13)】Tiled Map Editor(二)
资源推荐
资源详情
资源评论
收起资源包目录
AAATiledMapTest.zip (81个子文件)
AAATiledMapTest
proj.win32
resource.h 510B
AAATiledMapTest.win32.vcxproj.filters 2KB
res
AAATiledMapTest.ico 47KB
AAATiledMapTest.rc 2KB
main.cpp 863B
AAATiledMapTest.win32.vcxproj 8KB
AAATiledMapTest.win32.vcxproj.user 763B
Debug.win32
link.7188.read.1.tlog 2B
cl.command.1.tlog 6KB
link.7676-cvtres.write.1.tlog 2B
AAATiledMapTest.res 47KB
link.5784.write.1.tlog 2B
link.4832.read.1.tlog 2B
link.4832-cvtres.read.1.tlog 2B
rc.command.1.tlog 2KB
link.7984-cvtres.read.1.tlog 2B
link.7676.read.1.tlog 2B
CL.read.1.tlog 118KB
AAATiledMapTest.win32_manifest.rc 244B
link.4296.read.1.tlog 2B
vc100.idb 1.32MB
mt.read.1.tlog 550B
AAATiledMapTest.win32.lastbuildstate 79B
AAATiledMapTest.win32.exe.embed.manifest 406B
link.7828.read.1.tlog 2B
link-cvtres.read.1.tlog 2B
link.read.1.tlog 5KB
AAATiledMapTest.win32.exe.intermediate.manifest 381B
link.5608.read.1.tlog 2B
link.5784.read.1.tlog 2B
AAATiledMapTest.win32.log 5KB
rc.read.1.tlog 3KB
link.write.1.tlog 2KB
CL.write.1.tlog 3KB
vc100.pdb 644KB
link.7676-cvtres.read.1.tlog 2B
link.5608.write.1.tlog 2B
link.7984-cvtres.write.1.tlog 2B
main.obj 70KB
link.4296-cvtres.read.1.tlog 2B
link.command.1.tlog 3KB
link.2188.write.1.tlog 2B
mt.write.1.tlog 550B
link.4832-cvtres.write.1.tlog 2B
link.7188-cvtres.read.1.tlog 2B
link.7676.write.1.tlog 2B
link.2188-cvtres.read.1.tlog 2B
link.5784-cvtres.write.1.tlog 2B
link.5608-cvtres.write.1.tlog 2B
link.7828-cvtres.write.1.tlog 2B
link.5784-cvtres.read.1.tlog 2B
link.4296-cvtres.write.1.tlog 2B
link.5608-cvtres.read.1.tlog 2B
HelloWorldScene.obj 191KB
link.7984.read.1.tlog 2B
AAATiledMapTest.win32.exe.embed.manifest.res 472B
link.7828-cvtres.read.1.tlog 2B
link.7984.write.1.tlog 2B
link.4296.write.1.tlog 2B
mt.command.1.tlog 580B
link.7188.write.1.tlog 2B
rc.write.1.tlog 954B
AppDelegate.obj 91KB
link-cvtres.write.1.tlog 2B
link.7828.write.1.tlog 2B
link.2188.read.1.tlog 2B
link.4832.write.1.tlog 2B
link.2188-cvtres.write.1.tlog 2B
link.7188-cvtres.write.1.tlog 2B
main.h 270B
Classes
AppDelegate.cpp 1KB
HelloWorldScene.h 1KB
HelloWorldScene.cpp 5KB
AppDelegate.h 960B
Resources
water.png 5KB
HelloWorld.png 142KB
www.png 4KB
tmw_desert_spacing.png 37KB
map.tmx 1KB
CloseNormal.png 6KB
CloseSelected.png 5KB
共 81 条
- 1
临江仙
- 粉丝: 992
- 资源: 37
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
前往页