using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GameManage : MonoBehaviour {
private Image bg;
private GameObject[] clouds;
private GameObject[] awards;
private Transform gameCanvas;
private int count;
public Text Count;
// Use this for initialization
void Start () {
bg = GameObject.Find("BG").GetComponent<Image> ();
clouds = Resources.LoadAll<GameObject> ("clouds");
awards = Resources.LoadAll<GameObject> ("Awards");
gameCanvas = GameObject.Find ("GameCanvas").transform;
InvokeRepeating ("CreateAll", 0, 1);
count = 0;
}
// Update is called once per frame
void Update ()
{
bg.material.SetTextureOffset ("_MainTex", new Vector2 (0, Time.time / 5));
Count.text = "层数" + count.ToString ();
}
private void CreateAll() //生成云和物品
{
int rangeNum = Random.Range (0,5);
GameObject tempObject = null;
if (0 == rangeNum)
{
tempObject = clouds [3];
}
else
{
tempObject = clouds [Random.Range (0, clouds.Length - 1)];
}
GameObject clude = Instantiate (tempObject, new Vector3 (Random.Range(-340,341),-800,0), Quaternion.identity);
clude.transform.SetParent (gameCanvas, false);
GameObject award = CreateAward ();
if (award != null)
{
Instantiate (award,new Vector3(0,40,0),Quaternion.identity).transform.SetParent (clude.transform,false);
}
clude.AddComponent<CloudsMove> ();
count++;
}
private GameObject CreateAward()
{
int num = Random.Range (0, 9);
GameObject temp = null;
if (0 == num)
{
temp = awards [1];
}
else if (0 < num && num < 4)
{
temp = awards [0];
}
else
{
temp = null;
}
return temp;
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CloudsMove : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.Translate (Vector3.up * Time.deltaTime * 3);
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PlayerControl : MonoBehaviour {
//private Animator ani;
private int life;
private int grade;
public Text Lift;
public Text Grade;
// Use this for initialization
void Start () {
//ani = GetComponent<Animator> ();
life = 1;
grade = 0;
}
// Update is called once per frame
void Update ()
{
if (Mathf.Abs (transform.localPosition.y) >= 800)
{
life--;
transform.localPosition = new Vector3 (0, 600, 0);
}
if (life <= 0)
UnityEditor.EditorApplication.isPlaying = false;
Move ();
Lift.text = "生命" + life.ToString ();
Grade.text = "分数" + grade.ToString ();
}
private void Move()
{
float h = Input.GetAxis ("Horizontal");
if (Mathf.Abs (h) > 0.1f)
{
if (h > 0)
transform.localRotation = Quaternion.Euler (0, 0, 0);
else
transform.localRotation = Quaternion.Euler (0, 180, 0);
transform.Translate (h * transform.right * 5*Time.deltaTime);
}
}
public void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "Gold")
{
grade += 10;
}
else if (other.tag == "Life")
{
life+=1;
}
Destroy (other.gameObject);
}
}