问题标签 [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.
cocos2d-iphone - 不同节点上的顺序 cocos2d 动作
我需要在不同的节点上运行顺序 cocos2d 动作。我知道,CCSequence
但这对我不利,因为它允许在同一节点上运行一系列操作。对于这种情况,我将如何运行顺序操作:
- 移动父级;
- 同时移动两个子节点;
- 再次移动父级;
cocos2d-iphone - 如何在移动动作期间改变 CCSprite 的位置
是否可以在移动动作期间改变CCSprite's
位置,就像CCMoveBy?
我有一个CCSprite
通过一堆动作循环的子类,其中一些是移动。我检查它是否已离开屏幕,然后尝试将其直接移动到屏幕的另一侧。因此,如果它在向左移动的中途离开屏幕左侧,它将从屏幕右侧完成移动。
但是如果我使用setPosition:
它似乎不起作用,它只会完成它的移动动作。
objective-c - 当没有应用比例时,是什么导致精灵扭曲
一张图片胜过千言万语。这是我的:
上图描绘了两个精灵,右中的一个是玩家,左中的一个是AI玩家。它们的两个初始化都使用相同的超类。我们应该看到类似质量的精灵。
然而,正如你所看到的,正确的精灵在某种程度上被扭曲了。我还注意到来自同一 spriteSheet 的其他精灵的斑点出现在某些动画帧的上方和下方。从未对玩家精灵进行任何转换。除了在 ai sprites 上执行的操作之外,不会运行任何操作。
有人遇到过这种情况么?我什至不知道如何表达这个问题;)还有问题吗?请问!
详细信息:我使用的是 Cocos2d 1.0.0.. Xcode 4.1 在 Lion 上运行。
代码示例:此代码在初始化包含 CCFiniteTimeActions 和 CCSprite 的 NSObject 之后运行
变量“sprites”是指向 CCSpriteBatchNode 的指针。我确信它们指向同一个批处理节点,因为只有一个。
如您所见,该对象通过批处理节点将自己的动画添加到图层。
我将发布发生运动的方法:
自询问以来,我尝试添加以下行:
它消除了玩家的精灵的模糊,但将图像拉宽了一点。可能值得一提的是,这些精灵帧中的每一个都是 32x32 像素,并且不会填满整个帧。
此外,上述代码行并没有影响 ai 精灵的外观。
* ------- * 编辑::
我修好了它。
发生了什么:
我有两个浮动来保存精灵即将在屏幕上移动到的位置。我世界中的所有其他精灵都是从玩家的参考中提取的。
在我的引用过程中,浮点数被格式化为一个 int,所以游戏中的每个其他精灵都收到了该位置的 int 版本。
这让我相信,在我的代码的某个地方,一定有一些东西将这两个浮点数细分。
感谢@jtbandes 的“半像素值”提示。我仍然不知道这个位置是如何变成一个整数的:(
无论如何,将浮点数更改为整数可以解决所有问题。
谢谢!
iphone - Cocos2D 获得 CCAction 的进展
我有一个带有 Box2D 物理的 Cocos2D 游戏。在我的 GameScene.mm 中,我正在研究一种缩放到给定比例的方法:
我遇到的问题是 currentZoomLevel (在场景的 update() 方法中使用)被立即设置为缩放,并且没有根据动画逐渐调整。因此,在动画进行时,currentZoomLevel 变量是完全错误的。
我试图找出一种方法让 currentZoomLevel 变量与动画的进度相匹配,因为它正在发生。根据 CCAction API 参考,CCAction 的更新方法根据动画的进度取 0 到 1 之间的 ccTime(0 刚刚开始,1 刚刚结束)。
如何从操作外部访问此 ccTime?我想在我的场景的更新方法中有这样的东西:
我在这里遗漏了一些明显的东西,还是我必须继承 CCScaleTo?
cocos2d-iphone - CCMoveBy 行为
我被困在为我的俄罗斯方块克隆实现一些 Cocos2D 动画(效果很好,没有逻辑错误,我只想在删除行时执行一些平滑的动画)。
当前代码(无动画)只是丢弃块位置,如下所示:
这发生在经典俄罗斯方块编程的 for 循环中。但是当我尝试制作动画时,像这样:
有些块只向下移动一次,即使是艰难的动作也可能会为同一个块多次调用(例如,当打破多行时)......
为什么会这样?我知道这有点令人困惑,但关键是我正在做同样的事情并得到不同的结果......我可以发布更多代码来帮助澄清!
谢谢!
memory-management - cocos2d 帮助:CCMenuItem 未选中 'EXC_BAD_ACCESS' 和 CCCallFunc
我一直在使用 CCMenuItem 及其使用 CCCallFunc 的时间方面遇到问题。
基本上我得到'EXC_BAD_ACCESS'
@CCMenuItem 类的这一行
似乎菜单项在触摸结束之前被释放。我正在使用 CCCallFunc 调用从父级删除它的“removeThisSprite”方法
所以我调用的 CCMenuItem 序列的最后一个动作:
removeThisSprite 方法是这样的:
这通常发生在玩家通过点击“垃圾邮件”屏幕时,但除非快速点击,否则不会发生。这很可能发生在我正在制作的游戏中。我猜玩家按下按钮太快会出现某种时间问题。
cocos2d-iphone - CCSprite 可以在多个动画之间切换吗?
是否可以在两个不同的动画之间进行 CCSprite 切换?(两者都是 CCRepeatForever)
我尝试使用 stopAction: 和 runAction: 但它会使应用程序崩溃。我只能使用 pauseSchedulerAndActions: 和 resumeSchedulerAndActions: 一个动画。
ios - 无论如何要在动作开始后修改 CCMoveTo 的目的地?
我想移动一个节点并在移动完成后调用一个块。但有时我需要在节点移动时将节点移动到另一个位置(更改目标)。
我不能简单地停止上一个动作并开始新的动作,因为不会调用回调并导致状态不一致。
我可以采取行动,CCSequence *action = (id)[node getActionByTag:kMovingActionTag];
但我唯一能做的就是停止它并失去 CCCallBlock 行动。
这是改进的解决方案:
ios - CCAction:停止和运行
对于我的项目,我创建了一个跑步角色。目前,我正在尝试为角色实现不同的动画。
我决定创建 2 个不同的操作
1) CCAction *walkAction;
2) CCAction *jumpAction;
当角色应该跳跃时,我调用一个方法,[self stopAllActions];
然后让它[self runAction:jumpAction];
在角色着陆时,我调用 stopAllActions,然后运行 walkAction。
但是,由于某种原因,应用程序冻结了。我需要有关停止和运行操作的帮助,而不会导致应用程序崩溃!
谢谢!
cocos2d-iphone - 将 CCEaseOut 与 CCSequence 一起使用?
我希望我的动作有缓入/缓出的效果,但我已经有了 CCSequence。如果我把 CCEaseOut 放在我的代码前面,移动就会变得很奇怪。是否可以使用 CCSequence 制作 CCEaseOut/CCEaseIn ?这是我的代码:
提前致谢