我有一个CCSprite
叫sprite
那就是一个孩子CCLayer
叫movingLayer
这本身就是当前的一个孩子CCLayer
跑我的游戏逻辑,所以self
在这种情况下. movingLayer
在一个重复的永远行动中来回穿过屏幕,sprite
并在它上面骑行.我想要sprite
"开始" movingLayer
并"继续"到self
它可以做自己的一些行动的地方.
当我尝试这样做时,我需要告诉movingLayer
删除sprite
并self
添加sprite.
这就是我所做的...
- (void)attack:(id)sender
{
[sprite stopAllActions];
[movingLayer removeChild:sprite cleanup:YES];
[self addChild:sprite z:1];
CGFloat distance = ccpDistance(sprite.position, ccp(sprite.position.x, -sprite.contentSize.height/2));
id goDown = [CCMoveTo actionWithDuration:distance/moveDuration position:ccp(sprite.position.x, -sprite.contentSize.height/2)];
id repeatDown = [CCRepeatForever actionWithAction:[CCSequence actions:[CCMoveTo actionWithDuration:0 position:ccp(sprite.position.x, sprite.contentSize.height/2+self.contentSize.height)], [CCMoveTo actionWithDuration:moveDuration position:ccp(sprite.position.x, -sprite.contentSize.height/2)], nil]];
id attackAction = [CCSequence actions:goDown, repeatDown, nil];
[sprite runAction:attackAction];
} …
Run Code Online (Sandbox Code Playgroud) 是否有可能仅显示CCSprite的一部分?
它接缝那个contentSize
属性没有好结果.
我正在为应用程序创建一条鱼,游到屏幕上的随机位置.在鱼开始向下一个位置游动之前,它会旋转到其起点和目标点之间的角度.
我想弄清楚的是:if (target.x < start.x)
我需要水平翻转精灵.
问题是,在我创建精灵和addChild
图层后,我无法flipX
使用精灵设置属性[sprite setFlipX]
.
将精灵添加到图层后是否锁定了setFlipX?我怎么能绕过这个?是我唯一的动画解决方案吗?
在我的游戏中,我有一个CCSprite
绕另一个CCSprite
旋转的轨道,就像绕电子轨道旋转的电子一样.我有电子作为核的孩子,使动画更简单.我所要做的就是旋转原子核,电子跟随套件非常好.
然而,我的问题来自于想要让轨道动画看起来有点笨拙,要么添加类似粒子系统轨迹的东西,要么沿着电子路径添加带状效果.我不能简单地将粒子系统添加到电子本身,因为粒子不能正确地跟随,因为它们也被核旋转.如果我将粒子系统添加到self
,则它们会正确显示,但不会与它们应该跟踪的对象位于相同的位置.
我的问题是:
有没有办法获得一个物体的场景位置,比如电子,而不是只能访问它相对于它的父母的位置?
谢谢.
我正在使用cocos2d为iPhone v1.0.1库为iPhone编写游戏.为了让我的游戏工作正常,我需要在知道坐标时检查CCSprite中特定像素的颜色.我一直在寻找解决方案两天,但我没有找到任何工作.也许有人之前做过这件事并且知道该怎么做?
对我来说另一个可能性是如果这更容易从CCSprite创建一个UIImage ...
问候,jarektb
我正在使用CCSprite
带有一些其他CCSprite
对象作为孩子添加,我正在使用的其他动画(缩放和旋转)工作得很好,孩子也是动画.但是当我使用时CCFadeOut
,它只会淡化父母.
我读过,淡出不适用于孩子们.除了迭代每个孩子并在每个孩子上调用淡出之外,还有什么方法吗?
我知道有可能在像UIImageView这样的对象上有圆角(我以前做过).但在这种情况下,我需要让我的方形UIImage有圆角.我知道这比仅仅对一个对象更难,但我需要专门用于UIImage.
任何人都可以共享一个非静态的方法,并且可以在我已经创建的类中实现吗?
我必须对UIImage执行此操作,除非可以将圆边添加到CCSprite.
谢谢!
EDIT2:
void addRoundedRectToPath(CGContextRef context, CGRect rect, float ovalWidth, float ovalHeight)
{
float fw, fh;
if (ovalWidth == 0 || ovalHeight == 0) {
CGContextAddRect(context, rect);
return;
}
CGContextSaveGState(context);
CGContextTranslateCTM (context, CGRectGetMinX(rect), CGRectGetMinY(rect));
CGContextScaleCTM (context, ovalWidth, ovalHeight);
fw = CGRectGetWidth (rect) / ovalWidth;
fh = CGRectGetHeight (rect) / ovalHeight;
CGContextMoveToPoint(context, fw, fh/2);
CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1);
CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1);
CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1);
CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1);
CGContextClosePath(context); …
Run Code Online (Sandbox Code Playgroud) 目前我想获取facebook个人资料图片然后将图片转换为CCSprite.
到目前为止我的代码看起来像这样:
//fbId is facebook id of someone
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=normal", fbId]];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];
//convert UIImage to CCSprite
CCTexture2D *texture = [[[CCTexture2D alloc] initWithImage:image resolutionType:kCCResolutionUnknown] retain];
CCSprite *sprite = [CCSprite spriteWithTexture:texture];
[self addChild:sprite];
Run Code Online (Sandbox Code Playgroud)
它有效,但在加载前需要一段时间,大约几秒钟.
我的问题是,除了互联网连接,有没有更好的方法尽快加载Facebook个人资料图像?谢谢
在cocos2d 2.x中,我们使用CCTexture更改CCSprite的图像.但是在cocos2d 3.x中,CCTextureCache似乎已被弃用,因为Xcode警告我:" 未声明的标识符'CCTextureCache' ".或者我可能会错过一些东西,因为我是科科斯的新手.
那么我们怎样才能在v3中改变CCSprite的图像?
谢谢.
当出现正确的消息时,我想暂停/取消暂停特定精灵的动画.我会这样做,CCNode::stopAllActions()
但它会取消所有动画,然后再设置.我只是想以快速暂停/无效的方式进行.任何人都有关于这个问题的有效方法的线索?