cocos2D v3.x 中action的回调block变化

cocos2D v2.x中有带参数的回调block:

id blk = [CCCallBlockN actionWithBlock:^(CCNode *node){
  node.position = orign;
  }];

不过到了cocos2D v3.x中只有CCActionCallBlock一种block回调了,如果需要像以前那样传递参数,可以通过局部外围变量的方法,如下:

CCNode *node = myNode;
id blk = [CCActionCallBlock actionWithBlock:^{
  node.position = origin;
}];

[node runAction:blk];
时间: 2024-12-21 09:38:15

cocos2D v3.x 中action的回调block变化的相关文章

Cocos2D v3.x中关于重叠触摸层优先级的问题

在Cocos2D v2.x版本中可以通过以下方法设置本层的触摸优先级: [[CCDirector sharedDirector].touchDispatcher addTargetedDelegate:self priority:-256 swallowsTouches:YES]; 不过以上方法在Cocos2d v3.x中已经不复存在了. 总的来说在v3.x中触摸优先级问题变得更加简单了,它直接和不同层的z-order相关. 越靠近屏幕,即z序越大的层越先响应触摸事件,而z序越小的层越后响应触摸

cocos2D v3.x中动作回调函数的变化

cocos2D v3.x版本中的动作的回调函数不能再带任何参数并且不能返回任何值. 官方给出的传递参数的办法是: 选择器(selector)不能带有任何形参,选择器需要的参数必须通过ivar或property来间接传递. 通常更可取的避免通过ivar或property来传递参数的办法是使用CCActionCallBlock. 示例代码如下: id callFunc = [CCActionCallFunc actionWithTarget:self selector@selector(myCall

Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(一)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 首先说一下为什么要转换,这是为了后面的A*寻路算法做准备.由于在v1.0中,可能是Cocos2D本身有问题,以下 touchLocation = [_tileMap convertTouchToNodeSpace:touch]; 方法在执行到地图左边缘附近时,返回的CGPoint的x轴值不会再减小了.导致游戏主角不能再往地图左边靠近了.示意图如下(注意日志里输出

Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(四)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 现在打开MainScene.m文件,首先设置实例变量: @implementation MainScene{ CGSize _viewSize; CatSprite *_cat; CCTiledMap *_tileMap; CCTiledMapLayer *_bgLayer; CCTiledMapLayer *_objectLayer; //在cocos2Dv3

cocos2D v3.4 在TileMap中开启高清显示

在Tiled中制作一幅地图,用的图片砖块分辨率为32x32. iOS设备为iPhone 4s. 在未打开高清屏支持的cocos2d v2.x版本中,运行log显示480x320.遂启用高清屏支持: [CCdirector sharedDirector] enableRetinaDisplay:YES]; 重新运行App,可以发现分辨率变为960x640,Tile地图显示也是高清瓦片. 但是同样的地图,地图集图片在cocos2d v3.4中显示,即使app运行时分辨率是960x640,但是地图显示

Cocos2d-swift V3.x 中的update方法

在cocos2d V3.x中update方法如果实现,则会被自动调用;不用向早期的版本那样要显式schedule. 但是你还是要显式schedule其他方法或blocks使用node的schedule和unschedule方法.比如:scheduleOnce. update方法会在每一帧将对象(node)渲染到屏幕之前调用. 值得注意的是,你绝不能在cocos2d中的schedule时间事件中使用NSTimer,任何performSelector的变体方法以及Grand Central Disp

Cocos2D中Action的进阶使用技巧(二)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 上回说到解决办法是使用CCTargetedAction类. CCTargetedAction是一个很神奇的类,它本身没有什么动作效果,但是它可以把一个动作和一个特定目标绑定起来,并且返回一个新的Action,我们就可以按需要操作这个新的动作了. 不过该类在Cocos2d-x中和Cocos2d-2.x中才存在,而本猫使用的Cocos2d的版本为最新的3.4.9.

Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(二)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 首先在CatMazeV3中新建CatSprite类,继承于Sprite.其中CatSprite.h文件如下所示: #import "CCSprite.h" @class MainScene; @interface CatSprite : CCSprite @property (nonatomic,assign,readonly) NSInteger n

javamail truts-做后台发送邮件,用main测试好试,单合到项目中Action里就没用,也没报错

问题描述 做后台发送邮件,用main测试好试,单合到项目中Action里就没用,也没报错 import javax.mail.Message.RecipientType; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.interne