- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的 SpriteKit 游戏中有几个 SKSpriteNode,例如暂停背景和游戏结束场景以及按钮。现在,我在 didMoveToView
中声明并添加它们,并使用如下内容:
let pauseButton = SKSpriteNode(imageNamed: "pauseButton")
let pauseBackground = SKSpriteNode (imageNamed: "pauseBackground")
let resumeButton = SKSpriteNode (imageNamed: "resumeButton")
然后,我正在初始化它们:
self.pauseButton.anchorPoint = CGPointMake(0.5, 0.5)
self.pauseButton.position = CGPointMake(CGRectGetWidth(self.frame) - self.cookieSpot / 3, CGRectGetMaxY(self.frame) - self.cookieSpot / 3)
pauseButton.size = self.pauseButton.size
pauseButton.name = "pauseButton"
pauseButton.zPosition = 1000
pauseBackground.position = CGPoint(x: self.size.width / 2, y: self.size.height / 2)
self.pauseBackground.hidden = true
self.pauseBackground.name = "pauseBackground"
self.pauseBackground.zPosition = +1
resumeButton.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMinY(self.frame) + self.resumeButton.size.height * 2 + self.resumeButton.size.height - self.resumeButton.size.height / 4)
self.resumeButton.hidden = true
self.resumeButton.name = "resumeButton"
self.resumeButton.zPosition = +1
然后添加它们:
self.addChild(pauseBackground)
self.addChild(resumeButton)
self.addChild(gameOverBackground)
当不需要它并且当用户点击暂停按钮时,我正在尝试使用这样的东西:
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
switch self.nodeAtPoint(location) {
case pauseButton:
self.pauseBackground.hidden = false
self.resumeButton.hidden = false
self.scene?.view?.paused = true
case resumeButton:
self.pauseBackground.hidden = true
self.resumeButton.hidden = true
self.scene?.view?.paused = false
default:
println("not good")
}
}
那根本不适合我。我猜他们正在产卵,但他们是看不见的。如何在不需要节点时存储这些节点并在适当的时候生成它们?
最佳答案
添加节点在 runloop 结束时完成并且您在此之前暂停了 View ...我想问题与此有关(对其进行了测试,我得到了相同的结果)。在 Obj-C 中,一个简单的解决方法是使用 performSelector描述的方法 here .在 Swift 中它变得更棘手,你应该使用类似 dispatch_after 的东西或者使用类似 this 的东西(使用 NSTimer)。希望这个对你有帮助。这也不是一个确定的答案,对于同一个问题可能有更多的解决方案。
编辑:
我刚刚发现可行 solution (暂停在某些方法中移动):
func pauseGame()
{
self.scene?.view?.paused = true
}
然后在touchesBegan中调用
self.runAction(SKAction.runBlock(self.pauseGame))
您的 touchesBegan 应该看起来像这样:
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
switch self.nodeAtPoint(location) {
case pauseButton:
self.pauseBackground.hidden = false
self.resumeButton.hidden = false
self.runAction(SKAction.runBlock(self.pauseGame))
case resumeButton:
self.pauseBackground.hidden = true
self.resumeButton.hidden = true
self.scene?.view?.paused = false
default:
println("not good")
}
}
}
关于ios - 如何在需要时生成 SKSpriteNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29402611/
是否可以仅在点击 anchor 时为其分配 url? Token Link 当点击 anchor 时,它将转到 http://example.com/token=xxxxx/ 我只想在单击时生成 to
我不能 100% 确定我的错误。当我尝试生成 PDF 时,我得到了此编码输出: %PDF-1.4 %���� 3 0 obj <> /Contents 4 0 R>> endobj 4 0 obj <
下面的代码有几个函数,这些函数允许诸如将数据写入文档、读取文档以及将数据放入数组中以用于稍后的 JTable 等操作。 package tabletest.populatetable; import
我检查了我的网站 (WordPress) 应用程序的页面源并发现了以下内容 <iframe src="https://www.google.com/recaptcha
我有一个最终会生成 OutOfMemory 的程序。程序代码为: public class VeryLargeObject implements Serializable { public s
所以我正在构建一个博客引擎,它具有/articles/then-the-article-permalink 作为 URL 结构。我需要有 prev 和 next 链接,它们将通过 pub_date 跳
我有这个列表: string[] countries = { "USA", "CANADA" }; 当我运行这个查询时: query = (from user
我有一个将 InputStream 作为 InputStreamResource 返回的方法,当我让 swagger 生成文档时,它说返回类型是 InputStreamResource。如何更改此设置
令人惊讶的是,我找不到关于这个主题的任何内容。当在 EditText 中检测到“@”时,动态生成 ListView 的方法是什么。这是一个例子: 这是我目前所拥有的: textfield.setOn
我发现 Menhir 提供了 --dump 和 --explain 选项,它对调试有很大帮助。但是如何在 ocamlbuild 下启用这些选项,以便 Menhir 在编译时始终生成转储文件? 我尝试编
您好,我正在寻找使用 ajax 提交表单时在 codeigniter 中重新生成 csrf token 的过程。我希望在不刷新页面的情况下重新生成 token 。有没有办法做到这一点。 最佳答案 根据
int main(void) { float a; scanf("%f", &a); double c = sqrt(a); printf("%f", c);
我有看起来像这样的 Hibernate 实体(省略了 getter 和 setter): @Entity public class EntityA { @ManyToOne(fetch = F
我正在使用 git 来跟踪 wireshark project .我想提交一个补丁,但是所需的格式是以下输出(参见 http://www.wireshark.org/develop.html ): s
Spring 最近发布的关于在 Spring Boot 项目中使用静态 Web 内容的博文 (https://spring.io/blog/2013/12/19/serving-static-web-
我正在尝试设置我的测试环境,其中包括 React 测试库、Redux 工具包、RTK 查询和 TypeScript,但我遇到了一个我无法解决的问题。 我想不通的主要问题是如何生成 AppDispatc
我正在尝试将使用 Microsoft Access 数据库的网站移植到 MySQL。首先,我尝试打开 SQL 数据库: (旧)访问代码是: Set cn = Server.CreateObject (
我正在运行一个基本上从 Twitter 中提取推文的 Flask 应用程序。虽然使用嵌入式 Flask 服务器运行应用程序没有问题,但在 gUnicorn 中运行时我收到重复的推文,主要是因为我有 2
我正在学习 Python-这给了我一个 IO 错误- f = open('money.txt') while True: currentmoney = float(f.readline())
我想生成 N 个随机点,其乘积为某个值 1。 我在 MATALB 中是这样做的: N_=10; x1_=rand(1, N_); p_=prod(x1_); x_=x1_; x_(end)=x1_(e
我是一名优秀的程序员,十分优秀!