上一节我们做了点准备工作, 本节我们将定义自己的sprite类,以便于后续的开发。Coco2dx提供的默认sprite类只提供了最基础的功能,我们要做动作游戏,仅仅只用cocos2dx的sprite类的功能是不够的,所以我们要继承sprite类,来实现自己的精灵类。
1.实现思路
动作游戏角色就是各种各样的动作,所以我们自定义的类会围绕这个功能来写,落羽这里只实现有代表性的几个动作,主要就是待机,走,攻击,受伤,死亡。动作游戏还要有数据,但是本节落羽不讲数据,只讲动画,数据以后再讲。效果如下
2.程序
定义枚举
enum class SpriteType //精灵类型
{
PLAYER = 1,
ENEMY = 2
};
enum class SpriteState //精灵状态
{
NONE = 0,
IDLE = 1,
WALK = 2,
ATTACK = 3,
HURT = 4,
KNOCKEDOUT = 5
};
头文件
#ifndef GAME_SPRITE_H
#define GAME_SPRITE_H
#include "cocos2d.h"
#include "Define.h"
USING_NS_CC;
class GameSprite : public Sprite
{
public:
~GameSprite();
void init(Point point, SpriteType type, float walkSpeed);//位置,精灵类型,移动速度
void update(float dt);
virtual void idle(); //待机
virtual void walkWithDirection(Point direction);//移动
virtual void attack(); //攻击
virtual void hurtWithDamage(int damage); //受伤
virtual void knockedout(); //死亡
void loadAnimation(SpriteType type);
protected:
Action *idleAction; //动画