您的位置:首页 > 移动开发 > Cocos引擎

Learning Cocos2d-x for XNA(8)——Sprite到哪,我做主

2013-02-24 20:40 399 查看
游戏中,作为玩家对Sprite的操作,最基本的就是控制Sprite的移动,做Sprite的主人。着手让Sprite移动起来。

前期准备

添加素材png和plist至内容管道(Content)文件夹plist中,该动画是Sprite跑动的姿势。

SpriteDefinedTouchLayer

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using cocos2d;

namespace LearningCocos2d_xForXNA.Classes
{
class SpriteDefinedTouchLayer:CCLayer
{
TouchableSprite sprite1;
public SpriteDefinedTouchLayer()
{
base.isTouchEnabled = true;//开启触屏事件
CCDirector.sharedDirector().deviceOrientation = ccDeviceOrientation.kCCDeviceOrientationPortraitUpsideDown;//设置朝向,竖屏
#region  Sprite跑动动画
CCSize s = CCDirector.sharedDirector().getWinSize();
// 创建批处理节点,读取plist文件
CCSpriteBatchNode batch = CCSpriteBatchNode.batchNodeWithFile("plist/images/wolf_move");//批处理节点贴图
addChild(batch, 0, 1);
CCSpriteFrameCache.sharedSpriteFrameCache().addSpriteFramesWithFile("plist/wolf_move");//读取plsit文件
//起始精灵
sprite1 = new TouchableSprite();
sprite1.initWithSpriteFrameName("wolf_move1.png");
sprite1.position = (new CCPoint(s.width / 3, s.height / 2));
batch.addChild(sprite1);
// 创建逐帧数组
List<CCSpriteFrame> animFrames = new List<CCSpriteFrame>();
string str = "";
for (int i = 2; i < 8; i++)
{
string temp = "";
temp = i.ToString();
str = string.Format("wolf_move{0}.png", temp);
CCSpriteFrame frame = CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(str);
animFrames.Add(frame);
}
//动画Animate
CCAnimation animation = CCAnimation.animationWithFrames(animFrames, 0.2f);//Animation动画信息
sprite1.runAction(CCRepeatForever.actionWithAction(CCAnimate.actionWithAnimation(animation, false)));//执行动画
#endregion
}
}
}


运行显示效果,同样得到和“Layer层实现触屏事件”的效果。



著作权声明:本文由http://www.cnblogs.com/suguoqiang 原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: