如何杀死多次点击的精灵?

时间:2018-03-14 23:36:12

标签: ios swift sprite-kit

我试图用不同的敌人制作一个射击游戏,而我试图杀死一个有多个命中的老板,但我无法看到我是如何做到的。有人可以向我解释一下吗?

3 个答案:

答案 0 :(得分:3)

问题在于你在projectileDidCollideWithBoss内跟踪老板的健康状况,但每次调用该功能时你都会将老板的健康状况设置为10(这意味着它将获得的最低值是9)。您需要跟踪函数外部的monsterhp,并在每次调用碰撞函数时减少它。您可以像Dan Karbaye所建议的那样,让老板成为具有健康属性的SKSpriteNode的子类。你也可以让monsterhp成为场景的属性,但如果你需要做很多事情,你的场景会开始变得凌乱,所以从长远来看,将SKSpriteNode子类化是一个更好的解决方案。

答案 1 :(得分:1)

<强>去除: 推荐的常用方法是:当您检测到应删除节点时(从冲突检测代码中)将其添加到删除列表中,并在<?php include('includes/config.php'); if(isset($_POST["submit"])){ $empid=$_POST["empid"]; $pass=$_POST["password"]; $query=mysqli_query($conn,"SELECT employee_id, fname,lname,empid,password, status, role FROM employee where empid='$empid' and password='$pass'"); $row=mysqli_fetch_array($query); if(is_array($row)) { session_start(); $_SESSION["empid"]=$empid; $_SESSION["role"]=$row["role"]; $_SESSION["eid"]=$row["empid"]; $_SESSION["status"]=$row['status']; $_SESSION["employee_id"]=$row['employee_id']; $_SESSION['uname']=$row['fname']." ".$row['lname']; if($_SESSION["role"]=='admin' && $_SESSION["status"]>0){ $_SESSION['alogin']=$_POST['empid']; header("Location:admin/home.php"); } elseif($_SESSION["role"]=='TL' && $_SESSION["status"]>0){ $_SESSION['tlogin']=$_POST['empid']; header("Location:TL/home.php"); } else{ $_SESSION['emplogin']=$_POST['empid']; header("Location:home.php"); } } else{ echo "<script>alert('Invalid login details');</script>" // this is not working header("Location:index.php"); } } ?> didFinishUpdate中删除此列表中的每个对象。

数据管理: 现在,如果需要将某些数据附加到节点,请将其类型子类化并添加适当的属性和方法。

答案 2 :(得分:0)

更新我的回答我刚刚创建了一个代表老板生活的变量

var vieboss = 10

我还创建了一个设置杀死老板的功能

func bossdead(projectile: Projectile!,boss1 : Boss!) {

    print("Hit boss")
    projectile.physicsBody?.isDynamic = false
    projectile.physicsBody?.categoryBitMask = 0
    projectile.removeFromParent()

    vieboss1 -= 1

    if (vieboss1 == 0) {

        monstersDestroyed += 10
        boss1.physicsBody?.isDynamic = false
        boss1.physicsBody?.categoryBitMask = 0
        boss1.removeFromParent()
    }
}

当射弹击中老板时调用函数bossdead