Cocos2d-x 3.2 大富翁游戏项目开发-第七部分 获取角色路径_2
来源:未知 责任编辑:责任编辑 发表时间:2015-09-09 15:29 点击:次
在编写获取路径方法前,我们先把角色需要的动画文件加载进来,角色的文件为png 和 plist格式。
player1_anim.png.plist player1_anim.png
player2_anim.png.plist player2_anim.png
plist分别记录了每张图在整张png图中的位置 大小,我们只要知道每张小图名称即可从整张png图中截取出想要的小图。
player1_anim.png图片为

player2_anim.png图片为

图片表示方法相同,每四张表示一个方向
我们在GameBaseScene中添加角色:
1、 首先定义addPlayerAnimation()方法,这个方法主要是加载动画文件到内存 并创建角色需要的上下左右四个方向的动画
void GameBaseScene::addPlayerAnimation()
{
//创建player1的帧缓存,并加载player1的动画图片到缓存
player1_spriteFrameCache = SpriteFrameCache::getInstance();
player1_spriteFrameCache->addSpriteFramesWithFile(map/player1_anim.plist,map/player1_anim.png);
//创建player2的帧缓存,并加载player2的动画图片到缓存
player2_spriteFrameCache = SpriteFrameCache::getInstance();
player2_spriteFrameCache->addSpriteFramesWithFile(map/player2_anim.plist,map/player2_anim.png);
//创建player1的上下左右四个方向的Vector
Vector player1_anim_left_vector ;
Vector player1_anim_right_vector;
Vector player1_anim_down_vector;
Vector player1_anim_up_vector;
//创建player2的上下左右四个方向的Vector
Vector player2_anim_left_vector;
Vector player2_anim_right_vector;
Vector player2_anim_down_vector;
Vector player2_anim_up_vector;}
//定义name数组
char name[20];
memset(name, 0, 20);
//第1-4张图片是表示向左的动画,把这四张图片从缓存中取出,分别保存到相应角色的vector中
for (int i=1; i<=4; i++)
{
sprintf(name, player1_anim_%02d.png,i);
player1_anim_left_vector.pushBack(player1_spriteFrameCache->getSpriteFrameByName(name));
sprintf(name, player2_anim_%02d.png,i);
player2_anim_left_vector.pushBack(player2_spriteFrameCache->getSpriteFrameByName(name));
}
//第5-8张图片是表示向右的动画
for (int i=5; i<=8; i++)
{
sprintf(name, player1_anim_%02d.png,i);
player1_anim_right_vector.pushBack(player1_spriteFrameCache->getSpriteFrameByName(name));
sprintf(name, player2_anim_%02d.png,i);
player2_anim_right_vector.pushBack(player2_spriteFrameCache->getSpriteFrameByName(name));
}
//第9-12张图片是表示向下的动画
for (int i=9; i<=12; i++)
{
sprintf(name, player1_anim_%02d.png,i);
player1_anim_down_vector.pushBack(player1_spriteFrameCache->getSpriteFrameByName(name));
sprintf(name, player2_anim_%02d.png,i);
player2_anim_down_vector.pushBack(player2_spriteFrameCache->getSpriteFrameByName(name));
}
//第13-16张图片是表示向上的动画
for (int i=13; i<=16; i++)
{
sprintf(name, player1_anim_%02d.png,i);
player1_anim_up_vector.pushBack(player1_spriteFrameCache->getSpriteFrameByName(name));
sprintf(name, player2_anim_%02d.png,i);
}
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 进入详细评论页>>

![cocos2d_x+lua[2]](/uploads/allimg/131030/110J64609-0-lp.jpg)








