问题标签 [cclayer]

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 投票
2 回答
357 浏览

iphone - 触摸由两层处理

我有一个CCLayer包含许多其他CCLayers (如文本项目等)。我CCLayer在左侧有另一个我想显示这些“场景”的缩略图。

左手CCScrollLayer应响应其范围内的触摸,而右手层中的元素应响应其各自范围内的触摸。

我看到的问题是,当我在右侧拖动一个图层时,CCScrollLayer左侧的响应和滚动。当我滚动滚动层时,右侧的元素不受影响。好像CCScrollLayer' 的边界太大了,这不是因为我什至故意将它们设置为 100 像素宽。在这里工作是否有无法解释的行为?

效果可见http://imageshack.us/photo/my-images/210/dragd.png/

0 投票
1 回答
345 浏览

timer - 定时器条件被传递两次,使用 cocos2d 调度器

我一生都无法弄清楚为什么会发生这种情况。我有一个从 CCLayer 派生的类。我在初始化类时像这样安排方法调用

方法是

但是,当我运行程序时,控制台语句显示每个冷却时间都通过了两次条件

012-06-29 09:52:57.667 测试游戏[5193:707] 播放空闲动画

2012-06-29 09:52:57.701 测试游戏[5193:707] 播放空闲动画

2012-06-29 09:53:05.750 测试游戏[5193:707] 播放空闲动画

2012-06-29 09:53:05.851 测试游戏[5193:707] 播放空闲动画

我正在尝试修复当我播放完空闲动画时游戏崩溃的错误,我确信这与它有关。

0 投票
2 回答
378 浏览

memory-management - 将 cclayer 传递给我的对象时的内存问题

我有一个 CCLayer,我想在其中添加许多按钮。我用这个初始化函数创建了 MyButton 类:

}

这个初始化函数会将按钮添加到图层中,并且我正在管理 MyButton 类中的所有行为(移动、图像更改)。

所以图层被发送到所有 MyButton 实例。在释放每个按钮之前,该层不会调用 dealloc 方法。

这些按钮通过数组添加到图层中:

我的问题是当我替换这个场景时,没有调用MyButton的dealloc方法,也没有释放内存,导致[_buttons release]在图层的dealloc方法中,也没有被调用,导致该层已传递给每个按钮。

一团糟。谁能告诉我解决此内存问题的最佳方法?

- 编辑

如果我在调用 replaceScene 之前尝试手动释放按钮数组,每个按钮都会调用 dealloc,但随后我收到以下错误消息:

0 投票
1 回答
570 浏览

iphone - 启用多点触控的 CCLayers,顶层不消耗触控

我有 2 个 CCLayer 堆叠在一起;两者都启用了触摸功能。我希望顶层 CCLayer 响应并消耗触摸,而底层不对顶层消耗的触摸做出反应。

顶层有一个 CCTouchBegan 方法,如下所示:

底层有一个 CCTouchesEnded 方法,如下所示:

结果是顶层根本不消耗触摸甚至响应它们。只有底层响应触摸。

0 投票
4 回答
3046 浏览

iphone - cocos2d中如何推送场景并传递参数

我想知道是否有办法在 cocos2d 2.0 中推送场景并将一些参数传递给这个推送的场景,例如,我知道要推送一个场景我使用这个:

这推动了helloworldlayer,这是一个简单的层:

但我想向该层传递一些参数,所以当层被推送时,我可以使用我传递的参数。

我该怎么做?

0 投票
1 回答
723 浏览

cocos2d-iphone - 在另一个之上添加 cclayer

我想在另一个之上添加一个 cclayer。我已经通过使用以下代码进行了尝试

但可能会有一些错误,因为当我尝试在 newLayer 上添加一些东西时,它说使用未声明的变量,即使在 .h 文件中也声明了它。

你能帮我详细的代码吗?

0 投票
1 回答
166 浏览

iphone - HUD 图层未添加到我的场景中

我有一个 CCScene,它已经保存了我的 gameLayer,我正在尝试在其上添加 HUD 层。但是 HUD 层没有添加到我的场景中,我可以这么说,因为我已经在 HUD 层上设置了 CCLabel,当我运行时我的项目,我看不到那个标签。

这就是我正在做的事情:在我的gameLayer中:

然后在我的 HUD 层中,我刚刚在它的 init 方法中添加了一个 CCLabelTTF,如下所示:

但是现在当我运行我的项目时,我看不到那个标签,我在这里做错了什么......?

有任何想法吗.. ?

在此先感谢您的时间。

0 投票
1 回答
76 浏览

iphone - 未在我的场景中添加新图层

我有一个 CCScene,它已经保存了我的 gameLayer,我正在尝试在其上添加 HUD 层。但是 HUD 层没有添加到我的场景中,我可以这么说,因为我已经在 HUD 层上设置了 CCLabel,当我运行时我的项目,我看不到那个标签。

这就是我正在做的事情:在我的gameLayer中:

然后在我的 HUD 层中,我刚刚在它的 init 方法中添加了一个 CCLabelTTF,如下所示:

但是现在当我运行我的项目时,我看不到那个标签,我在这里做错了什么......?

也没有调用 HUD 层中的 init 方法。

有任何想法吗.. ?

在此先感谢您的时间。

0 投票
1 回答
450 浏览

cocos2d-iphone - 2个CClayer之间的通信

//在类 Ah -> 代码中:

在 Am 类 -> 代码中:

//在 Bh 代码中:

//在 Bm 代码中:

通过这样做,所有这些东西我都可以从另一个类(即 B 类)添加 LHSprite,但不是它的主体。我应该做些什么改变来添加我添加的 LHSprite 的主体?

亲切的问候,堆栈。

0 投票
1 回答
691 浏览

ios - cocos2d 不能异步添加子

我需要从数据库中检索一些数据以显示在屏幕上。我想避免应用程序阻塞,因此在检索任何数据并添加数据之前显示下一个屏幕。

这是在屏幕上添加我需要的信息的方法:

generateInfoForPlayerWithId:tag:sender: 方法可能会阻塞,这就是我将它放在自己的线程中的原因。我在主线程中添加菜单,因为它是 UI 更新。

我确信 infoMenu 是正确的 CCMenu* 对象。

当我没有注释掉 // (1) 指示的行时,我得到一个 EXC_BAD_ACCESS。