问题标签 [ccsprite]

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 投票
3 回答
2727 浏览

iphone - cocos2d精灵碰撞

我有一个 CCSprite 数组,它们同时显示。每个精灵都有一个移动路径,移动路径是屏幕上的一个随机点。

所有的精灵都同时移动到屏幕上的随机点。

我想要做的是检测精灵之间的碰撞,然后改变它们的运动路径。

是否可以?

0 投票
1 回答
273 浏览

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

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

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

0 投票
1 回答
672 浏览

ios - CCSprite 在边框周围有奇怪的白色像素

我的 iPhone 游戏在 cocos2d 中遇到了一个奇怪的问题。我创建了一个PNG文件,如下所示

MyBalls.png 64x64 像素

在 cocos2d 中,我使用 CCSpriteSheet 来获取每个带有 PNG 文件的球。在那之前它运作良好。

然而,奇怪的是,在 iPhone 的屏幕上,球的边框周围有奇怪的白色像素,如下图所示

在此处输入图像描述

我在网络上做了很多研究。但是像使用 TexturePacker 或重置 glBlendFunc 这样的每一个建议都不起作用:(

你有什么主意吗?

更新:我尝试使用只有一个球的单独 PNG 文件的普通 CCSprite,问题仍然存在!我想我必须配置 cocos2d 源代码以使其工作。

0 投票
1 回答
829 浏览

ios5 - cocos2d iphone问题中的PNG透明度

我刚刚开始在 iphone 上进行 cocos2d 开发。我遇到的一个问题是,当我将 CCSprite 添加到我的场景中时,它在 .png 文件的边缘周围不是透明的,而是显示为白色。

例如,我在头文件中定义了 CCSprite -

然后当我初始化我的场景时 -

这段代码有什么问题吗?

谢谢你的帮助。

PS 我已经在 Photoshop 中仔细检查了我的 .png 文件,并且它正确地显示为应该是透明的。

0 投票
1 回答
225 浏览

cocos2d-iphone - 使用具有两种不同像素格式的纹理

我不确定您何时想要这样做(可能是从低质量预览 -> 高质量图像移动时),但无论如何 Cocos2D 纹理缓存不允许您使用具有两种不同纹理格式的图像。

有没有解决的办法?

0 投票
1 回答
3000 浏览

cocos2d-iphone - 像 CCSprite 对象一样移动 Box2d 实体

在 cocos2d 中,您可以在 CCSprites 中缓和并以各种方式移动它们。最重要的是 - 他们可以缓进/缓出。对于大多数游戏来说,这对于平滑移动等来说是可取的。

移动 box2d 主体时,附加到它的精灵在 box2d step() 之后更新。移动精灵然后更新身体在这里不是一个选择,因为它完全违背了物理框架的目的。

因此,我已经成功实现的另一个选项是通过将精灵本身视为一个力学实体来计算精灵的位移、速度和加速度。每次我在 sprite 上调用我的 update() 以便角色可以决定移动的位置等时,我的超类也会存储之前的位置和速度。这些通过除以 PTM_RATIO 存储为符合 box2d 的值。

在 CCSprite 的子类中,称为 FMSprite:

然后,我将“FMSprite”子类化为“FMObject”,其中存储了 b2Body 等。

为了移动身体,我必须首先移动一个精灵并跟踪它的加速度,通过它我可以找到跟随精灵运动所需的力(使用质量)。由于我无法移动对象的精灵(与身体同步),我制作了另一个名为“信标”的精灵,将其作为子对象添加到对象中,然后移动它。然后我们需要做的就是使用我之前提到的力使 box2d 主体的位置与这个信标精灵同步。

结果非常出色,b2body 的平滑缓动运动可以随心所欲地移动,无需使用任何自身的力,而是复制 CCSprite 的力并复制其运动。由于都是力,所以在与其他 b2Body 对象碰撞时不会引起抖动和失真。如果有人有任何其他方法可以做到这一点,请发布答案。谢谢!

0 投票
1 回答
311 浏览

android - Cocos2D-Android 中 Cocos2D-iOS CCNode.visit() 的 Android 等价物?

我的 iOS Coco2D 游戏中有以下代码:

在 Coco2D Android 中,我写道:

我应该在访问方法中写什么作为参数?

0 投票
1 回答
753 浏览

objective-c - 检查 CCSprite 是否存在,在 CCScene 中添加和删除,并循环直到满足条件

我目前正在开发一款游戏,在该游戏中我将 CCSprite 添加到场景(动画幽灵)中,并让它从随机生成的点移动到另一个随机生成的点,淡出,然后从场景中移除。当玩家点击幽灵时,分数会加 1。

一切都很顺利,但我希望重复此操作,直到满足条件(特别是当分数达到 50 时)。我想不出最好的方法来做到这一点。每次我尝试运行循环时,它都会无限重复并导致游戏崩溃。

实现这种循环的最佳方法是什么?我听说过为精灵创建数组,但一次在场景中只会出现一次幽灵的迭代。有没有其他方法可以实现这一目标?

理想情况下,我想要实现的是:运行动作,等待它们完成,然后再次运行它们,直到得分为 50。

这是我的代码:

用于生成精灵:

'ghostSpawner' 函数在我的场景中的'init' 中被调用

我希望这已经足够了。任何反馈都会很棒,因为这是我第一个真正的 iPhone 项目之一。提前致谢!

0 投票
1 回答
924 浏览

animation - 仅在设备上移动时带有 CCAnimation 跳过的 Cocos2d 精灵

我编写了一个在模拟器上完美运行的演示应用程序,但是当我将它放在实际设备上时,骰子会跳来跳去。这是一个视频作为示例。重新启动应用程序后,动画很好。错误发生在重复按下滚动按钮大约 1 分钟的时间。

http://youtu.be/N1k1QPa1brg

代码全部位于:

https://github.com/rnystrom/MartionDemo 我如何在骰子对象中制作动画:

滚动功能:

0 投票
2 回答
469 浏览

cocos2d-iphone - Cocos2D - 带有转置精灵的高效精灵表

我刚刚开始在 Cocos2D 中使用精灵表,以尝试更好地利用纹理内存,并且生成我的资产的艺术家有一个脚本,他用于 Unity3D 中的一些以前的游戏。该工具拍摄了许多图像,删除了透明和空白区域并将它们塞进了地图集中。它返回文本文件中每个精灵的“位置”和“uvs”。该工具所做的一件我们似乎无法禁用的事情是它转置了一些精灵以更好地适应它们。

我想从 Cocos2D 中的 plist 文件加载动画。在将帧加载到纹理缓存中时,有什么方法可以将它们转回正常状态?如果不是,我将如何在将单个帧加载到 CCAnimation 后转置它们?

如果这些都不起作用,我将把所有转置的精灵剪切并粘贴到更多的图集中,并使用一些额外的纹理内存来处理。