Question by
RancidWheel · Mar 22, 2017 at 08:35 PM ·
2d gamejumpjumpingcharacter controllercharacter movement
how to jump in a 2D game
i wrote this code. i learnt it with 3D, and i tried with 2D (changing the components to 2D) the right and left moving work, but the jump is not working. how can i fix it?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ControlliTastiera : MonoBehaviour
{
public float velocitah;
public float forzaSalto; // = jumpForce
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
Rigidbody2D Corpoh = this.GetComponent<Rigidbody2D>();
if (Input.GetKey(KeyCode.RightArrow))
{
Vector3 nuovaPos = this.transform.position;
nuovaPos.x += Time.deltaTime * velocitah;
this.transform.position = nuovaPos;
}
if (Input.GetKey(KeyCode.LeftArrow))
{
Vector3 nuovaPos = this.transform.position;
nuovaPos.x -= Time.deltaTime * velocitah;
this.transform.position = nuovaPos; // nuovaPos = newPos
}
if (Input.GetKey(KeyCode.UpArrow))
{
Vector3 salto = new Vector3();
salto.y = forzaSalto; // salto = jump (in italian)
Corpoh.AddForce(salto);
}
}
}
Comment
Answer by PPenar · Mar 22, 2017 at 09:07 PM
Change:
if (Input.GetKey(KeyCode.UpArrow))
{
Vector3 salto = new Vector3();
salto.y = forzaSalto; // salto = jump (in italian)
Corpoh.AddForce(salto);
}
to:
if ( Input.GetKey(KeyCode.UpArrow) )
{
Vector2 salto = new Vector2();
salto.y = forzaSalto; // salto = jump (in italian)
Corpoh.AddForce(salto,ForceMode2D.Impulse);
}
Answer by RancidWheel · Mar 25, 2017 at 01:54 PM
@PPenar thank, it worked. now i've a new problem... i want to add the isGrounded Property, i tried this code but it's not working well:
void Update(){
......
if ((Input.GetKeyDown(KeyCode.UpArrow))&(aTerra))
{
Vector2 salto = new Vector2();
salto.y = forzaSalto; // salto = jump (in italian)
Corpoh.AddForce(salto, ForceMode2D.Impulse);
}
}
private void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag== "TagTerra")
{
aTerra = true;
}
}
private void OnCollisionExit(Collision collision)
{
if (collision.gameObject.tag== "TagTerra")
{
aTerra = false;
}
}
how can i fix the jump section?
Your answer
Follow this Question
Related Questions
Character landing 0 Answers
Can't get my character controller to jump properly (3d) 1 Answer
Jump logic issues 0 Answers
How can I modify this to allow jumping with space? 0 Answers
I can't do jump in my 2D game 1 Answer