问题标签 [cocosbuilder]
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.
android - ios和android的Cocos2d-x和CocosBuilder多分辨率
我按照以下链接中的说明进行操作,无需 cocosBuilder 即可在 ios 平台上进行多分辨率工作。 http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Multi_resolution_support
当我使用 cocosbuilder ccbi 文件时,ipad 屏幕上显示的图像仍然是 iphone 图像。
cocosbuilder这样发布资源目录
但似乎 cocos2d-x 没有从正确的目录中为正确的分辨率选择正确的图像。
这是我在代码中的资源设置。我在 ipad 3 上用高清测试它。
cocos2d-iphone - cocos2d Mac 在运行时关闭和启动
我们正在构建一个内容编辑器,它会在一个“cocos Player”中NSWindow
进行测试。用户可以测试一些内容,然后关闭窗口。
所以我需要能够关闭 cocos 并在同一个应用程序中重新启动。
CC_MAC_USE_DISPLAY_LINK_THREAD
如果我使用线程模型,一切正常。我必须进行修复才能使其CCDirectorMac
正常工作。在CCDirectorMac | stopAnimation
我必须设置为_runningThread
,nil
因为它没有被设置为零#if
并且#elif
使用时CC_MAC_USE_DISPLAY_LINK_THREAD
。
无论如何,现在我可以“结束”一个导演,然后再重新开始,没有任何问题。
不过我的问题是:如果我正在构建一个偶尔使用 cocos2D 的 AppKit 编辑器,我的线程模型真的会CC_MAC_USE_MAIN_THREAD
按照文档中的建议吗?
当我使用时,我CC_MAC_USE_MAIN_THREAD
会挂断stopAnimation
电话:
CVDisplayLinkStop(displayLink);
我认为主线程会很好,并且可以避免我们工具的线程问题。性能不是问题。我找不到任何关闭并重新启动 cocos2d 的示例代码NSWindow
......所以我在这里的假设是我处于未经测试的水域(或很少经过测试的水域)。
我关闭/重启的步骤是:
- 称呼
[[CCDirector sharedDirector] end]
- 这叫
stopAnimation
- 然后按照我最初的方式重新初始化 cocos2d
任何关于 Mac 桌面应用程序线程模型的建议......以及为什么CVDisplayLinkStop
挂起将不胜感激。
提前致谢。
cocos2d-x - CocosBuilder 中自定义 CCTableViewCell 的 CCBMemberVariableAssigner 回调不起作用
我的目标是通过 CocosBuilder 设计一个 CCTableViewCell 并通过 CCBReader 加载它。
到目前为止我的步骤:
我在 cocosbuilder 中添加了一个新的非全屏 CCNode TestCell.ccb,将根的自定义类设置为TestCell
并添加了一个 CCSprite 作为根子级,同时将其doc-root-var设置为bg
.
我的问题:在实现加载器TestCellLoader
以及 Cell之后,根本没有调用TestCell
回调函数
。TestCell::onAssignCCBMemberVariable
我尝试了什么:到目前为止,使用 aCCLayerLoader
而不是 a对我有用,这是我第一次使用 a所以也许我错过了一个关键点。CCNodeLoader
CCNodeLoader
谢谢你,曹!本
以下是代码:
TestCellLoader.h
TestCellLoader.cpp
测试细胞.h
测试细胞.m
iphone - cocos2d/cocosbuilder 的Bug:为什么timeline 0(sequenceId) 会自动运行?
这是我的工具:CocosBuilder-2.1/CCBReader-2.1/cocos2d-iphone-2.0
我创建了TestNode.ccb
(根对象是 CCNode),在其中我创建了 2 个时间线,@"t0name"
(2s 长)和@"t1name"
(2s 长),根节点设置为自定义类TestNode
我创建了TestNode.h
:
这是TestNode.m
:
还有一个主层(TestScene.h/.m
),在这个场景中我会添加CCNode
一些其他的东西......
正常情况:
在主层的onEnter(
) 中,我添加了一个实例TestNode
并命名为 playAnimation,根据上面的代码,命名的时间线@"t0name"
将永远播放,实际发生的情况与我的假设相同。
奇怪的情况:在主层中onEnter()
,我添加了一个实例TestNode
并调用它playAnimation
,并调度了一个函数[self schedule:@selector(changeTestNodeCondition) interval:1.0];
this function( changeTestNodeCondition
)只是将TestNode
'条件设置为YES,根据上面的代码,@"t0name"
将播放一次名为的时间线(t0'
长度为2s ),然后命名的时间线@"t1name"
将播放一次,然后控制台将打印“t1played”,一切都停止了,但发生的事情是:
- 时间线命名
@"t0name"
播放一次 - 时间线命名
@"t1name"
播放一次 - 控制台打印“t1played”
- 时间线命名
@"t0name"
再次播放 - 控制台再次打印“t1played”
为什么会发生第 4 步?它导致completedAnimationSequenceNamed:(NSString *) name
再次调用并再次控制台打印“t1played”(步骤 5)
我检查了TestNode.ccb
,两个时间线都没有链接的时间线,两个时间线都未选中自动播放,@"t0name"
有sequenceId 0
,@"t0name"
有sequenceId 1
,timeline 0
自动播放???为什么???
我做了另一个有趣的实验:我将时间轴@"t0name"
序列 ID 更改为 1,将时间轴@"t1name
序列 ID 更改为 2(直接使用任何文本编辑器编辑 ccb 文件),发生以下事情:
- 名为@“t0name”的时间线播放了一次
- 名为@"t1name" 的时间线播放了一次
- 控制台打印“t1played”
- 控制台打印“t1played”一次又一次……死循环
我猜在这种情况下CCAnimationManager
尝试播放timeline 0
,但timeline 0
不存在所以看不到动画,但调用“播放”操作然后completedAnimationSequenceNamed:(NSString *) name
调用!
cocos2d-iphone - CocosBuilder2.1,如何修复我的 iPhone 5 屏幕程序
我的程序图片:
我尝试将 iPhone 5 分辨率支持添加到我的 CocosBuilder:
查看->编辑分辨率...->添加预定义分辨率->iPhone 5 横向->确定
我还使用百分比来设置我的内容位置和大小
我还在 xcode 中添加了一个 Default-568@2x.png 图像,但我的 CCSprites 和所有图像的大小在模拟器上仍然看起来像 480x320,如上面的链接所示。
有什么解决办法吗?
c++ - cocos2d-x中如何以自定义类为根节点访问子ccb文件中的变量
假设我有两个 ccb 文件
- 好友列表.ccb
- 朋友.ccb
FriendList.ccb关联一个名为 的类FriendList
,它会从这个 ccb 文件中读取节点,代码如下:
Friend.ccb与一个自定义类名Friend
和一个名为FriendLoader
. 它还可以包含自己的变量,例如CCLabelTTF
, CCSprit
。
而在FriendList.ccb中,它可以包含许多Friend.ccb作为子 ccb 文件。
在这些定义之后,我现在假设 FriendList.ccb中有两个Friend.ccb,分别命名为and ,并且在Friend.ccb中有一个name 。m_friend1
m_friend2
CCLabelTTF
m_friend_name
我在FriendList.cppFriend
中使用以下代码加载了两个实例:
并在Friend.cppCCLabelTTF
中使用以下代码加载 的实例:
通过这些工作,我可以访问m_friend1
并m_friend2
成功,但是访问时m_friend1->m_friend_name
,我得到了EXC_BAD_ACCESS
.
那么如何访问子 ccb 文件中的变量呢?
architecture - 无法在选定的目标上运行 - 切换到支持该架构的目标以运行选定的软件
所以我目前在我的项目中使用 CocosBuilder 并且必须导入 CCBReader 才能这样做。我在我的 App Delegate 中推送了 mainmenu.ccbi 文件——该项目编译但甚至没有运行。我收到错误:无法在选定的目标上运行--切换到支持该架构的目标以运行选定的软件。
我相信我正确地实现了 CCBReader 和 Cocos Builder。我是吗?任何想法为什么它不起作用?
这是我的应用委托代码:
这是针对 iPhone 模拟器的。
iphone - Cocos2D / CocosBuilder 纹理图集内存使用
我是 Cocos2D 和 CocosBuilder 的新手,我有一些关于内存使用的问题。
1)在 CocosBuilder(或 Cocos2D)中,如果我对同一场景中的所有 CCSprite 对象使用相同的纹理图集(spritesheet),是否会比每个精灵的单独纹理节省内存使用?准确地说,如果我使用一个 4k*4k 纹理,游戏是否只需要一个纹理图集的内存(例如 4k * 4k * 32 位)?
2) 我可以为不同的精灵使用不同的纹理模式来节省内存吗?例如,对背景图像使用无 alpha 模式。换句话说,Cocos2D 能否在同一个场景中处理不同的纹理模式?
3)我必须在一个场景中实现一个包含大约 100 个对象的游戏,总共三个场景。现在,同一场景中的所有对象都使用相同的 spritesheet。尽管如此,在场景之间切换几次后游戏还是崩溃了。每次我收到内存警告信息。解决此问题的最佳方法是什么?我试图转储所有这些缓存,但仍然崩溃。
非常感谢!
cocos2d-iphone - CocosBuilder 将文件添加到现有项目
我有一个现有的 CocosBuilder 项目,我希望向它添加图像 (png)。我尝试在项目目录中添加图像,但它没有显示在项目中,但新目录会显示。还尝试直接拖放到项目中。
这可能吗?只是似乎无法找到一种方法来做到这一点。谢谢!
cocos2d-iphone - 使任何给定的 CCNode 实例对触摸具有反应性
所以在我的项目中,我使用 Cocos2D 和 CocosBuilder。我已经将我的一些角色指定为带有子 CCSprite 等的 CCNode 的子类。
我希望这些 CCNode 能够对触摸做出反应——例如,如果我触摸其中任何一个,它们就会播放上下文相关的动画。我只想知道如何使节点对触摸产生反应(或者,让层对触摸产生反应,以检测您是否触摸了精灵),动画部分很好。
有任何想法吗?那将是可爱的。
山姆