C/C++的左值和右值与其应用

左值是指可被引用的数据对象(就是说有变量名,可用地址访问),如变量(常规变量和const变量)、数组无素、结构成员、引用和解除引用的指针。

非左值包括字面常量(”Hello World!”由地址表示除外)和包含多项表达式:

1
x + 3 = 5.0;  //It's wrong

左右值最常出现的地方是什么呢?
这要涉及到C++的一个临时变量的问题,临时变量产生条件:当实参与引用参数不匹配,C++将产生临时变量。也就是说引用传参的本来目的,改变传入变量的值会失效,而变成使用临时变量,相当于引用参数是const引用。

什么时候创建临时变量呢?

android平台上使用js直接调用Java

在cocos2d-js 3.0+ 中,在android平台上我们可以直接在js中调用java方法。使用方法:
1
var o = jsb.reflection.callStaticMethod(className, methodName, methodSignature, parameters...)
  1. className。 –Java的类名。
  2. methodName。 –Java的方法名。
  3. methodSignature。 –Java的方法签名。
  4. parameters –Java的参数名。

小说客户端XMLHttpRequest对象

在前端开发中有一种异步刷新技术—AJAX,俗称阿贾克斯;在web中HTTP请求很普遍,cocos2d-js引擎也对其进行了移植,无论是JSB平台,还是cocos2d-html中Web平台,都可以使用。

XMLHttpRequest对象中常用的函数和属性:

  1. open(request-type, url, asynch)。 与服务器连接,创建新的请求。
    • request-type GET/POST
    • url URL
    • asynch true为异步连接,false为同步连接,默认true。
  2. send()。 向服务器发送请求。
  3. abort()。 退出当前请求。
  4. readyState。当请请求的就绪状态,其中4表示准备就绪。

squence实现间隔时间不同对象相同动作的实现方法

动作(cc.Action)相信熟悉coccos2d的都不会陌生,动作作为一个游戏中必不可少的组成元素,分为瞬时动作(cc.ActionInstant)和组合动作(cc.ActionInterval),动作往往不是单一的,而是复杂的组合,在这里我就说说组合动作中cc.Squence顺序动作的一个常用需求。

例如:现在有个需求是这样的,需要在间隔时间(2s)不同对象依次执行相同动作,就如同体育课老师用报数来清点人数一样,不同的学生依次报数。说到这里,有的人就会说,这不是很简单吗?当然,你可以每个对象执行runAction同一个动作,然后第一个等待0s,第二个等待2s…

哈哈,可以吧,感觉好黄好暴力,当然可以,在简单的游戏下这样做是没问题,但在复杂的游戏中,不同层的对象之间,cc.delayTime会出现不可预知的bug,这时候怎么办呢?