示例#1
0
 public void AddScoreBonus()
 {
     if (CheckUpdate())
     {
         Round++;
         FirstSceneControllerBase.GetFirstSceneControllerBase().Update();
     }
 }
示例#2
0
 public void SubScore()
 {
     Score -= 10;
     if (Score < 0)
     {
         FirstSceneControllerBase.GetFirstSceneControllerBase().SetGameStatus(GameStatus.Lose);
     }
 }
示例#3
0
    // Use this for initialization
    void Start()
    {
        GameObject plane = Instantiate(planePrefab);

        plane.transform.position = new Vector3(0f, 0f, 70f);

        gameStatus   = GameStatus.Play;
        SceneStatus  = SceneStatus.Waiting;
        uerInterface = FirstSceneControllerBase.GetFirstSceneControllerBase() as IUserInterface;
        queryStatus  = FirstSceneControllerBase.GetFirstSceneControllerBase() as IQueryStatus;
        changeScore  = FirstSceneControllerBase.GetFirstSceneControllerBase() as IScore;
    }
    public void SendUFO(List <GameObject> usingUFOs)
    {
        inUseUFOs = usingUFOs;
        Reset(Round);
        for (int i = 0; i < usingUFOs.Count; i++)
        {
            usingUFOs[i].GetComponent <Renderer>().material.color = ufoModel.UFOColor;

            var startPos = ufoModel.startPos;
            usingUFOs[i].transform.position = startPos;

            FirstSceneControllerBase.GetFirstSceneControllerBase().SetSceneStatus(SceneStatus.Shooting);
        }
    }
示例#5
0
 public void AddScore()
 {
     if (count == 2 || count == 5)
     {
         Score += 20;
     }
     else
     {
         Score += 10;
     }
     if (CheckUpdate())
     {
         Round++;
         FirstSceneControllerBase.GetFirstSceneControllerBase().Update();
     }
 }
示例#6
0
 private void Update()
 {
     if (inUseUFOs != null)
     {
         for (int i = 0; i < inUseUFOs.Count; i++)
         {
             if (inUseUFOs[i].transform.position.y <= 1f)
             {
                 FirstSceneControllerBase.GetFirstSceneControllerBase().DestroyUFO(inUseUFOs[i]);
                 FirstSceneControllerBase.GetFirstSceneControllerBase().SubScore();
             }
         }
         if (inUseUFOs.Count == 0)
         {
             FirstSceneControllerBase.GetFirstSceneControllerBase().SetSceneStatus(SceneStatus.Waiting);
         }
     }
 }
示例#7
0
    void OnGUI()
    {
        GUIStyle textStyle = new GUIStyle();

        textStyle.fontSize = 40;
        if (totalTime >= 0)
        {
            GUI.Label(new Rect(x + 10, y - 100, -100, 100), "倒计时:" + (int)totalTime + "s", textStyle);
        }
        else if (totalTime >= -3)
        {
            GUI.Label(new Rect(x + 10, y - 100, -100, 100), "倒计时:0s", textStyle);
        }
        else if (totalTime < -3)
        {
            FirstSceneControllerBase.GetFirstSceneControllerBase().SetGameStatus(GameStatus.Lose);
        }
        totalTime -= Time.deltaTime;
    }
示例#8
0
    public void SendUFO(List <GameObject> usingUFOs)
    {
        inUseUFOs = usingUFOs;
        Reset(Round);
        for (int i = 0; i < usingUFOs.Count; i++)
        {
            usingUFOs[i].GetComponent <Renderer>().material.color = ufoModel.UFOColor;

            var startPos = ufoModel.startPos;
            usingUFOs[i].transform.position = new Vector3(startPos.x, startPos.y + i, startPos.z);

            Rigidbody rigibody;
            rigibody = usingUFOs[i].GetComponent <Rigidbody>();
            rigibody.WakeUp();
            rigibody.useGravity = true;
            rigibody.AddForce(ufoModel.startDirection * Random.Range(ufoModel.UFOSpeed * 5, ufoModel.UFOSpeed * 8) / 5,
                              ForceMode.Impulse);

            FirstSceneControllerBase.GetFirstSceneControllerBase().SetSceneStatus(SceneStatus.Shooting);
        }
    }
示例#9
0
 private void Update()
 {
     if (inUseUFOs != null)
     {
         for (int i = 0; i < inUseUFOs.Count; i++)
         {
             if (inUseUFOs[i].transform.position == target)
             {
                 FirstSceneControllerBase.GetFirstSceneControllerBase().DestroyUFO(inUseUFOs[i]);
                 FirstSceneControllerBase.GetFirstSceneControllerBase().SubScore();
             }
             else
             {
                 inUseUFOs[i].transform.position = Vector3.MoveTowards(inUseUFOs[i].transform.position, target, 5 * Time.deltaTime);
             }
         }
         if (inUseUFOs.Count == 0)
         {
             FirstSceneControllerBase.GetFirstSceneControllerBase().SetSceneStatus(SceneStatus.Waiting);
         }
     }
 }
示例#10
0
    public void SendUFO(List <GameObject> usingUFOs)
    {
        inUseUFOs = usingUFOs;
        Reset(Round);
        Color UFOColor;

        for (int i = 0; i < usingUFOs.Count; i++)
        {
            int Ran = Random.Range(0, 3);
            if (Ran < 1)
            {
                UFOColor = Color.red;
            }
            else if (Ran < 2)
            {
                UFOColor = Color.blue;
            }
            else
            {
                UFOColor = Color.green;
            }
            usingUFOs [i].GetComponent <Renderer> ().material.color = UFOColor;
            float RanX = Random.Range(-5f, 5f);
            print(RanX);
            Vector3 startPos       = new Vector3(RanX, 3f, -15f);
            Vector3 startDirection = new Vector3(-RanX, 8f, 3f);
            usingUFOs[i].transform.position = new Vector3(startPos.x, startPos.y + i, startPos.z);

            Rigidbody rigibody;
            rigibody = usingUFOs[i].GetComponent <Rigidbody>();
            rigibody.WakeUp();
            rigibody.useGravity = true;
            rigibody.AddForce(startDirection * Random.Range(ufoModel.UFOSpeed * 5, ufoModel.UFOSpeed * 8) / 5,
                              ForceMode.Impulse);

            FirstSceneControllerBase.GetFirstSceneControllerBase().SetSceneStatus(SceneStatus.Shooting);
        }
    }
示例#11
0
    public void SendUFO(List <GameObject> usingUFOs)
    {
        inUseUFOs = usingUFOs;
        Reset(Round);
        Color UFOColor;

        for (int i = 0; i < usingUFOs.Count; i++)
        {
            int Ran = Random.Range(0, 3);
            if (Ran < 1)
            {
                UFOColor = Color.red;
            }
            else if (Ran < 2)
            {
                UFOColor = Color.blue;
            }
            else
            {
                UFOColor = Color.green;
            }
            usingUFOs [i].GetComponent <Renderer> ().material.color = UFOColor;
            Vector3 startPos;
            if (Round % 2 == 1)
            {
                startPos = new Vector3(5f, 3f, -15f);
            }
            else
            {
                startPos = new Vector3(-5f, 3f, -15f);
            }
            usingUFOs [i].transform.position = startPos;
            usingUFOs[i].transform.position  = startPos;

            FirstSceneControllerBase.GetFirstSceneControllerBase().SetSceneStatus(SceneStatus.Shooting);
        }
    }
示例#12
0
    // Update is called once per frame
    void Update()
    {
        gameStatus  = queryStatus.QueryGameStatus();
        SceneStatus = queryStatus.QuerySceneStatus();

        if (gameStatus == GameStatus.Play)
        {
            if (SceneStatus == SceneStatus.Waiting && Input.GetKeyDown("space"))
            {
                uerInterface.SendUFO();
                FirstSceneControllerBase.GetFirstSceneControllerBase().Update();
            }
            if (SceneStatus == SceneStatus.Shooting && Input.GetMouseButtonDown(0))
            {
                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit hit;
                if (Physics.Raycast(ray, out hit) && hit.collider.gameObject.tag == "UFO")
                {
                    uerInterface.DestroyUFO(hit.collider.gameObject);
                    changeScore.AddScore();
                }
            }
        }
    }
示例#13
0
 public static FirstSceneControllerBase GetFirstSceneControllerBase()
 {
     return(_gameSceneController ?? (_gameSceneController = new FirstSceneControllerBase()));
 }
示例#14
0
 // Use this for initialization
 void Start()
 {
     FirstSceneControllerBase.GetFirstSceneControllerBase().scene = gameObject.AddComponent <PhysicActionManager>();
 }
示例#15
0
 // Use this for initialization
 void Start()
 {
     FirstSceneControllerBase.GetFirstSceneControllerBase().scene = gameObject.AddComponent <Scene>();
 }