在SpriteKit中产生敌人的波浪

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SpriteKit中产生敌人的波浪相关的知识,希望对你有一定的参考价值。

我实际上在做太空射击游戏。我有一个在随机位置随机产生敌人的函数:

let enemyShip = EnemyShip(enemyImage: enemyImageShip, life: enemyShipLife, nodeName: nodeNameEnemy, gameScene: game)
   enemyShip.definitionPhysicsBody()

    game.addChild(enemyShip)

    let spawn = ToolMaths.random(min: gameZone.minX + enemyShip.size.width, max: gameZone.maxX - enemyShip.size.width)
    enemyShip.position = CGPoint(x: spawn, y: game.size.height )
    let moveEnemyShip = SKAction.moveTo(y: 0, duration: 1.8)

     let removeEnemyShip = SKAction.removeFromParent()

    let enemyShipSequence = SKAction.sequence([moveEnemyShip, removeEnemyShip])
    enemyShip.run(enemyShipSequence)

现在我想创建一个波浪系统,如:

波1:一个敌人产生波2:两个敌人产生波3:三个敌人等

我怎样才能做到这一点 ?谢谢

答案

我想,控制和流动是你正在寻找的东西。

他们会让你预先确定在一个波浪中创造了多少敌人,你有多少波,以及后续波中敌人之间的差异。

可以这样想:

If Wave = 1, Enemies = 1
When Wave Finished, Wave = Wave + 1
If Wave = 2, Enemies = Enemies + Wave
When Wave Finished, Wave = Wave + 1
If Wave = 3, Enemies = Enemies + Wave

这会给你:

  • 第1波与1敌人
  • 波2与3个敌人
  • 第3波与6个敌人

Swift有几种方法可以控制游戏的流程。每个都有自己的优点,每个都可以使用......这几乎是个人的选择。你可以在这里阅读它们:

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/ControlFlow.html

以上是关于在SpriteKit中产生敌人的波浪的主要内容,如果未能解决你的问题,请参考以下文章

WKWebView与js交互中产生的内存泄漏

如何减少在 Swift spritekit 中创建更多敌人的时间?

在SpriteKit中跟随的敌人会加班加点

在屏幕上的 3 个特定位置生成敌人 Swift SpriteKit IOS

SpriteKit(Swift)敌人没有被删除/敌人和子弹似乎没有联系

SpriteKit - 如何检测使用触摸影响哪个节点?