今天花时间研究了一下屏幕适配导致的缩放和展示不全的问题,黑边方案就不用考虑淘汰了。仔细想了一下,起初美工给我们一张图,我们先假设这张图width足够长,在不同的分辨率上我们应该怎么对其进行展示呢?我们肯定不可能在所有的分辨率上把这张图完美的按照原比例展示出来,那答案就只有两种了:1、铺满屏幕(长宽非...
通常在游戏开发制作的过程中,我们常常要用到各式各样的艺术字体,适合游戏风格的、独特的艺术字体能让游戏看起来更加美观、更加生动活泼。但问题是很多新手并不知道这些字体是怎么来的,这篇文章主要讲一下如何基于Cocos2d-x它的配套UI制作工具Cocos Studio的进行艺术字体制作的使用。字体的制作工...
关于UI的综述:Cocos2d-x提供了一套易于使用的UI API来满足你的GUI需求,其中包括:Label、Menu、MenuItems、Buttons和Views。Label(标签)Cocos2d-x中提供了Label(标签)对象来创建TTF、BMFont和SystemFont文本。Label ...
这一章我们讲解场景,包括两个主题:创建和转换。什么是场景?场景是包含精灵(Sprites),标签(Labels),节点(Nodes)和其他游戏所需对象的容器。场景负责游戏逻辑的运行和游戏内容的逐帧渲染。每个游戏至少需要一个场景,你可以将场景想象成一部电影,场景就是其中正在运行并且用户可以实时看到的电...
动作即Action,类如其名,它主要是用来改变Node对象的属性,Action对象是随着时间改变Node的属性。任何一个以Node为基类的对象都有可执行的动作对象。 例如,你可以在一个时间段内将Sprite精灵从一个位置移动到另一个位置。如下为MoveTo和MoveBy两个动作的实例://...
在Cocos2d-x 中你会经常遇到精灵,那么什么是精灵呢?什么是精灵?精灵是一个2D图像,通过改变它的旋转角度、位置、尺寸、颜色等属性可以使其运动或者变换。创建精灵创建精灵的方式有多种,使用哪种则取决于你的需要。你可以通过不同的图片格式(包括PNG,JPEG,TIFF,以及其他格式)创建精灵(Sp...
在本章之前我们可能已经学习了一些关于Cocos2d-x的知识,但是你想知道更多如何使用Cocos2d-x来制作出自己梦想的游戏。没问题,让我们从现在开始,Let‘s go! Cocos2d-x是一个跨平台的游戏引擎。什么是游戏引擎?现在不要被这个问题吓到!一个游戏引擎就是一个可以提供大多游戏常用功能...
关于Cocos2d-x Cocos2d-x创始于2010年,它是一个开源跨平台的游戏引擎。它包含了很多强大的特性可以让游戏开发者轻松的创建出伟大的游戏作品。为什么选择Cocos2d-x 为什么选择Cocos2d-x而不是现有的其它游戏引擎呢?Cocos2d-x使用的为最新C++ API(请参阅这里)...
这个系列进入第五课,在前边的课程中,我们分别学习了地图的添加、英雄的添加、摇杆添加以及英雄的控制,并且在上一课中,我们实现了边缘检测和地图滚动。 本篇中,我们在OperateLayer.cpp加入一个攻击按钮,实现Hero攻击,并在左上角加入一个血条显示。开发环境Win64:vs2010...
在上一课中,我们学习了通过不同层的Joystick控制角色人物的移动,但是人物到处跑,还是无法实现我们的效果。此篇上半部分,限定Hero的移动范围是他不要跑出地图或者是墙上(墙的范围参考第一篇) ;下半部分,我们要通过更新MapLayer来实现地图滚动效果。开发环境Win64:vs2010Cocos...
这个系列今天进入第三课,在第一课中我们学习了添加地图,第二课学习了添加英雄人物。在这一篇中,我们将分两部分进行。 上半部分我们将在控制层OperateLayer中加入一个摇杆,并通过摇杆控制Hero;下半部分我们控制Hero防止其跑出地图和跑上墙。开发环境Win64 : vs2010Cocos2d...
在第1课中,我们介绍了怎样添加地图,没有掌握的童鞋可以回去复习一下。在这一课中,我们实现生成一个基础的Role类,Hero继承Role类创建(我们敌人Enemy也会继承这个类)。最后把它放在我们的GameLayer中。开发环境Win64 : vs2010Cocos2d-x v3.4FinalText...
在这个系列中,我们将以一个横版游戏《KillBear》的制作,来学习了解游戏制作中关键逻辑和实现。 本篇为该系列第一课,我们简单说明一下文件的结构.在新建一个文件的基础上,加入自制的瓦片地图。开发环境Win64: vs2010Cocos2d-x v3.4FiMapEdit文件结构参考的:...
本文讲解一下怎样使用tolua++将自定义的C++类嵌入,并让Lua脚本调用。一般过程:自定义类 -> 使用tolua++工具编译到LuaCoco2d.cpp中 -> Lua调用步骤一:自定义一个C++类,我定义一个类名为:MySpriteMySprite.hMySprite.cpp步骤...
今天主要学习一下Cocos2d-x 3.x里边有关自动材质合并的应用问题,对这方面没搞清楚的童鞋可以关注一下。1.opengl的渲染 要想了解自动材质合并,那么就必须清楚它是怎么实现的。opengl的管线渲染度娘一抓一大把我就不详细的说了。主要提与自动材质合并概念有联系的俩个关键点,顶点...
做好前期的工作之后,今天到最后的几步,很快就可以开玩自己制作的三消游戏了,有没有一点小期盼呢?1. 四消精灵的出现消除只有三消是不是太无聊了呢? 当然了!所以,一定要加四消甚至更多的, 我这里就加一个四消,其他的大家可以根据这个往下做一下。先说一下,这个怎么做:所谓四消,就是如果一次消除4个,那么会...
完成了前面的任务,接下来我们需要给游戏添加时间与分数。1. 添加时间一般消除类游戏,要么关卡,要么限制时间,但是关卡的设计很麻烦,个体创作,没有那么多精力,所以只能通过限制时间来使游戏有些可玩性,但这种可玩性极低啊,反复挑战同样的东西,很容易疲劳的。在程序中加时间,如何操作呢?当然,先要有个时间的全...
我们探讨的是三消类游戏,需在cocos2d-x中要解决两个问题,触摸事件和精灵交换。1.触摸事件 我们玩三消游戏,就要对屏幕进行滑动,所以需要做一个触摸事件来处理对屏幕的触摸。这里主要是要获得开始触摸和触摸方向两个,因为只需要知道移动的起始精灵和移动的终止精灵。所以,在游戏界面的初始函数,进行触摸事...
游戏开始界面和精灵创建完毕,接下来就是精灵的检测与消除。1.结构大纲先来捋下逻辑:——进入游戏界面,精灵开始落下——精灵落完,检测是否有可以消除的精灵——如果有可以消除的精灵,先不急着消除,存放在一个List中——扫描完全部精灵,再将List中的精灵消除——所有精灵消除完毕后,再填补消除精灵留下的空...