如何使用 Cocos2d、SpriteBuilder 和 Objective-c 创建弹出窗口 window?
How can I create a pop-up window using Cocos2d, SpriteBuilder and Objective-c?
所以我正在尝试这样做:
http://blog.typpz.com/2013/12/09/ios-sdk-create-a-pop-up-window/
但是因为我没有使用 SpriteKit 我不能使用这个确切的方法。
我想应该有一种方法可以使用 sprite builders 图层选项创建同样的弹出 window 效果?然后使用一些现有的 CCAction 方法对其进行动画处理。不过我不确定,也不知道该如何弄清楚。
感谢任何帮助。
如您所说,一个简单的方法是创建一个 CCLayer
,并为其设置动画。
一旦你创建了一个 CCLayer
到你想要的 "popup" 的大小,然后添加了你想要放入其中的任何东西,你就可以开始动画了。
如果您想获得与您链接的教程中的动画类似的效果,最好的方法是结合使用 CCActionFadeIn 和 CCActionScaleTo。方便的是,Spritebuilder 的动画集有这两个可供使用,您可以在 Spritebuilder 中轻松设置关键帧动画,而无需太多代码。 (确保将动画序列命名为您可以轻松记住的名称,因为您需要在开始编码时重新参考它 - 我将其称为 "PopupAnimation" 或类似名称。)
完成此操作后,您所要做的就是从您的代码中调用动画。例如,如果我有一个 CCButton
,其选择器是 "showPopup",我会这样做:
func showPopup() {
self.animationManager.runAnimationsForSequenceNamed("PopupAnimation")
}
假设您已正确完成所有操作,现在将出现弹出窗口!但是现在你被屏幕上的弹出窗口困住了,没有出路。
要解决此问题,请制作另一个动画序列(我称之为 "RemovePopup"),这将从屏幕上删除弹出窗口。向 CCLayer
添加一个按钮,并将其选择器设置为 "hidePopup"。从您的代码中,您可以 运行:
func hidePopup() {
self.animationManager.runAnimationsForSequenceNamed("RemovePopup")
}
现在您有一个可以制作动画的 "popup" window!
所以我正在尝试这样做:
http://blog.typpz.com/2013/12/09/ios-sdk-create-a-pop-up-window/
但是因为我没有使用 SpriteKit 我不能使用这个确切的方法。 我想应该有一种方法可以使用 sprite builders 图层选项创建同样的弹出 window 效果?然后使用一些现有的 CCAction 方法对其进行动画处理。不过我不确定,也不知道该如何弄清楚。
感谢任何帮助。
如您所说,一个简单的方法是创建一个 CCLayer
,并为其设置动画。
一旦你创建了一个 CCLayer
到你想要的 "popup" 的大小,然后添加了你想要放入其中的任何东西,你就可以开始动画了。
如果您想获得与您链接的教程中的动画类似的效果,最好的方法是结合使用 CCActionFadeIn 和 CCActionScaleTo。方便的是,Spritebuilder 的动画集有这两个可供使用,您可以在 Spritebuilder 中轻松设置关键帧动画,而无需太多代码。 (确保将动画序列命名为您可以轻松记住的名称,因为您需要在开始编码时重新参考它 - 我将其称为 "PopupAnimation" 或类似名称。)
完成此操作后,您所要做的就是从您的代码中调用动画。例如,如果我有一个 CCButton
,其选择器是 "showPopup",我会这样做:
func showPopup() {
self.animationManager.runAnimationsForSequenceNamed("PopupAnimation")
}
假设您已正确完成所有操作,现在将出现弹出窗口!但是现在你被屏幕上的弹出窗口困住了,没有出路。
要解决此问题,请制作另一个动画序列(我称之为 "RemovePopup"),这将从屏幕上删除弹出窗口。向 CCLayer
添加一个按钮,并将其选择器设置为 "hidePopup"。从您的代码中,您可以 运行:
func hidePopup() {
self.animationManager.runAnimationsForSequenceNamed("RemovePopup")
}
现在您有一个可以制作动画的 "popup" window!