cocos2d-X 节点(CCSpriteFrame.h..)API

本文详细介绍了Cocos2d-X中SpriteFrame的用法及API,包括如何使用不同参数创建SpriteFrame,以及如何设置纹理、矩形区域等属性。

本文来自http://blog.csdn.net/runaying ,引用必须注明出处!

cocos2d-X 节点(CCSpriteFrame.h..)API

温馨提醒: 为了大家能更好学习,强烈推荐大家看看本人的这篇博客  Cocos2d-X权威指南笔记
///cocos2d-x-3.0alpha0/cocos2dx/sprite_nodes


#ifndef __SPRITE_CCSPRITE_FRAME_H__
#define __SPRITE_CCSPRITE_FRAME_H__

#include "base_nodes/CCNode.h"
#include "CCProtocols.h"
#include "cocoa/CCObject.h"
#include "cocoa/CCGeometry.h"

NS_CC_BEGIN

class Texture2D;

/**
 * @addtogroup sprite_nodes
 * @{
 */

/** @brief 一个 SpriteFrame 有:
    - texture: Sprite 将使用的 Texture2D
    - rectangle: texture 的尺寸


 你可以修改框架做一些其他的事情:
 
    SpriteFrame *frame = SpriteFrame::frameWithTexture(texture, rect, offset);
    sprite->setDisplayFrame(frame);
 */
class CC_DLL SpriteFrame : public Object, public Clonable
{
public:

    /** 使用 filname 、rect 创建一个 SpriteFrame
     假定 frame 没有被修改
     */
    static SpriteFrame* create(const char* filename, const Rect& rect);
    
    /** 使用 filname 、rect、rotated(旋转)、offset、originalSize(原始大小) 创建一个 
      originalSize 是 frame 被修改前的尺寸(以像素为单位)
     */
    static SpriteFrame* create(const char* filename, const Rect& rect, bool rotated, const Point& offset, const Size& originalSize);
    
    /** 使用 texture 和 rect 创建一个 SpriteFrame
    假定 frame 没有被修改
     */
    static SpriteFrame* createWithTexture(Texture2D* pobTexture, const Rect& rect);

    /** 使用 texture, rect, rotated, offset 、 originalSize 创建一个 SpriteFrame
     originalSize 是 frame 被修改前的尺寸(以像素为单位)
     */
    static SpriteFrame* createWithTexture(Texture2D* pobTexture, const Rect& rect, bool rotated, const Point& offset, const Size& originalSize);
    /**
     * @js NA
     * @lua NA
     */
    virtual ~SpriteFrame(void);

    /** 使用 texture 和 rect 初始化一个 SpriteFrame
     假定 frame 没有被修改
     */
    bool initWithTexture(Texture2D* pobTexture, const Rect& rect);

    /** 使用 filname 、rect 初始化一个 SpriteFrame
     假定 frame 没有被修改
     */
    bool initWithTextureFilename(const char* filename, const Rect& rect);

    /** 使用 texture, rect, rotated, offset 、 originalSize 初始化一个 SpriteFrame
     originalSize 是 frame 被修改前的尺寸(以像素为单位)
    */
    bool initWithTexture(Texture2D* pobTexture, const Rect& rect, bool rotated, const Point& offset, const Size& originalSize);

    /** 使用 filname 、rect、rotated(旋转)、offset、originalSize(原始大小) 初始化一个
     originalSize 是 frame 被修改前的尺寸(以像素为单位)

     @since v1.1
     */
    bool initWithTextureFilename(const char* filename, const Rect& rect, bool rotated, const Point& offset, const Size& originalSize);


    // 属性
    inline const Rect& getRectInPixels() const { return _rectInPixels; }
    void setRectInPixels(const Rect& rectInPixels);

    inline bool isRotated(void) const { return _rotated; }
    inline void setRotated(bool bRotated) { _rotated = bRotated; }

    /** get frame 的尺寸(矩形)*/
    inline const Rect& getRect(void) const { return _rect; }
    /** set frame 的尺寸(矩形) */
    void setRect(const Rect& rect);

    /** get frame 的 offset  */
    const Point& getOffsetInPixels(void) const;
    /** set frame 的 offset  */
    void setOffsetInPixels(const Point& offsetInPixels);

    /** get 图像裁剪后的原始大小 */
    inline const Size& getOriginalSizeInPixels(void) const { return _originalSizeInPixels; }
    /** set 图像裁剪后的原始大小*/
    inline void setOriginalSizeInPixels(const Size& sizeInPixels) { _originalSizeInPixels = sizeInPixels; }

    /** get 图像裁剪后的原始大小 */
    inline const Size& getOriginalSize(void) const { return _originalSize; }
    /** set 图像裁剪后的原始大小 */
    inline void setOriginalSize(const Size& sizeInPixels) { _originalSize = sizeInPixels; }

    /** get frame 的 texture */
    Texture2D* getTexture(void);
    /** set frame拥有 的 texture */
    void setTexture(Texture2D* pobTexture);

    const Point& getOffset(void) const;
    void setOffset(const Point& offsets);

    // Overrides
	virtual SpriteFrame *clone() const override;

protected:
    Point _offset;
    Size _originalSize;
    Rect _rectInPixels;
    bool   _rotated;
    Rect _rect;
    Point _offsetInPixels;
    Size _originalSizeInPixels;
    Texture2D *_texture;
    std::string  _textureFilename;
};

// end of sprite_nodes group
/// @}

NS_CC_END

#endif //__SPRITE_CCSPRITE_FRAME_H__


基于阶梯碳交易的含 P2G-CCS 耦合和燃气掺氢的虚拟电厂优化调度(Matlab代码实现)内容概要:本文围绕“基于阶梯碳交易的含P2G-CCS耦合和燃气掺氢的虚拟电厂优化调度”展开研究,提出了一种综合考虑碳交易机制、电转气与碳捕集封存(P2G-CCS)技术以及天然气管道掺氢利用的虚拟电厂优化调度模型。通过构建阶梯式碳交易成本函数,激励低碳运行,结合P2G技术将富余可再生能源转化为氢气或甲烷进行存储与利用,同时引入CCS技术降低碳排放,并探索燃气系统掺氢输送的可行性,提升能源系统灵活性与低碳水平。采用Matlab进行建模与求解,验证了该模型在降低系统运行成本、减少碳排放和提高可再生能源消纳能力方面的有效性。; 适合人群:具备电力系统、能源系统优化背景,熟悉Matlab编程和优化建模的研究生、科研人员及能源领域工程技术人员。; 使用场景及目标:①研究高比例可再生能源接入背景下虚拟电厂的低碳优化调度策略;②探索P2G-CCS与燃气掺氢技术在综合能源系统中的协同效益;③实现阶梯碳交易机制下的经济性与环保性联合优化。; 阅读建议:建议读者结合Matlab代码深入理解模型构建过程,重点关注目标函数设计、约束条件设置及求解方法的选择,同时可尝试调整碳交易阶梯参数、P2G效率或掺氢比例等关键变量,开展敏感性分析以深化对系统运行特性的认知。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值