- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我目前正在使用 Spritekit 开发一款游戏。游戏的物体会在屏幕顶部生成并落向玩家角色,当玩家角色与任何物体发生碰撞时游戏结束。我正在尝试找到一种随着时间的推移逐渐加快游戏玩法的方法,使游戏变得更加困难(即游戏开始时物体以正常速度下落,5 秒后加速 50%,再过 5 秒后再加速 50%,无限次。)
我是否需要使用 NSTimer 进行倒计时以增加应用到下落物体的重力?抱歉,如果这是一件基本的事情,我是编程新手。
谢谢, jack
编辑:
我的敌人生成方法-
let spawn = SKAction.runBlock({() in self.spawnEnemy()})
let delay = SKAction.waitForDuration(NSTimeInterval(2.0))
let spawnThenDelay = SKAction.sequence([spawn, delay])
let spawnThenDelayForever = SKAction.repeatActionForever(spawnThenDelay)
self.runAction(spawnThenDelayForever)
还有我让敌人倒下的方法-
func spawnEnemy() {
let enemy = SKNode()
let x = arc4random()
fallSprite.physicsBody = SKPhysicsBody(rectangleOfSize: fallSprite.size)
fallSprite.physicsBody.dynamic = true
self.physicsWorld.gravity = CGVectorMake(0.0, -0.50)
enemy.addChild(fallSprite)
}
最佳答案
在 spawnEnemy()
中,您设置了 self.physicsWorld.gravity
。将此行移至您的 update:
方法。
如果您现在不跟踪游戏的持续时间,您将需要实现它。您可以使用 update:
方法的参数来完成此操作。
然后您可以使用游戏持续时间来改变重力。
例如,
override func update(currentTime: CFTimeInterval) {
if gameState == Playing{
//update "duration" using "currentTime"
self.physicsWorld.physicsBody = CGVectorMake(0.0, -0.50 * (duration / 10.0))
}
}
10.0
可以根据您希望重力增加的速度进行更改。数值越大,变化越小,数值越小,引力增加得越快。
希望这能回答您的问题。
关于ios - 有什么方法可以在 Swift 中逐渐加快游戏速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27679189/
我想要一个可以逐渐将页面底部的不透明度从 0 更改为 1 的函数。 我在元素的顶部使用了类似的功能,但我使用的不是淡入,而是淡出。创建它相当容易,但在页面底部使用设置的阈值淡入是一场噩梦。 经过研究,
li 状态是关闭和打开。 闭合:颜色为黑色(没有光照,相互折叠)。 打开:颜色为红色(有光,全视野)。 我希望颜色从两个元素之间的点开始淡化,以表明阴影从轴心开始,直到它们关闭。 $('button'
我的问题很简单: 1)我有一个扩展 JFrame 的主类。 2)该类内部有一个 JPanel,其顶部有一个 BufferedImage。 3)最后还有一个 JButton,我称之为“Fire”..这就
我有这个立方体,我想在延迟 3000 后将其转换为不同的 X 和 Y 点。我无法理解如何在 jQuery 的帮助下做到这一点。这是一个JS Fiddle .下面是代码。 JS // code for
我们如何向背景图像添加黑色阴影,阴影从不透明度 1 开始逐渐降低到不透明度 0,在图像的所有 4 个边上? (至少 50 像素值的“降低阴影不透明度”。box-shadow 仅提供少量不透明度逐渐下降
我是一名优秀的程序员,十分优秀!