- 博客(60)
- 资源 (1)
- 收藏
- 关注
原创 图文混排
local ImgTextControl = class(ImgTextControl,function() return cc.Node:create() end)TextHAlignment ={ LEFT=0, CENTER=1, RIGHT=2}TextVAlignment = { TOP=0, CENTER=1, BOTTOM=2,
2016-11-09 18:02:54
568
原创 cocos2d-x中Contestsize和Dimensions有什么不同?
其他他们直接的差别不大,都是节点未转化前大小!Dimensions翻译为:规模,大小; 我们先看一下他们的源码: /* Sets the untransformed size of the Label in a more efficient way.(其实就是一种更加高效的设置Size的方式) / void Label::setDimensions(float width, float hei
2016-11-08 20:55:51
592
转载 HTTP Request的Get、Post的区别
HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST(Ajax开发,关心的只有GET请求和POST请求)。GET与POST方法有以下区别:(1) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。(2) GET方式提交的数据最多只能有1024 Byte,而POST则没有此限制。(3) 安全性问题
2016-11-07 16:34:42
700
原创 cocos2dx 3.x 相机机制
cocos2dx 3.x 相机机制一,3.x相机使用方法: CCSize winSize=CCDirector::sharedDirector()->getWinSize();Camera* camera=Camera::create();camera->setCameraFlag(CameraFlag::USER1);this->addChild(camera);sprite->setCamer
2016-09-30 17:28:37
3686
1
原创 实现SLG地图
要实现一副SLG地图,基本元素有5块地皮,有四块地皮上不能放东西,一块地皮上可以放主城或者是晶石。策划文档如上,要实现的效果如下: 源 代码:local MapUI = class("MapUI", function () return cc.Layer:create() end)function MapUI:ctor() self.mapLayer =cc.Layer:creat
2016-09-23 18:34:17
5804
原创 cmd命令
1、@ 它的作用是隐藏它后面这一行的命令本身(只能影响当前行)。 2、echo 中文为“反馈”、“回显”的意思。它其实是一个开关命令,就是说它只有两种状态:打开和关闭。于是就有了echo on和echo off两个命令了。直接执行echo命令将显示当前echo命令状态(off或on)执行echo off将关闭回显,它后面的所有命令都不显示命令本身,只显示执行后的结果。 echo. :输出空行
2016-09-21 17:38:29
2112
原创 防止tableview滚动误点击
如图所示,我们实现了点击tableview里的坦克上、下阵,但是有个问题就是当我们滚动tableview松开鼠标的时候会有误操作,而我们需要的效果是滚动时不会选中,不滚动时才会选中。 以下是第一次修改的部分代码:--点击时调用接口function BuZhenMainUI:bindIte
2016-09-19 11:39:47
962
原创 上下级控件同名引发的血案
如图,本来是想美术出5个星星的图案,让其都能居中显示。本来很简单的一件事,结果导出发现坦克模型跑到框下面去了。然后找了大半个小时才发现居然是模型层跟2个星星的层同名了,而且在同一级。好吧,把模型的名字改了,然后发现还是不行,整个tableview都显示是空的。--设置tableview里cell的内容function BuZhenMainUI:setCellContent(cell,tank)
2016-09-14 18:23:08
328
原创 setEnabled和setTouchEnabled的区别
local TankShowLayer = class("TankShowLayer", function () return cc.Layer:create() end)local modelList = { [1] = "res/model3d/1000_Tianqi/tianqitanke.c3b", [2] = "res/model3d/1001_Guangleng/gu
2016-09-13 16:22:11
6030
1
原创 CCScale9Sprite实现技能选中效果
如图,当我们选中技能的时候,要用个框把需要的技能点数框起来,提示玩家消耗的能量。美术出图就出一个白色的一个的框,当需要的能量大于1时,如果仅仅将框放大,会失真严重。这个时候我们想到了九妹。【CCScale9Sprite】对于CCScale9Sprite类,不知道该怎么翻译,有人叫它点九图,有人叫它九宫图,有有人叫它九妹图。i_f08.gif那么什么是CCScale9Sprite呢?CCScale9S
2016-09-12 17:46:00
1245
原创 缓慢增加的能量条的实现
之前我们有用ProgressTimer实现技能CD,现在我们用它来实现一个能量条满的过程。 需求如下: 1.当没满一小格时底层不透明的匀速增加 2.当满一小格时上一层的从格子左边立马推进,同时这个格子会亮一下(用特效实现) 3.当整个能量条满时播放流光特效 部分代码: local sprite = cc.Sprite:create("ui/Resources/btn/btn_
2016-09-12 16:05:03
1560
原创 cocos2dx屏幕适配
手机的屏幕大小千差万别,如现在流行的安卓手机屏幕大部分长宽比例为16:9。而iPhone 5S的长宽比例为71:40(接近16:9),也有预测说iPhone 6S的长宽比例也将会是主流的16:9。另外还有一些平板电脑为4:3、16:10、5:4等等。当然还有一些其他的牌子可能屏幕比例也不一样。 要想让你的程序在各种手机上都能很好的呈现游戏画面,就需要进行屏幕适配。【致
2016-09-06 16:00:50
494
原创 实现技能CD
local cool = cc.Sprite:create("res/common/image/icon/cd.png")--黑色半透明图片 cool:setPosition(self.icon:getPosition()) self.view:addChild(cool,4) local sprite = cc.Sprite:create(self.res)--
2016-08-31 17:54:38
587
转载 LuaJavaBridge - Lua 与 Java 互操作的简单解决方案
LuaJavaBridge - Lua 与 Java 互操作的简单解决方案Table of Contentsluaj 主要特征luaj 用法示例luaj 实现原理查找并调用指定的 Java 方法检查调用结果,并从 Java 方法获取返回值将 Lua function 作为参数传递给 Java 方法在 Java 方法中调用 Lua functionGL 线程和 U
2016-08-04 16:20:57
588
原创 详解cocos2dx状态机
目录注:写这篇文章的时候,笔者所用的是quick-cocos2d-x 2.2.1rc版本。quick状态机状态机的设计,目的就是为了避免大量状态的判断带来的复杂性,消除庞大的条件分支语句,因为大量的分支判断会使得程序难以修改和扩展。但quick状态机的设计又不同设计模式的状态模式,TA没有将各个状态单独划分成单独的状态类,相反根据js、lua语言的特点,特别设计了写
2016-08-03 18:06:24
1118
转载 do...while(0)的妙用
在C++中,有三种类型的循环语句:for, while, 和do…while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do…while相对不受重视。 但是,最近在读我们项目的代码时,却发现了do…while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。do…while(0)消除goto语句。 通常,如果在一个函数中开始要分配一些资源,
2016-06-12 15:19:43
251
原创 暗黑远征总结
1.v.text = string.sub(v.text,7,-1)--去掉buff的名字,例如:v.text = 攻击#C(#00EE00)+%s,这时候要去掉前面的攻击2字,用string.sub,但是起始位置是7,因为一个中文占3个字节。2.如图,pageview翻页除了用手指滑动,还可以实际左右两个翻页按钮,但是要做好按钮灰化的同步。可以监听翻页事件,然后在事件里面做同步。lo
2016-05-27 16:41:03
751
原创 TableView跳转到指定的cell
如果需要每次点开的时候未打的关卡都在最左边,即移动到指定index的cell时,可以用setContentOffset。部分代码如下: local moveIndex = EliteLevelHelp.findFDIndex(fbBoxList,fbID) local offset = 0 if moveIndex
2016-05-13 14:41:30
1264
转载 ]cocos2d-x里子Sprite随父Sprite透明度变化
到这个问题,可能很多人早就知道了,这里就当做个记录好了。之前用老版本用久了,貌似没有发现子Sprite会随父Sprite的透明设置Opacity变化而变化。所以之前有Sprite嵌套的情况下处理的办法都是在每帧更新的时候去手动加上设置Opacity的代码。比如update(){this->setOpacity(getParent()->getOpacity());}
2016-05-09 15:13:35
978
原创 lua类的继承
local BuffScript = import(".BuffScript")local Damage = class("Damage", BuffScript)function Damage:ctor( srcFighter, dstFighter, skillScript, dstEffect, actFinishCallBack, effFinishCallBack, notS
2016-05-07 17:45:44
410
原创 require和import的区别
载入一个模块import() 与 require() 功能相同,但具有一定程度的自动化特性。以前一直以为require和import是一样的,但是在项目中local FightPointAdd = require("..ui.common.FightPointAdd") 不知道为什么这种用法在window下不报错,但是在安卓上有报错。只有import支持这种相对路径的写法,一个点表示
2016-04-28 21:33:37
9818
原创 linux开关防火墙
1.即时生效,重启后失效开启:service iptables start关闭:service iptables stop2 重启后生效开启:chkconfig iptables on关闭:chkconfig iptables off
2016-04-10 15:22:43
308
转载 lua使用毫秒
lua自带的时间函数只能到秒的精度。为了统计到毫秒精度的时间,可以使用luasocket。下载地址http://files.luaforge.net/releases/luasocket/luasocket编译安装的时候,你可能需要在源码包根目录下的config文件中指定LUAINC变量为你的lua路径。代码如下:local socket = require "socket
2016-03-29 11:14:22
6013
转载 setZOrder改名叫setlLocalZOrder
这篇博客的标题本想叫“...3.0新的渲染...介绍”,最后还是拉不下这个脸。为啥?觉得自己对渲染的认识还是过于表面,谈不上理解。当然了,这并不影响这篇博客继续写下去。下面看一段3.0Release Notes 对于新渲染器的一段介绍:Node 增加了新的函数 setGlobalZOrder() / getGlobalZOrder(),之前的旧函数 setZOrder() / getZOrde
2016-03-24 19:08:31
777
原创 设置button的禁用状态
按钮一般有三种状态:常用,点击,禁用,并且对应可设置三种不同的纹理图标。当需要设置禁用状态时,setTouchEnabled(false)还是不显示禁用的纹理,此时需要setBright(false)才行。
2016-03-15 09:50:39
3569
转载 svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法
今天碰到了个郁闷的问题,svn执行clean up命令时报错“Previous operation has not finished; run 'cleanup' if it was interrupted”。无论你到那个父层次的目录执行“clean up “,都是报一样的错。执行cleanup时候,提示要cleanup。看来是进入死循环了。可能是频繁做了一些改名,文件打开的时候更新或者提
2016-03-11 12:26:33
364
原创 TableView
一、什么是TableView?这个东西啊,很多游戏,结束后的排行榜,比如里面有20个内容,但是由于窗口受限,不能全部展示,所以像滚动条一样可以纵向(当然也可以横向)拉动的东东。这个也要和ListView和PageView不一样的,? 与ListView相比ListView以前我也没用过,网上资料查到的也不多,就讲一下最大的不同吧。ListView中的每个单元称为item,Tab
2016-03-07 21:26:11
726
转载 四种强制类型转换的比较
前言这篇文章总结的是C++中的类型转换,这些小的知识点,有的时候,自己不是很注意,但是在实际开发中确实经常使用的。俗话说的好,不懂自己写的代码的程序员,不是好的程序员;如果一个程序员对于自己写的代码都不懂,只是知道一昧的的去使用,终有一天,你会迷失你自己的。C++中的类型转换分为两种:1.隐式类型转换; 2.显式类型转换。而对于隐式变换,就是标准的转换,在很多时候,不经意间就发生了,比如int类型
2016-02-24 20:09:27
549
原创 ip地址与int类型的转换
unsigned long ip_string2int(const std::string& str_ip) { //IP转化为数值 //没有格式检查 //返回值就是结果int a[4];string ip = str_ip;string strTemp;size_t pos;size_t i = 3;do{ pos = ip.find(".");
2015-12-25 19:32:21
1663
转载 string中c_str()、data()、copy(p,n)函数的用法
标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()、data()、copy(p,n)。c_str():生成一个const char*指针,指向以空字符终止的数组。注:①这个数组的数据是临时的,当有一个改变这些数据的成员函数被调用后,其中的数据就会失效。因此要么现用先转换,要么把它的数据复制到用户自己可以管理的内存中。注意。看下例: const ch
2015-12-25 16:10:14
295
原创 光棍节pairs引发的血案
pairs是功能更强大,但是它有一个很大的弊端,遍历的时候不是顺序遍历的!从官方参考手册可以看出: ipairs (t)Returns three values: an iterator function, the table t, and 0, so that the construction for i,v in ipairs(t) do body endwill iterate over
2015-11-11 20:20:08
568
原创 cjson不连续存储问题
local t = {} t[1] = {100,200,300} t[5] = {200,300,400}local temp = cjson.encode(t) print(temp) t = cjson.decode(temp) print(t [2])打印如下: [15-11-05 20:10:05 DEBUG] [[100,200,300],null,null,null,[20
2015-11-05 20:25:42
477
原创 魔兽军团前端项目的一些总结
1.当打通本关开启下一关卡时增加一个解锁特效,特效播完之后再播放水晶指示特效,其他时候接入地图不播放关卡解锁特效。if adjustFlag == true or (newChapter == nowChapter and nil ~= lastBtn) then local x,y = lastBtn:getPosition() local parent = l
2015-10-29 23:05:49
699
原创 Node之remove and clean
local Test5_entry = nillocal Test5_layer = nillocal function Test5_addAndRemove(dt) local sp1 = Test5_layer:getChildByTag(kTagSprite1) local sp2 = Test5_layer:getChildByTag(kTagSprite2
2015-10-22 14:43:54
456
原创 Node之tags
local Test4_layer = nil local Test4_delay2Entry = nil local Test4_delay4Entry = nillocal function delay2(dt)//dt为时间间隔 print(dt) node = Test4_layer:getChildByTag(2) local action1 = cc.R
2015-10-20 23:00:05
463
转载 cocos2dx之定时器
定时器用的地方还是比较多的,游戏中的逻辑判断很多都是采用每帧执行。quick对于schedule的封装在scheduler这个lua文件中。如果是第一次接触quick的话,可能按照官方的api来写一个定时器被报错,提示schedule是一个nil值,这是因为其他的模块在初始化时都是被加载的,唯独这个scheduler没有载入,所以在使用的时候,第一件事是引入这个模块,local scheduler
2015-10-20 22:38:41
364
转载 cocos2dx+lua注册事件函数详解
registerScriptTouchHandler 注册触屏事件registerScriptTapHandler 注册点击事件registerScriptHandler 注册基本事件 包括 触屏 层的进入 退出 事件registerScriptKeypadHandler 注册键盘事件registerScriptAccelerateHandler 注册加速事件registerScriptTouchH
2015-10-20 22:13:11
370
原创 Node之锚点
local function Test2() local layer = getBaseLayer()local sp1 = cc.Sprite:create(s_pPathSister1)local sp2 = cc.Sprite:create(s_pPathSister2)local sp3 = cc.Sprite:create(s_pPathSister1)local sp4
2015-10-20 21:46:47
664
转载 setmetatable的一点总结
local obj = {}setmetatable( obj, { __index = mission_t } )return objmission_t为对应模块的文件名。 在LUA中的文件中使用module("mission_t",package.seeall )这样的形式,可以防止某些命名的冲突,相当于C++的namespace,在调用这个模块的函数的时候,加上模块名:函
2015-10-16 15:11:01
568
转载 Cocos2dx坐标系,锚点
注:ccp是cocos2dx中的一个宏定义, #define ccp(__X__,__Y__)CCPointMake((float)__X__, (float)__Y__), 在此文章中表示坐标信息 1、笛卡尔坐标系 你可能在学校的几何学上已经知道笛卡尔坐标系。如果你忘记了,下面的图片可以让你回忆一下: 有3中类型的坐标系在游戏开发中你会用的到。 1)UI坐标系
2015-10-15 18:04:20
569
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人