コード例 #1
0
    //int m;


    void Start()
    {
        player       = FindObjectOfType <Haze>();
        ActiveStatus = Status.Ronda;                                                            //Status iniziale del nemico. Comincia sempre in ronda

        Debug.Log(gameObject.layer);
    }
コード例 #2
0
ファイル: Main.cs プロジェクト: zzxiang/AvoidHaze
 public void RemoveHaze(Haze haze)
 {
     haze.gameObject.SetActive(false);
     haze.Reset();
     hazeBucketEmptyFlags [activeHazeMap [haze]] = true;
     activeHazeMap.Remove(haze);
     freeHazeList.Push(haze);
 }
コード例 #3
0
ファイル: Main.cs プロジェクト: zzxiang/AvoidHaze
    // Update is called once per frame
    void Update()
    {
        if (gameOverText.activeSelf && (Input.GetMouseButtonDown(0) || Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began))
        {
            GameRestart();
        }

        if (!gameOverText.activeSelf)
        {
            deltaTimeAccumulated += Time.deltaTime;
            if (deltaTimeAccumulated >= hazeCreateInterval)
            {
                int emptyHazeBucketCount = 0;
                for (int i = 0; i < hazeBucketEmptyFlags.Length; ++i)
                {
                    if (hazeBucketEmptyFlags [i])
                    {
                        emptyHazeBuckets [emptyHazeBucketCount++] = i;
                    }
                }

                if (emptyHazeBucketCount > 0)
                {
                    int hazeBucket = emptyHazeBuckets[Random.Range(0, emptyHazeBucketCount)];
                    hazeBucketEmptyFlags [hazeBucket] = false;
                    int     row = hazeBucket / hazeBucketColumns;
                    int     col = hazeBucket % hazeBucketColumns;
                    Vector2 minScreenPos, maxScreenPos;
                    minScreenPos.x = col * (Camera.main.pixelWidth / hazeBucketColumns);
                    minScreenPos.y = row * (Camera.main.pixelHeight / hazeBucketRows);
                    maxScreenPos.x = minScreenPos.x + Camera.main.pixelWidth / hazeBucketColumns;
                    maxScreenPos.y = minScreenPos.y + Camera.main.pixelHeight / hazeBucketRows;
                    Haze haze = freeHazeList.Count > 0 ? freeHazeList.Pop() : Object.Instantiate(hazePrototype.gameObject).GetComponent <Haze> ();
                    haze.enabled = true;
                    float   screenX  = Random.Range(minScreenPos.x, maxScreenPos.x);
                    float   screenY  = Random.Range(minScreenPos.y, maxScreenPos.y);
                    Vector3 position = Camera.main.ScreenToWorldPoint(new Vector2(screenX, screenY));
                    position.z = haze.transform.position.z;
                    haze.transform.position = position;
                    haze.gameObject.SetActive(true);
                    activeHazeMap.Add(haze, hazeBucket);
                    deltaTimeAccumulated = 0;
                }
            }
        }
    }
コード例 #4
0
    //Controlla la direzione in cui è il player e decide con quale forza lanciare il feromone

    private void Start()
    {
        rb2d = GetComponent <Rigidbody2D>();

        player = GameObject.FindGameObjectWithTag("Player").GetComponent <Haze>();



        if (player.direct == Haze.Direction.Right)
        {
            rb2d.AddForce(Vector2.right * speed);
        }

        else if (player.direct == Haze.Direction.Left)
        {
            rb2d.AddForce(Vector2.left * speed);
        }
    }
コード例 #5
0
    //Controlla la direzione in cui è il player e decide con quale forza lanciare il feromone

    private void Start()
    {
        rb2d            = GetComponent <Rigidbody2D>();
        bottleAnimation = GetComponent <Animator>();

        player = GameObject.FindGameObjectWithTag("Player").GetComponent <Haze>();

        SoundManagerScript.PlaySound("FeromoniLancio");

        if (player.direct == Haze.Direction.Right)
        {
            rb2d.AddForce(Vector2.right * speed);
        }

        else if (player.direct == Haze.Direction.Left)
        {
            rb2d.AddForce(Vector2.left * speed);
        }
    }
コード例 #6
0
    public void SpawnHaze()
    {
        GameObject haze       = Instantiate(hazePrefab, transform.position + hazePrefab.transform.position, Quaternion.identity);
        Haze       hazeScript = haze.GetComponent <Haze>();

        RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.down, feetCollider.size.y / 2 * checkStairsRayLength, layerMask: groundLayer);

        if (hit)
        {
            if (hit.normal != Vector2.up)
            {
                if (hit.normal.x < 0)
                {
                    hazeScript.RotateHaze(); // если идёт вверх вправо
                }
                hazeScript.SetHazeOnStairs();
            }
        }

        hazeScript.StartAnimation();
    }