Пример #1
0
 // Start is called before the first frame update
 void Start()
 {
     transform.position   = new Vector3(0, 0, transform.position.z);
     transform.localScale = CameraMovement.CameraRect().size * 5f;
     SetHeight(-3.9f);
     targetHeight = -3.9f;
     sr           = GetComponent <SpriteRenderer>();
 }
Пример #2
0
    // Update is called once per frame
    void Update()
    {
        Rect  rect = CameraMovement.CameraRect();
        float yPos = transform.position.y;

        yPos = Mathf.Clamp(yPos, rect.yMin + 1.2f, rect.yMax - 1.2f);
        transform.position = new Vector3(transform.position.x, yPos, transform.position.z);
    }
Пример #3
0
    public void SetHeight(float y)
    {
        height = y;
        Rect  camera = CameraMovement.CameraRect();
        float yPos   = (y + camera.yMin) * 0.5f;

        transform.position   = new Vector3(transform.position.x, yPos, transform.position.z);
        transform.localScale = new Vector3(transform.localScale.x, Mathf.Abs(camera.yMin - y - 1f), transform.localScale.z);
        Director.GetInstance().waterHeight = y + 0.25f;
    }
Пример #4
0
    private void Update()
    {
        ScoreBar.GetInstance().SetLives(lives);
        Rect cameraRect = CameraMovement.CameraRect();

        if ((transform.position.y < cameraRect.yMin || transform.position.x < cameraRect.xMin) && state == State.ALIVE)
        {
            Die();
        }
    }
Пример #5
0
    // Start is called before the first frame update
    void Start()
    {
        instance          = this;
        distanceGenerated = CameraMovement.CameraRect().center.x;
        platforms         = new List <RenderedPlatform>();
        foreach (GameObject platform in startingPlatforms)
        {
            platforms.Add(new RenderedPlatform(platform));
        }

        groundedPlatforms.Sort(new LengthCompare());
    }
    // Update is called once per frame
    void Update()
    {
        Rect       rect   = CameraMovement.CameraRect();
        GameObject player = GameObject.FindGameObjectWithTag("Player");

        if (player != null && !shattering && PlayerGG.GetInstance().state == PlayerGG.State.ALIVE &&
            (Mathf.Abs(transform.position.x - player.transform.position.x) < distance || transform.position.y > rect.yMax))
        {
            shattering = true;
            StartCoroutine(Shatter());
        }
    }
Пример #7
0
    IEnumerator ShatterSky()
    {
        GameObject player = GameObject.FindGameObjectWithTag("Player");

        while (true)
        {
            Rect       rect = CameraMovement.CameraRect();
            float      xPos = UnityEngine.Random.Range((rect.xMin + rect.xMax) * 0.5f, rect.xMax);
            GameObject go   = Instantiate(shatters[UnityEngine.Random.Range(0, shatters.Count)],
                                          new Vector3(xPos, rect.yMax + 7f, transform.position.z), transform.rotation);
            go.transform.eulerAngles = new Vector3(0f, 0f, 90f);
            Vector3 pos = go.transform.position;
            go.AddComponent <ShatterPlatform>();
            yield return(new WaitForSeconds(UnityEngine.Random.Range(1.4f, 2.2f)));
        }
    }
    IEnumerator CleanupFragments()
    {
        while (true)
        {
            yield return(new WaitForSeconds(10f));

            Rect rect = CameraMovement.CameraRect();
            foreach (GameObject go in GameObject.FindGameObjectsWithTag("Fragment"))
            {
                // check for cleanup: if the fragment is 10 units away
                if (Mathf.Abs(go.transform.position.x - rect.xMax) > 10f &&
                    Mathf.Abs(go.transform.position.x - rect.xMin) > 10f ||
                    Mathf.Abs(go.transform.position.y - rect.yMax) > 10f &&
                    Mathf.Abs(go.transform.position.y - rect.yMin) > 10f)
                {
                    Destroy(go);
                }
            }
        }
    }
Пример #9
0
    GameObject FindRespawnPlatform()
    {
        Director          director  = Director.GetInstance();
        List <GameObject> platforms = director.GetPlatforms().ToList();

        float cameraVelocity = Camera.main.GetComponent <CameraMovement>().speed.x;
        Rect  cameraRect     = CameraMovement.CameraRect();

        foreach (GameObject platform in platforms)
        {
            //check that it's on screen and that it will still be on screen after respawn
            if (platform.transform.position.x - (1.5 * respawnTime * cameraVelocity) > cameraRect.xMin)
            {
                return(platform);
            }
        }

        //if nothing found, just pack last element and pray
        Debug.Log("WARNING: No suitable respawn platform, f**k it....");
        return(platforms[platforms.Count - 1]);
    }
Пример #10
0
    // Start is called before the first frame update
    void Start()
    {
        // scale PlatformBottom downwards
        Rect      rect = CameraMovement.CameraRect();
        Transform bot  = transform.Find("PlatformBottom");

        if (bot != null)
        {
            bottom = bot.gameObject;
            bottom.transform.position = new Vector3(bottom.transform.position.x,
                                                    (rect.yMin + transform.position.y) * 0.5f,
                                                    bottom.transform.position.z);
            SpriteRenderer sr          = bottom.GetComponent <SpriteRenderer>();
            float          spriteScale = transform.localScale.y * sr.sprite.rect.height / sr.sprite.pixelsPerUnit;
            bottom.transform.localScale = new Vector3(bottom.transform.localScale.x,
                                                      Mathf.Abs(rect.yMin - transform.position.y) / spriteScale,
                                                      bottom.transform.localScale.z);
        }

        UpdateClimateEvents();
    }
