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 Vectorplayer1_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); }
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 进入详细评论页>>