3.世界坐标系 世界坐标系又称绝对坐标系,是游戏开发中的概念,它建立了描述其他坐标系所需要的参考标准。我们可以用世界坐标系来描述其他坐标系的位置。 ...4.节点坐标系 节点坐标系又称本地坐标系,是特定节点相关联的坐标系。每个节点都有独立的坐标系。当节点移动或者改变方向的时候,和该节点关联的坐标系(它的子节点)也将随之移动或者改变方向。...Cocos2d-x中一个非常重要的概念,每一个Node都有一个锚点(anchor point),锚点指定了纹理图像和所在节点原点(即position所表示的点)重合的点的位置。...例如将某个精灵图像的位置设为(50,50)的时候,该精灵图像的几何中心位置默认情况下也应该是(50,50)。...需要注意的是,这两种转换都是基于当前的节点坐标,并且不考虑锚点,而一个节点的position所使用的坐标是基于它父节点的坐标的,因此,我们要把Node的位置转换到世界坐标系中应该调用父节点的convertToWorldSpace
Cocos2d-x精灵的性能优化-使用纹理图集和精灵帧缓存 使用纹理图集 纹理图集(Texture)也称为精灵表(Sprite Sheet) 使用纹理图集的优点: 1、减少文件读取次数,读取一张图片比读取一推小文件要快...2、减少OpenGL ES绘制调用并且加速渲染 OpenGL ES 1.1仅仅能够使用2的n次幂大小的图片(即宽度或者高度是2、4、8、64…)。...4、Cocos2d-x全面支持Zwoptex和TexturePacker,所以创建和使用纹理图集是很容易的 image.png 这样一张大图,可以让美工来完成,但是记得需要记下坐标,图集中小图的左上角坐标是多少...将一个图读到精灵帧缓存中,同时也会加载到纹理缓存中 3、动画缓存(AnimationCache) 动画缓存主要用于精灵动画,精灵动画中的每一帧是从动画缓存中获取的 SpriteFrameCache...把这三个精灵放到一个场景中 利用精灵帧缓存完成 image.png 背景没有放到精灵图集中去,这是因为背景是不需要透明的 bool HelloWorld::init() { if
精灵在Cocos2d-x中的地位就像一场电影中的主角,男主角/女主角,是一场电影中的灵魂所在。...还有些精灵是和物理引擎有关的,有一些物理特效。 本章讲的精灵,只是一般意义上的精灵。...图片读入到计算机里,需要对图片进行解码。最后,在计算机放的东西,就可以叫做纹理! 实际上,纹理就是由图片或者计算机本身用绘图工具绘画出来的对象。...这个东西本身最后的目的是为了放在图片上面,这个过程叫纹理贴图。 在实际中,我们有时候是把纹理叫成图片的。或者图片叫成纹理。...对于第二种图片,我们可以先读到内存里,形成一个纹理对象,然后从这个纹理对象中截图 从里面裁剪出来来创建精灵对象。 裁剪有两种方式,一是通过它的纹理缓存来裁剪。也可以从大图文件直接进行裁剪。
如果您不这样做,那么每次您运行该应用程序时,您的随机数都会相同。 感觉不会很随意,是吗?...从原点到触摸位置的x和y偏移会创建一个小三角形; 您只需要制作一个具有相同比率的大三角形即可,并且您知道要使其中一个端点不在屏幕上。 利用Cocos2d-x随附的矢量数学例程,可以轻松执行这些计算。...因此,您需要一些代码来检测弹丸何时与目标相交。 关于Cocos2d-x的一件好事是它内置了一个物理引擎! 物理引擎不仅对于模拟逼真的运动非常有用,而且对于检测碰撞也非常有用。...注意:您可能想知道这种奇特的语法是什么。 Cocos2d-x上的类别只是一个32位整数。 此语法将整数中的特定位设置为代表不同的类别,最多给您32种可能的类别。...\文件夹下的SimpleGame.sln,然后编译运行,前提是需要配置好Cocos2d-x 3.17.2的开发环境,关于环境搭建可以参考我之前写的一篇博客:Win10+Python2.7.14+cocos2d-x
上一篇文章讲述了利用cocos2d-x构建精灵的动画效果,今天打算以此为引子,创建一个在移动时同时指挥角色到我手指触摸的移动地点,那么就开始吧。...通过上面的代码即可以将一个plist序列图加载进缓存了,你要做的就是将这些缓存的数据拿出来操作它。 动画缓存 上面己经将数据加载进缓存了,可以使用其中的那些节点来制作动画缓存了。...,但你会发现,你想让精灵移动的时候不是一整张图片移动,而是边移动边两只脚在走路的移动,就像是我们人类一样,是走着过去的,而不是幽灵飘过去的,那么,我们要做些什么呢?...动作移动 其实,很简单 ,只要记住要精灵移动的时候即:MoveTo时,同时再让精灵执行一个动作即walk的动作,代码如下: sprite->stopAllActions(); //因为Touch...action,这个目前还不清楚是为什么。
: 一个 PNG 图像字符串 一个Pixi 纹理对象 纹理图集帧 id 数组 一个 PNG 图像字符串的数组 一个 Pixi 纹理对象数组 如果你为 sprite 方法提供一个数组,它将返回一个动画精灵...第二个参数 xPosition 和 第三个参数 yPosition 表示创建的精灵的 x 和 y 坐标。 什么是精灵状态?...你在可以在任何你需要的地方使用它,让精灵对游戏世界的变化作出反应。比较常见的一个场景是在键盘按键的时候,这样你就可以通过箭头键的方向改变精灵面向的方向。...你还可以使用 Shoebox 等工具将 Flash 的 SWF 文件格式转换为纹理图集。 Piskel 是一个免费的在线工具,用于制作像素风格的动画游戏角色。...Shoebox 是一款基于Adobe Air 的免费应用程序,它的功能挺多,比如可以用来制作雪碧图,也可以拆分雪碧图,还可以检测透明图像中的精灵并将其剪切出来 等。
上一篇中,我们实现的项目资源管理模块 AssetsManager 功能基本还只是雏形,这次我们来对它进行一些改进和加强,完善诸如对精灵表的支持、总进度回调这样的能力。...比如,我使用 TexturePacker 制作了一个精灵表 Json 文件: https://hk.krimeshu.com/public/sheets/cat.json。...、纹理的 key 是真正可用的。...这样实际开发工作中将无法得到相关智能提示和代码检查,对于每个 JSON 配置提供了什么可用的动画和纹理都需要打开文件逐个确认,效率低下。而且还容易出现有人手滑写错键名的情况。...这个启动加载场景只要注意以下几点就好: 样式从简,尽快展示出来为第一目标; 信息从简,用户不需要知道过于详细的信息,大部分时候根据总进度绘制进度条即可; 如果启动场景用到了图片素材,尽量用以下方法减少它的等待时间
这种情况在Cocos2d-x 3.x中有了改变,全新的Physics Integration,把Chipmunk和Box2D封装到引擎内部,开发者不必关心底层具体用的是哪个物理引擎,也不用直接调用物理引擎的接口...当调试结束需要发布游戏的时候,需要把该debug开关关闭 关闭DEBUG,传入参数cc.PhysicsWorld.DEBUGDRAW_NONE。 创建物理边界 在物理世界中,所以物体均受重力的影响。...物理引擎提供StaticShape创建一个不受重力影响的形状,在Cocos2d-x 2.x中,我们需要了解物理引擎的StaticShape相关的各种参数来完成边界设置。...完整代码 下面是main.lua文件的完整代码,单击屏幕任意一点会创建一个精灵,精灵之间相互碰撞后产生回调事件。...(4)打开物理世界的调试模式,可以在屏幕上看到物理边界以及刚体的框架。 (5)注册触摸事件,每次触摸事件到来都会在触摸点创建一个刚体精灵。
于是我写出了人生中的第一个游戏,一个猜数字的小游戏,并尝试着改变游戏的规则,制作类似石头剪刀布这样的游戏。 ?...大富翁的后端逻辑不同于一般的后端,一般是一个请求一个响应,但大富翁的一个请求可能触发的事件是不一定的,事件的流程也会随着不同的环境发生改变,并且中间有可能导致玩家之间的复杂交互。...每次写了一段时间之后,回过头看之前写的文章,顿时觉得惨不忍睹,必须推翻重写,或者是Cocos2d-x的接口又改了,或者是自己能力的提升推翻了之前的一些想法。总之不想将就,就得重构!...写书不易,经常加班的IT人写书更是不易,有了这么一个经历之后,对一些写得不是很好的书籍,我也不会去吐槽它了。大概在项目上线的时候,第二本Cocos2d-x的书也该交稿了。...第一本书介绍了Cocos2d-x的基础,虽然是基础,但有很多点还是挖得比较深,例如指针、内存、纹理、渲染等。这些往往是一些初级程序掌握得不好的点,相信对于基础不扎实的同学会有很大的帮助。
(不多解释啦,不知道的朋友请搜索) auto director = Director::getInstance();//获取唯一的导演 单例模式 导演对象的职责/作用 访问和改变场景 访问Cocos2d-x...的配置信息 暂停、继续和停止游戏 转换坐标 上面只是导演对象的职责其中一部分,还有其他很多,但我们不需要让导演做很多事情(其他的事被隐藏了),我们用的最多的应该就是访问和改变场景、暂停、继续和停止游戏和转换坐标...场景就是我们拍这场戏,我们布置的景 比如打斗的场景等 场景中会有男主角,女主角,那么男女主角就相当于我们这里的精灵了,包括道具什么的(精灵),这些东西在一起,就构成了层 所以场景里面也会放一些层...(层与层之间有覆盖的问题,后面的层会覆盖先绘制的层),需要绘制的深度越深,越耗CPU 大家可以打开Photoshop,用里面的图层来理解,这样更加直观 image.png 精灵 精灵类Sprite...之前的HelloWord中的关闭按钮其实就是一个菜单项 我们也可以用精灵来实现,但是菜单项封装了一些触摸事件,你不需要关心它事件处理的细节问题 本文章由[谙忆]编写, 所有权利保留。
平铺精灵 平铺精灵是一种特殊的精灵,可以在一定的范围内重复一个纹理。你可以使用它们创建无限滚动的背景效果。...着色 精灵有一个 tint 属性,给这个属性赋值一个十六进制颜色值可以改变精灵的色调。 我们来试试吧!...如果你想改变一个精灵的色调而不完全改变它的纹理,就使用着色。 蒙版 Pixi 允许你使用 Graphics (图形)对象来屏蔽任何精灵或具有嵌套子精灵的容器。...视频纹理只是一个普通的 HTML5 元素,你可以通过纹理的 baseTexture.source 属性访问它,如下所示: let videoSource = videoTexture.baseTexture.source...这个方法需要两个参数: 一个是 Rope 对象使用的纹理 一个是包含 Point 对象的数组 let snake = new PIXI.mesh.Rope(PIXI.Texture.fromImage
在CocosCreator中巧妙利用节点的color属性,改变精灵的颜色,可以有效减少美术资源。我们一起来看看CocosCreator的HelloWorld工程,给我们的启发: ?...回想一下,在你的工程中,有没有切出一大块纯色图片做背景的?如果有的话这就是一个可优化的点!我们来看看充分发挥color的作用需要注意些什么。 1....,整体色调会变暗 纯红、绿、蓝的三元色精灵使用color属性,颜色只能在当前图片颜色范围变化,应用范围有限 2. color属性在字体上的应用 上图中,我不仅在精灵组件上设置了颜色,同时也设置了他们下方的...绿色字体叠色后变黑色了 所以在制作字体时,尽量先用纯白色,或者再用点浅灰色做字体外发光,这样可以让字体文件的使用范围更大,发挥更大的价值。 3....4.小结 节点color可以控制精灵的渲染颜色,灵活运用可以减少图片资源。color属性不仅可以作用于精灵,更多的是应用于Lable标签,使用白色纹理,可以让图片更具灵活性。
其实我也不知道我在说些什么,还是接着看下面的内容吧 : p 举个栗子 问:尝试在两个硬盘之间传输文件,「传输 1 个 1MB 的文件和传输 1024 个 1KB 的文件」,同样是传输了共 1MB 的文件...将所有碎图打成一个图集,文本节点夹在精灵节点之间的情况下需要 3 个 DrawCall,在顶部最外层或者底部最外层的情况下需要 2 个 DrawCall。...「如果需要对精灵使用自定义 Shader,需要禁用其纹理的 Packable 选项。」...不要问明明只有 80 张精灵和 80 个文本不应该是 160 个 DrawCall 吗为什么是 161 个... 因为左下角的 Profile 也要占一个 : ( ?...举个栗子 还是是上文提到的「精灵和文本相互交错」的例子,为了更好体现 CHAR 模式的优势,我更改了场景节点的结构,将精灵和文本进行「分离」(关于这点可以看下面的 「UI层级调整」)。 ?
对于雪碧图,有一个配套的纹理贴图集也是比较方便工程师进行开发工作的。 纹理贴图集是一个 JSON 数据文件,其中包含子图像在雪碧图上的位置和大小。如果你使用纹理贴图集,你只需要知道子图像的名字。...TexturePacker官网:www.codeandweb.com/texturepack… 这款软件也主要是为了游戏的纹理贴图集的制作而产生的,下图中支持的教程前面大都是比较出名的游戏开发引擎或者动作库...TexturePacker简单使用 因为我是为了pixi.js来使用的,所以直接看PixiJs的教程就可以啦。 官网上的教程是英文的,但是其实比较简洁,大家翻译工具翻译一下也不会有什么出错。...下面就直接拿我安装下载的TexturePacker5.5来举例使用一下了 准备工作 首先准备好需要合成的精灵图片,这里我是从爱给网上找的图片,找下来后我进行了一下处理,下面是我处理好的图片:...在右侧的输出文件选项中,可以选择你需要的配置,我使用的是pixi.js。当然其他的像unity这些软件的配置也都有。输出文件格式是json格式。之后点击发布精灵表即可。
二、UI编程相关 手机游戏中大量的UI界面,占游戏开发工作量50%以上,理解Creator的组件化思维是从Cocos2d-x/lua/js到Creator的必经之路。...当在Creator开发中,遇到节点与组件的关系没理清楚的时候,推荐上面的文章,也建议刚从Cocos2d-x/lua/js转换Creator的也可以看看。...(视频) 奎特尔星球上的白魔法 (视频) 魔灵战士—魔法精灵 (视频) 奎特尔魔法三杰 (视频) 奎特尔历险记总动员 目前MagicComponent的进度比较缓慢,最近刚更新了二维码战士,稍后制作视频介绍...自由飞是一位霸气的程序员,至力于为‘野生程序员’的成长略尽绵薄之力”,他的故事震撼了我,也是我学习的榜样!...作者:Colin 2D MMO中角色动画的优化 Cocos实现对ETC2的支持 Creator使用压缩纹理 作者:自由飞 野生程序员的折腾—从包工头到程序员(一) 野生程序员的折腾—残酷的磨砺让我更加锋利
runAction那行换成this.getComponent(cc.Animation).play('customAnim'); 5.动态更换精灵的纹理: var imgUrl = cc.url.raw...,可以在编辑器中把勾选去掉) 或者 label.node.active = false // 整个 node 的所有组件一起禁用 7.require脚本文件,脚本的load函数要放在外头调用...,不要在js加载的时候就去调用,因为这个时候引擎的一些参数还未初始化呢。...此时需要先解除Widget组件,才能去修改node的position属性。.../HelloWorld/build/HelloWorld/jsb/frameworks/cocos2d-x/cocos/platform/android/java 然后修改HelloWorld的Library
但原来,只要在职场摸爬滚打一阵子,媳妇熬成婆总有机会可以升到“制作人”,毕竟这是一个“职位”…… 不过一直以来,我想讨论的关于成为一名游戏制作人,是指能力水平方面的制作人,而不是说如何拿到“制作人”这个职位...之后,我找了一些游戏对比他们的游戏内元素。 说实话,我并不觉得,目前的精灵之息的资源不足以支持前两章或者第一章。但从一开始就有的“重复的随机”的无聊感还是无法去除。...之前的精灵之息,既想要rougelike的随机,又想要构建世界观。但很明显,目前的精灵之息是做不到的。 既然如此,则需要权衡这两个点。 首先。 为什么我要选择rougelike?...emmm 首先,虽然有时候会有“不如随机”的感觉,但如果要跨越它的话,就要能把随机驾驭起来,在第二章中,我就做了类似的尝试。 另外,制作游戏从来就不是一件轻松的事。...我一直强调“制作游戏很好玩”甚至“制作游戏可以很简单”,但是它并不轻松。 制作游戏也是在“创作”。
,我看着DOLO里那些没能上架的素材,再看着『精灵之息』那惨不忍睹的画面…… 原本我是打算把DOLO作为精灵之息的一个支线来精灵之息之中客串的。...我想做的是『游戏』,是和『瓦里奥制造』一样可以被人承认的游戏,而不是它的200分之一的小游戏…… 可能这在微信小游戏平台上会很不讨巧,但这才是我制作游戏最初心的理由。...貌似,很早以前『游戏设计师』就是指『游戏制作人』,但是,不知道从什么时候开始,『设计师』被等价于『画图的』。...即使他套了『魔理沙』的皮,或者说,这是『魔理沙』在cos『矢张政志』。 ? 这就是灵魂了。 现在很少有这种角色了,大家不停重复的去抽不同的R SR SSR…… 其实大家抽的只是一个数字吧。...它是一个性格胆小的生物,因此,它的行为模式是『躲藏』,而隐蔽的时长也相对较长。 不过,精灵之息制作进度严重滞后,没空创作原创角色,直接搬来救场的DOLO的角色们,目前还没有很好的进行性格行为设定。
领取专属 10元无门槛券
手把手带您无忧上云