问题标签 [ccaction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
959 浏览

cocos2d-iphone - 不同节点上的顺序 cocos2d 动作

我需要在不同的节点上运行顺序 cocos2d 动作。我知道,CCSequence但这对我不利,因为它允许在同一节点上运行一系列操作。对于这种情况,我将如何运行顺序操作:

  • 移动父级;
  • 同时移动两个子节点;
  • 再次移动父级;
0 投票
2 回答
2939 浏览

cocos2d-iphone - 如何在移动动作期间改变 CCSprite 的位置

是否可以在移动动作期间改变CCSprite's位置,就像CCMoveBy? 我有一个CCSprite通过一堆动作循环的子类,其中一些是移动。我检查它是否已离开屏幕,然后尝试将其直接移动到屏幕的另一侧。因此,如果它在向左移动的中途离开屏幕左侧,它将从屏幕右侧完成移动。

但是如果我使用setPosition:它似乎不起作用,它只会完成它的移动动作。

0 投票
1 回答
417 浏览

objective-c - 当没有应用比例时,是什么导致精灵扭曲

一张图片胜过千言万语。这是我的:

好精灵旁边的精灵搞砸了

上图描绘了两个精灵,右中的一个是玩家,左中的一个是AI玩家。它们的两个初始化都使用相同的超类。我们应该看到类似质量的精灵。

然而,正如你所看到的,正确的精灵在某种程度上被扭曲了。我还注意到来自同一 spriteSheet 的其他精灵的斑点出现在某些动画帧的上方和下方。从未对玩家精灵进行任何转换。除了在 ai sprites 上执行的操作之外,不会运行任何操作。

有人遇到过这种情况么?我什至不知道如何表达这个问题;)还有问题吗?请问!

详细信息:我使用的是 Cocos2d 1.0.0.. Xcode 4.1 在 Lion 上运行。

代码示例:此代码在初始化包含 CCFiniteTimeActions 和 CCSprite 的 NSObject 之后运行

变量“sprites”是指向 CCSpriteBatchNode 的指针。我确信它们指向同一个批处理节点,因为只有一个。

如您所见,该对象通过批处理节点将自己的动画添加到图层。

我将发布发生运动的方法:

自询问以来,我尝试添加以下行:

它消除了玩家的精灵的模糊,但将图像拉宽了一点。可能值得一提的是,这些精灵帧中的每一个都是 32x32 像素,并且不会填满整个帧。
此外,上述代码行并没有影响 ai 精灵的外观。

* ------- * 编辑::

我修好了它。

发生了什么:

我有两个浮动来保存精灵即将在屏幕上移动到的位置。我世界中的所有其他精灵都是从玩家的参考中提取的。

在我的引用过程中,浮点数被格式化为一个 int,所以游戏中的每个其他精灵都收到了该位置的 int 版本。

这让我相信,在我的代码的某个地方,一定有一些东西将这两个浮点数细分。

感谢@jtbandes 的“半像素值”提示。我仍然不知道这个位置是如何变成一个整数的:(

无论如何,将浮点数更改为整数可以解决所有问题。

谢谢!

0 投票
2 回答
724 浏览

iphone - Cocos2D 获得 CCAction 的进展

我有一个带有 Box2D 物理的 Cocos2D 游戏。在我的 GameScene.mm 中,我正在研究一种缩放到给定比例的方法:

我遇到的问题是 currentZoomLevel (在场景的 update() 方法中使用)被立即设置为缩放,并且没有根据动画逐渐调整。因此,在动画进行时,currentZoomLevel 变量是完全错误的。

我试图找出一种方法让 currentZoomLevel 变量与动画的进度相匹配,因为它正在发生。根据 CCAction API 参考,CCAction 的更新方法根据动画的进度取 0 到 1 之间的 ccTime(0 刚刚开始,1 刚刚结束)。

如何从操作外部访问此 ccTime?我想在我的场景的更新方法中有这样的东西:

我在这里遗漏了一些明显的东西,还是我必须继承 CCScaleTo?

0 投票
2 回答
1266 浏览

cocos2d-iphone - CCMoveBy 行为

我被困在为我的俄罗斯方块克隆实现一些 Cocos2D 动画(效果很好,没有逻辑错误,我只想在删除行时执行一些平滑的动画)。

当前代码(无动画)只是丢弃块位置,如下所示:

这发生在经典俄罗斯方块编程的 for 循环中。但是当我尝试制作动画时,像这样:

有些块只向下移动一次,即使是艰难的动作也可能会为同一个块多次调用(例如,当打破多行时)......

为什么会这样?我知道这有点令人困惑,但关键是我正在做同样的事情并得到不同的结果......我可以发布更多代码来帮助澄清!

谢谢!

0 投票
1 回答
377 浏览

memory-management - cocos2d 帮助:CCMenuItem 未选中 'EXC_BAD_ACCESS' 和 CCCallFunc

我一直在使用 CCMenuItem 及其使用 CCCallFunc 的时间方面遇到问题。

基本上我得到'EXC_BAD_ACCESS'

@CCMenuItem 类的这一行

似乎菜单项在触摸结束之前被释放。我正在使用 CCCallFunc 调用从父级删除它的“removeThisSprite”方法

所以我调用的 CCMenuItem 序列的最后一个动作:

removeThisSprite 方法是这样的:

这通常发生在玩家通过点击“垃圾邮件”屏幕时,但除非快速点击,否则不会发生。这很可能发生在我正在制作的游戏中。我猜玩家按下按钮太快会出现某种时间问题。

0 投票
1 回答
273 浏览

cocos2d-iphone - CCSprite 可以在多个动画之间切换吗?

是否可以在两个不同的动画之间进行 CCSprite 切换?(两者都是 CCRepeatForever)

我尝试使用 stopAction: 和 runAction: 但它会使应用程序崩溃。我只能使用 pauseSchedulerAndActions: 和 resumeSchedulerAndActions: 一个动画。

0 投票
1 回答
811 浏览

ios - 无论如何要在动作开始后修改 CCMoveTo 的目的地?

我想移动一个节点并在移动完成后调用一个块。但有时我需要在节点移动时将节点移动到另一个位置(更改目标)。

我不能简单地停止上一个动作并开始新的动作,因为不会调用回调并导致状态不一致。

我可以采取行动,CCSequence *action = (id)[node getActionByTag:kMovingActionTag];但我唯一能做的就是停止它并失去 CCCallBlock 行动。


这是改进的解决方案:

0 投票
1 回答
419 浏览

ios - CCAction:停止和运行

对于我的项目,我创建了一个跑步角色。目前,我正在尝试为角色实现不同的动画。

我决定创建 2 个不同的操作

1) CCAction *walkAction;

2) CCAction *jumpAction;

当角色应该跳跃时,我调用一个方法,[self stopAllActions];然后让它[self runAction:jumpAction];在角色着陆时,我调用 stopAllActions,然后运行 ​​walkAction。

但是,由于某种原因,应用程序冻结了。我需要有关停止和运行操作的帮助,而不会导致应用程序崩溃!

谢谢!

0 投票
1 回答
964 浏览

cocos2d-iphone - 将 CCEaseOut 与 CCSequence 一起使用?

我希望我的动作有缓入/缓出的效果,但我已经有了 CCSequence。如果我把 CCEaseOut 放在我的代码前面,移动就会变得很奇怪。是否可以使用 CCSequence 制作 CCEaseOut/CCEaseIn ?这是我的代码:

提前致谢