Cocos2dx项目启程一 之 封装属于我的精灵类

【COCOS2DX-LUA 学习】精灵创建 这一节开始学习用lua创建精灵,精灵是游戏的重要组成部分,游戏的表现显示主要就是精灵的各种效果,可以说精灵是游戏最活跃的元素。接下来学习lua如何使用精灵的: local layer=CCLayer::create() local size=CCDirector:shareDirector():getWinSize() loacl sprite1=CCSprite:create("tes 阅读详情
给自己的假期就快要结束了,该要做点事情了,哪怕简单的不好的也比不做的有意义。
/*#pragma once 保证头文件只被编译一次
#pragma once是编译器相关的,就是说即使这个编译系统上有效,
但在其他编译系统也不一定可以,不过现在基本上已经是每个编译器都有这个杂注了。

#ifndef,#define,#endif是C/C++语言中的宏定义,通过宏定义避免文件多次编译。
所以在所有支持C++语言的编译器上都是有效的,如果写的程序要跨平台,最好使用这种方式。*/
#ifndef MY_SPRITE_H
#define MY_SPRITE_H

#include "common.h"

//等量切割帧-精灵类
class CMySprite
{
	//资源名字
	std::string		m_pszResourceName;	
	//图片资源
	cocos2d::CCSprite*	m_pccsprite;			
	//当前帧
	unsigned char		m_byCurrentFrame;	
	//总帧数
	unsigned char		m_byFrames;			
	//当前列
	unsigned char		m_byCurCol;			
	//当前行
	unsigned char		m_byCurRow;			
	//帧总列
	unsigned char		m_byCol;			
	//帧总行
	unsigned char		m_byRow;			
	//帧宽
	unsigned int		m_uiframeWidth;		
	//帧高
	unsigned int		m_uiframeHeight;	

public:
	CMySprite(void);
	~CMySprite(void);

	//资源接口
public:
	//载入资源
	bool LoadImage(const char* pszResourceName,unsigned char col = 1,unsigned char row = 1);

	bool createWithSpriteFrameName(const char* pszResourceName);
	//获取资源数据
	cocos2d::CCSprite* GetRenderData();

	//资源是空判断
	bool IsNull();

	//销毁资源
	void DestroyImage();

	//功能接口
public:
	//切换下帧
	void NextFrame();
	//设置帧
	void SetFrame(unsigned char byFrame);
	//获取当前帧
	unsigned char GetFrame();
	//获取当前所有帧数
	unsigned char GetFrames();
	//切换至Row行
	void SetCurRow(unsigned char Row);
	//获取当前行
	unsigned char GetCurRow();
	//切换至col列
	void SetCurCol(unsigned char col);
	//获取当前列
	unsigned char GetCurCol();
	//获取单帧宽
	unsigned int GetFrameWidth();
	//获取单帧高
	unsigned int GetFrameHeight();
	//设置坐标
	void SetPosition(float x,float y);
	//获取坐标
	cocos2d::CCPoint GetPosition();
	//获取X坐标
	float GetX();
	//获取Y坐标
	float GetY();
	//设置矩形
	void SetBox(CCRect crt);
	//获取矩形
	CCRect GetBox();

private:
	//设置切割矩形
	void ResetTextureRect();

};

#endif

cocos2dx实现不同图片材质精灵渲染批次合并 一、 实现技术原理 多重纹理、 顶点合并 二、适用场景。 有大量的精灵,位于同一个图集或者不同图集,最多8张不同的图集(目前只是用了8重纹理)。可以执行帧动画,但是帧动画的所有帧必须在 同一个图集上。并且所有执行该帧动画的精灵动画完全同步,即必须整齐划一的步伐,比如军队士兵。不同步其实也可以实现,但是由于不能 共用同一个精灵的uv,所以需要所有精灵都执行一个动画来更新,会带来额外的动作更新开销。暂时我们项目中要求一致就可以了,因此未实现。 三、技术细节 1... 阅读详情

相关推荐

封装的一个 cocos2d-x 接收点击事件的精灵

TempTouchSprite 封装的一个识别单击事件的精灵 可以看代码后自己扩展。 工程是xcode的 代码通用。具体见工程.

Cocos2dx CrazyTetris 自定义精灵类 继承精灵

制作完主菜单场景,紧接着就是要制作游戏场景GameView。游戏场景的创建和主菜单是一样的,其中的布景、UI都可以参照主菜单场景做出来,难度较低。 游戏中的主要元素,我们要操作的方块也可以看成一个Sprite。同时,明显的,方块我们可以把它抽象成一个类,他们的基本操作和性质都是一样的,只是在表现上有些不同(直线、田字块什么的)。 因此,这一次主要就是分享一下继承Sprite制作自定义Sprit

m294955408的专栏 1806

双向全桥隔离DC-DC变换器(DAB)的调制优化与挑战解析

本文深入解析了双向全桥隔离DC-DC变换器(DAB)的核心调制技术及其面临的挑战。文章从基础的相移调制(SPS)入手,逐步探讨了扩展相移(EPS)、双重相移(DPS)等进阶策略,并重点分析了电流优化与零电压开通(ZVS)等硬核优化技巧。针对DAB在实际应用中存在的建模困难、多模块并联及数字实现等挑战,提供了实用的应对策略与设计思路,旨在帮助工程师在性能、复杂度与成本之间找到最佳平衡。

weixin_29271053的博客 572

iphone游戏开发之cocos2d (七) 自定义精灵类,实现精灵动画CCAnimation

holydancer原创,如需转载,请在显要位置注明: 转自holydancer的优快云专栏,专栏地址:http://blog.youkuaiyun.com/holydancer 精灵是游戏的主角,我们在游戏中经常看到各种炫丽的精灵动画效果,之前我们提到精灵是由图片生成的,如果我们想要实现精灵的动画效果,比如捕鱼达人中摇尾游戏动的小鱼,就需要我们用很多张图片来生成一个个纹理,然后使纹理生成一个个

holydancer的专栏 3826

Python遥感技术实战:NDWI与MNDWI水体提取算法对比与优化

本文详细对比了NDWI与MNDWI两种水体提取算法在Python遥感技术中的应用。通过实战代码演示,分析了二者在自然与城镇场景下的表现差异,并重点介绍了阈值优化与后处理技巧,旨在帮助读者掌握高效、精准的水体提取方法,提升遥感数据分析能力。

f6g7h8i9j的博客 499

Geant4 学习笔记(一):实现multi-thread多线程

简单修改实现Geant4多线程

weixin_52417815的博客 6084

【cocos2dx】如何创建自己定义的精灵类Sprite

C++的知识的确不用都忘了。 写德州扑克想要写一个扑克类Card,继承自Spirite,并且额外添加些自己的属性,比如说牌面大小及花色。那么我在card.h中定义这个类。并且重载Sprite::create(filename)方法。 //Card.h #pragma once #include "cocos2d.h" #include "define.h" USING

eclipse_c 的专栏 3547

以太网物理层协议整理(2)-万兆以太网

在万兆以太网标准化过程中,IEEE和10GEA(万兆以太网联盟)是两个最重要的组织。 万兆以太网标准和规范都比较繁多,在标准方面,首先有2002年的IEEE 802.3ae,后来也不断有新的万兆以太网规范推出,如2006年的IEEE 802.3an标准(10GBase-T)就推出了基于双绞铜线的万兆以太网规范,同样的IEEE 802.3aq标准推出了基于光纤的10GBase-LRM;2007年的

NowOrNever 3万+

cocos2dx基础篇(27) 屏幕适配

【3.x】https://blog.youkuaiyun.com/qq_40338728/article/details/82964046   【屏幕适配】 1、两个分辨率     1.1、窗口分辨率     在main.cpp中有个设置窗口分辨率的函数。该函数是设置了我们预想设备的屏幕大小,也就是应用程序窗口的大小。 // eglView->setFrameSize(480, 320)...

Obliviate的博客 1219

暴力破解pdf文档密码

相信小伙伴们都遇到这种情况;你收到了一些标题很吸引人的pdf文档 或者是重要数据泄露 学习资料总结,再或者是某机构的押题密卷,打开pdf却提示你要输入密码 因为不知道密码 只能弃罢。我就遇到过这种情况 网友发来了标题为某天一的押题密卷 ,我也想看看这个卷子的题怎么样,因为被设置了密码 我尝试用6到10位的纯数字组合来暴力破解这个pdf,结果三 四个小时都没找到正确的密码。有些网友为破解这个密码 请某宝某多来破解 也都没有破解成功。

shelter1234567的博客 1万+

VisionMaster -Group循环、数组数据格式化

这里创建一个格式化工具,按照自己想要的模式格式化刚刚输出的数据。因为是检测多个物体,所以这里选择输出的是数组。第一次的模板很不满意,反复调整参数也没好,边缘不整齐,强迫症患者受不了。实测如果输入设置太多,会导致模块失效,所以尽量选择需要的少量参数。这里要打开循环使能,循环数值就是高精度匹配的匹配个数。Group输出设置里选择刚刚建立的数据集。左边是主流程,右边是组合模块内部流程。修改采图这里的曝光值,图像提亮一点。建一个数据集,把想要的数据收集起来。用TCP助手测试一下OK。成功得到了想要的数据。

weixin_69505365的博客 4531

Cocos2dX精灵类的封装

//第一种:精灵类的封装 //.h文件 #include "cocos2d.h" using namespace cocos2d; //继承于精灵 class Hook:public cocos2d::Sprite { public: Hook(const string& name); ~Hook(); public: void hookRotateAction(flo

klwjxian_ha的博客 495

pynq-z2 HLS开发

定制Overlay一.用HLS生成一个定制IP功啊啊是合理的创建标题,有助于目录的生成如何改变是式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 一.用HLS生成一个定制IP ...

qq_38769280的博客 4156

Cocos2dx 精灵类-Sprite

在Cocos2dx开发的游戏中,玩家能够看到的内容基本都是通过渲染精灵出来的,背景、UI、人物、道具、敌人等全部都是精灵。因此,对于精灵类的掌握是对游戏开发十分重要的。 精灵类继承了节点类Node和材质类TextureProtocol,因此具有这两个类的所有特性,此外还扩展了一些属于自己的特性。 精灵类Sprite常用方法: static Sprite* create() 与场景类

GladiolusLai的博客 939

《网络安全自学教程》- Nmap使用及扫描原理分析

使用Nmap进行端口扫描、主机发现、服务识别、操作系统识别、指定脚本、结果导出文件,使用wireshark抓包分析扫描原理。

wangyuxiang946的博客 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

cocos2dx 拖动精灵

这次要做一个拖动精灵的效果,那么我们需要一个响应触摸事件的精灵类,所以我们让其继承精灵类与触摸事件类。 然后重写其中的creat、ccTouchBegan、ccTouchMoved、onEnter函数。 第二步——响应触摸拖动事件: bool player::ccTouchBegan(cocos2d::CCTouch * touch,cocos2d::CCEvent * event)

u013790419的专栏 2087

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

cocos2dx3.0游戏编程2-动作游戏之自定义精灵类

上一节我们做了点准备工作, 本节我们将定义自己的sprite类,以便于后续的开发。Coco2dx提供的默认sprite类只提供了最基础的功能,我们要做动作游戏,仅仅只用cocos2dx的sprite类的功能是不够的,所以我们要继承sprite类,来实现自己的精灵类。 1.实现思路 动作游戏角色就是各种各样的动作,所以我们自定义的类会围绕这个功能来写,落羽这里只实现有代表性的几个动作,主要就是待

落羽的博客 4154

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

cocos2dx精灵变灰

使用shader使精灵变灰,很简单,只需下面这个类: #ifndef __ColorUtil_H__ #define __ColorUtil_H__ #include "cocos2d.h" USING_NS_CC; class ColorUtil{ public: static ColorUtil* getInstance(); ColorUtil(); ~ColorUtil();

愤怒的小小强 1666

cocos2dx 实现横版游戏中屏幕随精灵移动

在横版游戏中,实现屏幕随精灵移动而移动,要实现这个,首先要明白这个问题中的变与不变: 不变:地图位置; 变:精灵的位置、屏幕(或理解为所在图层)的位置; 故,说是滚动地图,其实是图层滚动; 从不变入手,首先要知道地图(CCTMXTileMap)的两个方法: 1、map->getMapSize():地图的图块数 2、map->getTileSize():每一个图块的宽高 再而分

占占的博客 4384

【cocos2dx】成员精灵(组合)的getboundingbox问题

首先,我设定读者们都对cocos2dx的坐标系有一定的了解了。 没有的话,给个官方文档的链接,讲得比较明白 http://www.cocos.com/doc/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/native/v3/coordinate-system/zh.md 好了,现在都了解了

lif的博客 9215

cocos2dx 精灵动作优化

精灵的概念这里就不说了,论坛上有很多。 一、今天的问题是:如果我有一套美术资源,如一个羊的素材(当然是png),它有站立 ,有跑步,有行走动作。如果当前要加载两个这样的羊,我们该怎么做? 1.第一种方法,想必大家都知道  加载2次。 当然这样有的话,如果我要100个难道也要加载100次的Animation吗?显然不是 2.第二种方法 这里我就按照自己的理解注释了 #d

jyc_reborn的专栏 989

cocos2dx学习笔记-给精灵类添加事件

看了看cocos2dx测试项目TouchesTest代码学到的一点东西吧。在最开始设计自己的精灵类的时候,只是单单继承Sprite,在类里面然后直接添加事件监听的回调方法。class ObjSth : public cocos2d::Sprite { public: virtual void onEnter() override; virtual void onExit() over

RWYQ阿伟的博客 1464

Cocos2dx <基础> 精灵

精灵是Cocos2dx 重要的对象,精灵是一个可以不断变化的图片。这些变化包括: 位置的变化, 旋转,放大,缩小等。 创建精灵的方式: a. 使用图片创建精灵     static Sprite* create(const std::string& filename); --------->参数是图片的路径(默认是Rescrous)     精灵的大小是这个图片的大小. auto vi

小白的博客 493

cocos2dx基础篇(3) 常用重要类

---------------------------------------- 入口类main.cpp 主要控制类AppDelegate.cpp ---------------------------------------- 对象类CCObject 节点类CCNode -------------------------------...

Obliviate的博客 3658

Cocos2dx之精灵批处理

C++之旅 QQ群:201704374 伸手党的救星,1T资料等你来战 一、什么是精灵批处理? 设想一下,在图片为精灵的情况下 ,此时精灵为节点,GPU经行渲染一次,如果有很多相同的精灵,那该如何经行渲染呢?渲染是根据节点数来进行渲染的,也就是说节点的数量决定了渲染的效率。如何提高效率呢?我们先用CCSpritebatchNode进行一次渲染,在这渲染之后

CCDreamOldBoys的专栏 1150

cocos2dx 基础触碰效果封装(通用于具有触碰效果的节点或精灵,类似按钮,方便扩展),很久以前的代码

/* * @note :基础触碰效果封装(通用于具有触碰效果的节点或精灵,类似按钮,方便扩展) * @author :Andy.Ro * @email :Qwuloo@qq.com */ #ifndef _XBASETOUCH_SPRITE_H_INCLUDE_ #define _XBASETOUCH_SPRITE_H_INCLUDE_ #include "cocos2d.h" #includ

853
上一篇: svn服务器搭建和使用:Custom action GenerateSSLKey failed: Command terminated with non-zero exit code
下一篇: Cocos2dx项目启程二 之 封装属于我的按钮类
DesDestroy
博客等级 码龄14年 84粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值