zoukankan      html  css  js  c++  java
  • 见缝插针

    程序管理代码(GameManager)

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 using UnityEngine.UI;
     5 using UnityEngine.SceneManagement;
     6 
     7 public class GameManager : MonoBehaviour {
     8 
     9     private Transform startPoint;
    10     private Transform spawnPoint;
    11     private Pin currentPin;
    12     private bool isGameOver = false;
    13     private int score = 0;
    14     private Camera mainCamera;
    15 
    16     public Text scoreText;
    17     public GameObject pinPrefab;
    18     public float speed = 3;
    19 
    20 
    21 
    22     // Use this for initialization
    23     void Start () {
    24         startPoint = GameObject.Find("StartPoint").transform;
    25         spawnPoint = GameObject.Find("SpawnPoint").transform;
    26         mainCamera = Camera.main;
    27         SpawnPin();
    28     }
    29 
    30     private void Update()
    31     {
    32         if (isGameOver) return;
    33         if (Input.GetMouseButtonDown(0))
    34         {
    35             score++;
    36             scoreText.text = score.ToString();
    37             currentPin.StartFly();
    38             SpawnPin();
    39         }
    40     }
    41 
    42     void SpawnPin()
    43     {
    44         currentPin = GameObject.Instantiate(pinPrefab, spawnPoint.position, pinPrefab.transform.rotation).GetComponent<Pin>();
    45     }
    46 
    47     public void GameOver()
    48     {
    49         if (isGameOver) return;
    50         GameObject.Find("Circle").GetComponent<RotateSelf>().enabled = false;
    51         StartCoroutine(GameOverAnimation());
    52         isGameOver = true;
    53     }
    54 
    55     IEnumerator GameOverAnimation()
    56     {
    57         while (true)
    58         {
    59             mainCamera.backgroundColor = Color.Lerp(mainCamera.backgroundColor, Color.red, speed * Time.deltaTime);
    60             mainCamera.orthographicSize = Mathf.Lerp(mainCamera.orthographicSize, 4, speed * Time.deltaTime);
    61             if( Mathf.Abs( mainCamera.orthographicSize-4 )<0.01f)
    62             {
    63                 break;
    64             }
    65             yield return 0;
    66         }
    67         yield return new WaitForSeconds(0.2f);
    68         SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    69     }
    70 }

    针程序(Pin)

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 
     5 public class Pin : MonoBehaviour {
     6 
     7     public float speed = 5;
     8     private bool isFly = false;
     9     private bool isReach = false;
    10     private Transform startPoint;
    11 
    12     private Vector3 targetCirclePos;
    13     private Transform circle;
    14 
    15 
    16     // Use this for initialization
    17     void Start () {
    18         startPoint = GameObject.Find("StartPoint").transform;
    19         circle = GameObject.FindGameObjectWithTag("Circle").transform;
    20         targetCirclePos = circle.position;
    21         targetCirclePos.y -= 1.55f;
    22         //circle = GameObject.Find("Circle").transform;
    23     }
    24 
    25     // Update is called once per frame
    26     void Update () {
    27         if (isFly == false)
    28         {
    29             if (isReach == false)
    30             {
    31                 transform.position = Vector3.MoveTowards(transform.position, startPoint.position, speed * Time.deltaTime);
    32                 if (Vector3.Distance(transform.position, startPoint.position) < 0.05f)
    33                 {
    34                     isReach = true;
    35                 }
    36             }
    37         }
    38         else
    39         {
    40             transform.position = Vector3.MoveTowards(transform.position, targetCirclePos, speed * Time.deltaTime);
    41             if(Vector3.Distance( transform.position,targetCirclePos) < 0.05f)
    42             {
    43                 transform.position = targetCirclePos;
    44                 transform.parent = circle;
    45                 isFly = false;
    46             }
    47         }
    48     }
    49 
    50     public void StartFly()
    51     {
    52         isFly = true;
    53         isReach = true;
    54     }
    55 }

    针头程序(PinHead)

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 
     5 public class PinHead : MonoBehaviour {
     6 
     7     private void OnTriggerEnter2D(Collider2D collision)
     8     {
     9         if (collision.tag == "PinHead")
    10         {
    11             GameObject.Find("GameManager").GetComponent<GameManager>().GameOver();
    12         }
    13     }
    14 }

    圆盘旋转程序

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 
     5 public class RotateSelf : MonoBehaviour {
     6 
     7     public float speed = 90;
     8     
     9     // Update is called once per frame
    10     void Update () {
    11         transform.Rotate(new Vector3(0, 0, -speed * Time.deltaTime));
    12     }
    13 }
  • 相关阅读:
    POJ 3253 Fence Repair
    POJ 2431 Expedition
    NYOJ 269 VF
    NYOJ 456 邮票分你一半
    划分数问题 DP
    HDU 1253 胜利大逃亡
    NYOJ 294 Bot Trust
    NYOJ 36 最长公共子序列
    HDU 1555 How many days?
    01背包 (大数据)
  • 原文地址:https://www.cnblogs.com/krystalstar/p/10118581.html
Copyright © 2011-2022 走看看