Пример #11
0
    // Update is called once per frame
    void Update()
    {
        //get camera pose
        Rect cameraView = CameraMovement.CameraRect();

        //create batch of platforms whenever camera is within given distance of the end of the last run
        if (cameraView.xMax + LOOKAHEAD_DISTANCE > distanceGenerated)
        {
            //generate run of new platforms
            float targetDistance = distanceGenerated + RUN_LENGTH;
            while (distanceGenerated < targetDistance)
            {
                RenderedPlatform platform = (Random.value > 0.65) ? GenerateStaticHeightPlatform(cameraView) :
                                            (ClimateEvents.GetInstance().waterLevel ? GenerateStaticHeightPlatform(cameraView) : GenerateVariableHightPlatform(cameraView));
                distanceGenerated = platform.upperRight.x;
                platforms.Add(platform);
            }
        }


        //discard old platforms
        for (int i = 0; i < platforms.Count; i++)
        {
            if (platforms[i].obj == null)
            {
                platforms.RemoveAt(i);
                i--;
                continue;
            }

            if (platforms[i].obj.transform.position.x + (platforms[i].width / 2) < cameraView.xMin)
            {
                Destroy(platforms[i].obj);
                platforms.RemoveAt(i);
                i--;
            }
        }
    }
Пример #12
0
 // Start is called before the first frame update
 void Start()
 {
     transform.position   = new Vector3(0, 0, transform.position.z);
     transform.localScale = CameraMovement.CameraRect().size * 1f;
     r = GetComponent <Renderer>();
 }
Пример #13
0
    // Start is called before the first frame update
    void Start()
    {
        float xPos = CameraMovement.CameraRect().xMin + GetComponent <SpriteRenderer>().bounds.extents.y;

        transform.position = new Vector3(xPos, transform.position.y, transform.position.z);
    }
Пример #14
0
    // Update is called once per frame
    protected virtual void Update()
    {
        if (!inputEnabled)
        {
            UpdateAnimation(true);
            return;
        }

        playerInput.UpdateInput();
        body.gravityScale = gravity;
        body.drag         = 0f;
        bool grounded = Grounded();

        if (squat)
        {
            squatCount++;
            //Debug.Log(squatCount);
        }

        //Tests Grounded()
        //if (grounded)
        //{
        //    sr.color = new Color(sr.color.r, sr.color.g, sr.color.b, 1f);
        //}
        //else
        //{
        //    sr.color = new Color(sr.color.r, sr.color.g, sr.color.b, 0.5f);
        //}

        int hDirection = (playerInput.xmovement < 0 && Movable()) ? -1 :
                         (playerInput.xmovement > 0 && Movable()) ? 1 : 0;


        float windSpeed = 0f;

        if (ClimateEvents.GetInstance().wind&& !grounded)
        {
            windSpeed = -3f;
        }
        Director.GetInstance().xVelocity = Mathf.Abs(horizontalSpeed) + GetCameraSpeed() * 0.6f + windSpeed;
        if (hDirection < 0)
        {
            body.velocity = new Vector2(horizontalSpeed * playerInput.xmovement + GetCameraSpeed() * 0.6f + windSpeed, body.velocity.y);
        }
        else if (hDirection > 0)
        {
            body.velocity = new Vector2(horizontalSpeed * playerInput.xmovement + GetCameraSpeed() * 0.6f + windSpeed, body.velocity.y);
        }
        else
        {
            if (grounded)
            {
                body.velocity = new Vector2(0, body.velocity.y);
            }
            else
            {
                body.velocity = new Vector2(GetCameraSpeed() * 0.6f, body.velocity.y);
            }
        }

        animator.SetBool("Jumpsquat", playerInput.up && Jumpable());
        if (playerInput.up && Jumpable())
        {
            if (!squat)
            {
                squat = true;
            }
        }
        if (playerInput.up)
        {
            body.gravityScale = gravity * 0.5f;
        }


        if (squatCount == SQUATLENGTH)
        {
            squat         = false;
            squatCount    = 0;
            body.velocity = new Vector2(body.velocity.x, jumpSpeed);

            // Change jump height based on if key is held
            //if (Input.GetKeyDown("up"))
            //{
            //    body.velocity = new Vector2(body.velocity.x, jumpSpeed);
            //}
            //else
            //{
            //    body.velocity = new Vector2(body.velocity.x, (int) 0.5 * jumpSpeed);
            //}
        }


        // animate with blend tree
        //animator.SetFloat("VelocityX", hDirection);
        if (hDirection != 0)
        {
            //animator.SetFloat("FacingX", hDirection);
            facingX = hDirection;
        }
        //animator.SetFloat("VelocityY", Mathf.Sign(body.velocity.y));
        //animator.SetBool("Grounded", grounded);

        if (hDirection > 0)
        {
            sr.flipX = false;
        }
        else if (hDirection < 0)
        {
            sr.flipX = true;
        }

        if (body.velocity.y < MAXFALLSPEED)
        {
            body.velocity = new Vector2(body.velocity.x, MAXFALLSPEED);
        }


        if (transform.position.x > CameraMovement.CameraRect().xMax)
        {
            transform.position = new Vector3(CameraMovement.CameraRect().xMax, transform.position.y, transform.position.z);
        }

        UpdateAnimation(grounded);
    }
Пример #15
0
 // Start is called before the first frame update
 void Start()
 {
     transform.position += (Vector3)CameraMovement.CameraRect().size;
 }
Пример #16
0
 // Start is called before the first frame update
 void Start()
 {
     transform.position   = new Vector3(0, 0, transform.position.z);
     transform.localScale = CameraMovement.CameraRect().size * 1.05f;
 }