Jump to content

User:SPARTROY

From Wikipedia, the free encyclopedia

Components

[edit]

> Foreground/Platform

[edit]
  • 2D Box Collider

> Player

[edit]
  • 2D Box Collider
  • 2D Rigid Body

>Trapdoor

[edit]
- Fixed-platform
[edit]
  • 2D Rigid body (Change to Kinematic)
  • 2D Box Collider
- Rotating-platform
[edit]
  • 2D Rigid body
  • 2D Box Collider
  • 2D Hinge Joint
    • Connect the fixed with the rotating
    • use motor (100,-100)
    • use limits


>Explosion

  • Edge Collider 2D


Animator

[edit]
From idle to walk speed greater
From idle to walk speed smaller
From Any state to jump grounded true
From jump to idle grounded false

//Remove exit time

Checkpoints

[edit]

Create 3 Empty game objects

  • Checkpoint (Add a empty game object at the flag)
    • Script

public void OnTriggerEnter2D(Collider2D other)

    {

        if (other.name =="Sonic_0"/*name of the character sprite*/)

        {

            FindObjectOfType<LevelManager>().CurrentCheckpoint = this.gameObject;

        }

    }

  • LevelManager
    • Script
  • Add these variables
    • public GameObject CurrentCheckpoint;
    • public Transform player;

public void RespawnPlayer()

    {

        FindObjectOfType<control/*Script of controlling player*/>().transform.position = CurrentCheckpoint.transform.position;

    }

  • Spike
    • Script

public void OnTriggerEnter2D(Collider2D other)

    {

        if (other.name == "Sonic_0"/*name of the character sprite*/)

        {

            FindObjectOfType<LevelManager>().RespawnPlayer();

        }

    }

    • 2D Box Collider(Tick is Triggered)

Game Variables & Coding

[edit]

//movement

[edit]

public float player_speed;

public float jump_height;

//controlling keys

[edit]

public KeyCode Jump;

public KeyCode Left;

public KeyCode Right;

//Utilities

[edit]

public Transform groundCheck;

public float GND_Radius;

public LayerMask WhatisGND;

public bool grounded;

Controlling Player

[edit]

//Moving Right

[edit]

   if (Input.GetKey(Right))

        {

            GetComponent<Rigidbody2D>().velocity = new Vector2(-player_speed, GetComponent<Rigidbody2D>().velocity.y);

            if (GetComponent<SpriteRenderer>() != null)

            {

                GetComponent<SpriteRenderer>().flipX = true;

            }

        }

//Moving Left

[edit]

       if (Input.GetKey(Left))

        {

            GetComponent<Rigidbody2D>().velocity = new Vector2(player_speed, GetComponent<Rigidbody2D>().velocity.y);

            if (GetComponent<SpriteRenderer>() != null)

            {

                GetComponent<SpriteRenderer>().flipX = false;

            }

        }

    }

//Jump

[edit]

void Jump()

    {

        GetComponent<Rigidbody2D>().velocity = new Vector2(GetComponent<Rigidbody2D>().velocity.x, jump_height);

    }

    void FixedUpdate()

    {

        grounded = Physics2D.OverlapCircle(groundCheck.position, GND_Radius, WhatisGND);

    }

//For Animation

[edit]

anime.SetFloat("Speed", Mathf.Abs(GetComponent<Rigidbody2D>().velocity.x));

anime.SetBool("Grounded", grounded);