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学习笔记(19)--label 、label atlas
  • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
  • Cocos2d-x 2.0 之 Actions “三板斧” 之一
  • Cocos2d-x学习(一):HelloWorld
  • cocos2d-x学习笔记(18)--游戏打包(windows平台)
  • cocos2d 设置屏幕默认方向
  • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
  • cocos2d-x学习笔记(15)--地图的使用(TMX)
  • cocos2dx在xcode下开发,编译到android上(2)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1