菜鸟教程小白 发表于 2022-12-12 21:51:30

ios - self.scene.view.paused = YES 在更新中


                                            <p><p>我正在制作一个游戏,其中当 2 个对象(对象 A 和 B)发生碰撞时,游戏结束。每次调用 update 时,对象 A 的位置都会发生变化。对象 B 的位置是相同的。代码是:</p>

<pre><code>[self enumerateChildNodesWithName:@&#34;objA&#34; usingBlock:^(SKNode *node, BOOL *stop) {

    if ()
    {

      ;
      ;

    }
</code></pre>

<p>问题是:我希望 objA 在碰撞后不会消失。因此,为此我删除了 <code>;</code> ,但是因为 update 被一次又一次地调用。我的节点数量增加了,我添加的声音似乎永远不会结束。所以,我尝试的是添加:</p>

<pre><code>;

-(void) pauseGame
{
self.scene.view.paused = YES;

;   

}
</code></pre>

<p>我不得不延迟使用 <code>performSelector</code>,因为将 <code>self.scene.view.paused = YES;</code> 放在更新中不会让我去 <code>游戏结束</code>。但是,我不希望有任何延误!有没有办法做到这一点??</p>

<p>谢谢</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>只需在场景中使用一个状态变量来指示当前状态。
使用此状态对场景对象运行更新。</p>

<p>例如(伪代码):</p>

<pre><code>update()
   if (state == GAME_PLAY) {
         // Update relevant game nodes
   } else if (state ==GAME_OVER) {
         // Update only what needs to be updated when the game is over
   }
</code></pre>

<p>这样您就不需要停止整个场景并只添加与当前游戏状态相关的内容</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - self.scene.view.paused = YES 在更新中,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23358216/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23358216/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - self.scene.view.paused = YES 在更新中