我们知道在Cocos2d-x中,plist文件是非常常见的配置文件。它是特定格式的xml文件。例如:小图打包成大图的纹理图片、制作粒子特效、帧动画等,都用到了plist文件作为配置文件。所以,在这一章中我们要介绍的是:如何创建plist文件,以及读取plist文件中的数据信息。【plist文件】属性...
XML也称可扩展标记语言,在游戏开发中它常常用于保存游戏数据信息,如最高分、游戏等级等信息,另外也常用来描述一些资源等。加载动画的plist文件、瓦片地图编辑器到处的地图格式tmx文件,实际上都是特定格式的xml文件。 另外 UserDefault 单例类保存的数据,也是存储在xml文件...
上一课我们研究对玩家手中的牌进行分析归类,下面就该实现电脑玩家出牌与跟牌的策略了。首先我们来看看出牌的策略,代码如下:void GameScene::update(float delta){ switch (m_iState) { case 0: ...
在电脑玩家跟牌和出牌之前,首先按照游戏规则对电脑玩家的牌进行拆分: 根据文档需求(见“斗地主规则“)拆分牌按以下顺序,先分析炸弹---飞机---连对---连牌--三带,对子,单张。请看如下代码:void GameScene::FenChaiNpcPai(Player* npc){ ...
当游戏玩家选择好要出的牌以后,首先需要判断该牌型是否符合游戏规则,即合法。如果合法就高亮显示出“出牌”按钮,否则显示灰色“出牌”按钮,表示不可出。怎样判断玩家所选择的牌型是否合法呢?请看下面的代码:int GameScene::PaiDuanPaiXing(){ //对出的牌进行排序 ...
依照游戏规则,发完牌下面就该叫地主了,首先从玩家(人)开始叫地主,下一回合所有玩家(包括电脑玩家)按逆时针顺序叫地主。我们来看一下叫地主的模块:void GameScene::Call(float dt){ //是否都叫过地主 if(!m_player->getCall()...
废话不多说,直接上代码再看:头文件class Player : public CCObject { public: Player(); ~Player(); void updatePkWeiZhi();//设置牌的位置 private: CC...
在第一讲里,我们创建了一副牌,最初它们是有顺序的,现在我们需要把它们打乱,游戏里俗称“洗牌”。请看代码:bool GameScene::xiPai(){ bool isRet = false; do { for(int i=0; i<54; +...
本系列讲解如何基于Cocos2d-x制作《单机斗地主》游戏,并对游戏源码进行剖析,以帮助大家理解游戏逻辑以及开发关键技术。 项目基于Cocos2d-x引擎开发,根据网上搜索的斗地主文案,由本人独立完成,下面我来做个项目总结。1.创建一副扑克牌,写代码首先创建一张牌的类。如下所示:cla...
在Cocos2d-x 3.4的发布日志上忽然发现他们有GAF这个动画库。研究了下,下面是关于Cocos Package Manager的使用,如何为项目添加GAF扩展。 视频: Cocos Package Manager是一个引擎扩展模块化框架,其服务于Cocos2d-x的扩展的开发和使用流程。...
首先来看一下C++ 语法特点1. 函数的声明定义分开例如.h文件与.cpp文件2. #include 预编译例如 #include “HelloWorld.h”3. Using namespace 命名空间using namespace cocos2d与USING_NS_CC 等同如果不用的话,需要...
本篇文章,主要探讨一下lua中的内存管理(涉及到的文件 lmem.c,lauxlib.c )。lua内存管理:众所周知,lua是用纯c写的,所以lua中的内存管理,也就是用c方式对内存的管理。/*** About the realloc function:** void * frealloc (vo...
设计要点?能够在服务器运行期间更新程序逻辑代码以实现修正程序Bug、修改游戏数据的目的。游戏框架代码的热更新暂不考虑。例如:某个业务处理函数逻辑有Bug,服务器运营期间发现,在不停机情况下及时更新代码修复。技能数值表策划填写出现手误错误,导致玩家战斗异常,在不停机情况下及时更新内存中的数值表。更新代...
chrisxie的专栏2008-09-30 12:09Lua 对于国人来说可能还比较陌生,然而随着它在电子娱乐、网络娱乐界得到大量的应用,许多人也开始关注起它来。Lua 虽然是一门脚本语言,但麻雀虽小,五脏却俱全。Lua 主要是面向过程的语言,与大多数脚本语言无异;但 Lua 围绕“栈”的语言构造,...
1. chat_server.erl-module(chat_server).-export([start/1]).-define(TCP_OPTIONS, [list, {packet, 0}, {active, false}, {reuseaddr, true}]).start(Port) -&...
由于开始并没有介绍C++语言,C++的内存管理当然也没进行任何的说明,为了掌握Cocos2d-x中的内存管理机制,是有必要先了解一些C++内存管理的知识。C++内存管理非常复杂,如果完全地系统地介绍可能需要一本书的篇幅才能解释清楚。这里只给大家介绍C++内存管理最为基本的用法。内存分配区域创建对象需...
观察者(Observer)模式也叫发布/订阅(Publish/Subscribe)模式,是 MVC( 模型-视图-控制器)模式的重要组成部分。天气一直是英国人喜欢讨论的话题,而最近几年天气的变化也成为中国人非常关注的话题。我会根据天气预报决定是坐地铁还是开车上班,我的女儿也会根据天气预报决定明天穿哪...
以下介绍的是在 Windows7 + VS2013 + Cocos Code IDE。并使用Cocos Code IDE创建的Lua项目,绑定方法。1、将自定义的C++代码放在frameworks\runtime-src\Classes下当然放哪里是随意的,我喜欢放在Classes下。2、添加自定义...
屏幕截图ScreenShot方法总结比较Cocos2d-x 2.x版本与3.x版本屏幕截图的两种方式:(1)使用RenderTexture:这是在2.x版本时最常用的的截图方法。(2)使用utils::captureScreen() :在3.2版本中新增的截图方法。RenderTextureRend...
/*** Sets the Resource root path.* @deprecated Please use FileUtils::getInstance()->setSearchPaths() instead.*/CC_DEPRECATED_ATTRIBUTE void setRe...