public void FixedUpdate() { caterpillar.ax = caterpillar.speed * VfigInput.GetAxis(caterpillar.playerNum - 1, VfigInput.Axis.LeftStickX); caterpillar.vx += caterpillar.ax * Time.deltaTime; caterpillar.vx *= caterpillar.friction; //Left and right collisions? caterpillar.SideCollisionLeft(); caterpillar.SideCollisionRight(); caterpillar.vy -= caterpillar.gravity * Time.deltaTime; if (caterpillar.vy < -caterpillar.maxDropSpeed * Time.deltaTime) { caterpillar.vy = -caterpillar.maxDropSpeed * Time.deltaTime; } if (caterpillar.vy < 0) { if (caterpillar.GroundCollision()) { onGroundTimer = caterpillar.onGroundLeeway; } } else { caterpillar.CollisionTop(); onGroundTimer = 0; } if (onGroundTimer > 0 && caterpillar.jumpPressed) { caterpillar.jumpPressed = false; caterpillar.vy = caterpillar.jumpVelocity * Time.deltaTime; caterpillar.ChangeState(new JumpingState(caterpillar)); return; } onGroundTimer -= Time.deltaTime; caterpillar.transform.Translate(caterpillar.vx * Time.deltaTime, caterpillar.vy * Time.deltaTime, 0); }
private void Update() { var newAimDir = new Vector2(VfigInput.GetAxis(playerNum - 1, VfigInput.Axis.RightStickX), -VfigInput.GetAxis(playerNum - 1, VfigInput.Axis.RightStickY)); if (newAimDir.magnitude > 0) { currentAimDir = Vector2.Lerp(currentAimDir, newAimDir.normalized, 0.25f); } aim.SetAim(currentAimDir, currentThrowPower, maxThrowPower); if (beginFiring) { currentThrowPower = Mathf.Clamp(currentThrowPower + throwGrowthSpeed * Time.deltaTime, 0, maxThrowPower); } float fireAxis = VfigInput.GetAxis(playerNum - 1, VfigInput.Axis.RightTrigger); if (fireAxis > 0 && !beginFiring && !animateFiring) { beginFiring = true; currentThrowPower = initialThrowPower; } else if (fireAxis == 0 && beginFiring && !animateFiring) { beginFiring = false; animateFiring = true; Vector2 aimDir = currentAimDir; float throwPower = currentThrowPower; itsAliiiiiive.StartThrow( // throwing point of animation () => { Throw(aimDir, throwPower); }, // animation finished () => { animateFiring = false; } ); currentThrowPower = initialThrowPower; } }
public void FixedUpdate() { caterpillar.ax = caterpillar.speed * VfigInput.GetAxis(caterpillar.playerNum - 1, VfigInput.Axis.LeftStickX); caterpillar.vx += caterpillar.ax * Time.fixedDeltaTime; caterpillar.vx *= caterpillar.friction; caterpillar.vy *= caterpillar.jumpArcFriction; jumpTimer -= Time.fixedDeltaTime; if (jumpTimer <= 0 || !VfigInput.GetButton(caterpillar.playerNum - 1, VfigInput.Button.A)) { caterpillar.ChangeState(new WalkingState(caterpillar)); return; } caterpillar.SideCollisionLeft(); caterpillar.SideCollisionRight(); if (caterpillar.vy < 0 && caterpillar.GroundCollision()) { Debug.Log("ground or low vy"); caterpillar.ChangeState(new WalkingState(caterpillar)); return; } if (caterpillar.vy >= 0 && caterpillar.CollisionTop()) { Debug.Log("Top collision"); caterpillar.vy = 0; caterpillar.ChangeState(new WalkingState(caterpillar)); return; } caterpillar.transform.Translate(caterpillar.vx * Time.deltaTime, caterpillar.vy * Time.deltaTime, 0); }
public float GetAxis(VfigInput.Axis axis) { return(VfigInput.GetAxis((int)_gamepadAssignment, axis)); }