- Home /
Question by
DilipRamirez · Nov 02, 2013 at 06:20 PM ·
2dphysicsjump
Incremental jump while pressing Jump button
Hey everyone! I'm doing a 2D platformer (not 2.5), i'm trying to do a Super Meat Boy kind-of jump, where the player jumps higher while in air pressing the jump button up to a maxHeightJump... I'm settings 3 variables (jumpHeight - which is the final jump force, maxHeightJump and incrementalJumpHeight which is set to 4), doing jumpHeight + IncrementalJumpHeight while GetButton("Jump"), but the player falls at the beginning and then starts jumping again ... how can I do it ? Here's my code so far:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(PlayerPhysics))]
public class PlayerController : MonoBehaviour {
//Player Handling
public float gravity = 20;
public float speed = 8;
public float acceleration = 30;
public float incrementalJumpHeight = 4;
public float jumpHeight = 0;
public float maxJumpHeight = 20;
private float currentSpeed;
private float targetSpeed;
private Vector2 amountToMove;
private PlayerPhysics playerPhysics;
// Use this for initialization
void Start () {
playerPhysics = GetComponent<PlayerPhysics>();
}
// Update is called once per frame
void Update () {
if(playerPhysics.movementStopped)
{
targetSpeed = 0;
currentSpeed = 0;
}
// Input
targetSpeed = Input.GetAxisRaw("Horizontal") * speed;
currentSpeed = Mathf.MoveTowards(currentSpeed, targetSpeed, speed);
if(playerPhysics.grounded)
{
amountToMove.y = 0;
//jumpHeight = 0;
// Jump
if(Input.GetButton("Jump"))
{
Debug.Log("We are jumping! YAY!!");
if(jumpHeight < maxJumpHeight) {
Debug.Log("We are adding "+incrementalJumpHeight+" to our jump, resulting in "+jumpHeight);
jumpHeight += incrementalJumpHeight + Time.deltaTime;
} else {
jumpHeight = 0;
}
if(Input.GetButtonUp("Jump"))
{
amountToMove.y = jumpHeight;
}
} else {
jumpHeight = 0;
}
}
amountToMove.x = currentSpeed;
amountToMove.y -= gravity * Time.deltaTime;
playerPhysics.Move(amountToMove * Time.deltaTime);
}
}
Comment
Your answer
Follow this Question
Related Questions
2D (With Planes) Jump Script 0 Answers
Rigidbody2d not falling once in the air 1 Answer
Sphere Goes Crazy 3 Answers
How do i incorporate a double jump ingame? 1 Answer
2d grounded check problem? 3 Answers