91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一個英雄類的創建

發布時間:2020-07-05 16:30:15 來源:網絡 閱讀:537 作者:libinqi456 欄目:開發技術

****************************Hero.h******************************

#ifndef __HERO_H__
#define __HERO_H__
#include "cocos2d.h"
//#include "cocos-ext.h"
using namespace cocos2d;
//USING_NS_CC_EXT;
class Hero:public cocos2d::Node
{
public:
    Hero(void);
    ~Hero(void);
    //根據圖片名創建英雄
    void InitHeroSprite(char *hero_name);
    //設置動畫,num為圖片數目,run_directon為精靈臉朝向,false朝右,name_each為name_png中每一小張圖片的公共名稱部分
    void SetAnimation(const char *name_plist,const char *name_png,const char *name_each,const unsigned int num,bool run_directon);
    //停止動畫
    void StopAnimation();
    //判斷是否在跑動畫
    bool IsRunning;
    //英雄運動的方向
    bool HeroDirecton;
    CREATE_FUNC(Hero);
private:
    Sprite* m_HeroSprite;//精靈
    char *Hero_name;//用來保存初始狀態的精靈圖片名稱
};
#endif // __HERO_H__


*************************************Hero.cpp************************

#include "Hero.h"
USING_NS_CC;
//USING_NS_CC_EXT;
Hero::Hero(void)
{
    IsRunning=false;//沒在放動畫
    HeroDirecton=false;//向右運動
    Hero_name=NULL;
}

Hero::~Hero(void)
{

}
void Hero::InitHeroSprite(char *hero_name)
{
    Hero_name=hero_name;
    this->m_HeroSprite=Sprite::create(hero_name);
    this->addChild(m_HeroSprite);
}
//動畫播放,可以是跑、***、死亡、受傷等
void Hero::SetAnimation(const char *name_plist,const char *name_png,const char *name_each,unsigned int num,bool run_directon)
{
    if(HeroDirecton!=run_directon)
    {   HeroDirecton=run_directon;
    m_HeroSprite->setFlipX(run_directon);
    }
    if(IsRunning)
        return;
    //將圖片加載到精靈幀緩存池
    SpriteFrameCache *m_frameCache=SpriteFrameCache::sharedSpriteFrameCache();
    m_frameCache->addSpriteFramesWithFile(name_plist,name_png);
    //用一個列表保存所有的CCSpriteFrameCache
    //CCArray* frameArray= CCArray::createWithCapacity(num);
    Vector<SpriteFrame*> frameArray;
    unsigned int i;
    for(i=1;i<=num;i++)
    {
        SpriteFrame* frame=m_frameCache->spriteFrameByName(String::createWithFormat("%s%d.png",name_each,i)->getCString());
        frameArray.pushBack(frame);
    }
    //使用列表創建動畫對象
    Animation* animation=Animation::createWithSpriteFrames(frameArray);
    if(HeroDirecton!=run_directon)
    {   HeroDirecton=run_directon;

    }
    animation->setLoops(-1);//表示無限循環播放
    animation->setDelayPerUnit(0.1f);//每兩張圖片的時間隔,圖片數目越少,間隔最小就越小

    //將動畫包裝成一個動作
    Animate* act=Animate::create(animation);


    m_HeroSprite->runAction(act);
    IsRunning=true;

}
void Hero::StopAnimation()
{
    if(!IsRunning)
        return;
    m_HeroSprite->stopAllActions();//當前精靈停止所有動畫

    //恢復精靈原來的初始化貼圖
    this->removeChild(m_HeroSprite,TRUE);//把原來的精靈刪除掉
    m_HeroSprite=Sprite::create(Hero_name);//恢復精靈原來的貼圖樣子
    m_HeroSprite->setFlipX(HeroDirecton);
    this->addChild(m_HeroSprite);
    IsRunning=false;
    IsRunning=false;
}



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东城区| 怀柔区| 都兰县| 团风县| 南漳县| 太康县| 芦溪县| 临沂市| 嘉兴市| 全椒县| 葵青区| 文山县| 长兴县| 榆树市| 封开县| 台东市| 三门县| 黄梅县| 同心县| 铜山县| 新干县| 油尖旺区| 赤壁市| 安泽县| 偃师市| 黄龙县| 上栗县| 兰西县| 葫芦岛市| 东辽县| 通榆县| 大安市| 大城县| 鹤庆县| 开平市| 连江县| 新河县| 定结县| 宜春市| 英吉沙县| 云安县|