亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

一個英雄類的創建

發布時間: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

邵东县| 北宁市| 郁南县| 府谷县| 武清区| 保定市| 石泉县| 鄢陵县| 远安县| 太原市| 洛川县| 介休市| 阿坝县| 牡丹江市| 德格县| 中阳县| 龙游县| 江门市| 盐津县| 屯门区| 大安市| 镇康县| 年辖:市辖区| 永新县| 孝感市| 德安县| 梨树县| 洛阳市| 舒兰市| 渭源县| 思南县| 崇阳县| 阳原县| 福泉市| 城市| 日土县| 青阳县| 城步| 潢川县| 鄂尔多斯市| 绍兴县|