Working on runner. Gameplay is similar to Geometry Dash.
Character stands in place and just jumping.
I’m testing game on two devices: lg optimus 2x and googel nexus 5.
Main problem is that game is about 30% slower on better device - google nexus 5.
Moving platform script:
public class MoveRoadBlock : MonoBehaviour {
void Start () {
transform.gameObject.name = transform.gameObject.name.Replace("(Clone)", "");
}
void FixedUpdate () {
transform.Translate(-0.09f, 0f, 0f * Time.fixedDeltaTime);
}
}
Jumping script:
public class Jump : MonoBehaviour {
float speed = 300.0f;
float jumpSpeed = 44.65f;
float gravity = 50.0f;
bool grounded;
float param = 1.976f;
int frameRate = 40;
bool jump;
public void Start () {
Time.captureFramerate = frameRate;
Screen.sleepTimeout = SleepTimeout.NeverSleep;
rigidbody.constraints = RigidbodyConstraints.FreezePositionX;
rigidbody.constraints = RigidbodyConstraints.FreezePositionZ;
rigidbody.freezeRotation = true;
grounded = false;
jump = false;
}
void OnCollisionStay() {
grounded = true;
}
void OnTriggerStay(Collider other) {
if (other.tag == "NoJump")
grounded = false;
}
public void FixedUpdate () {
Vector3 dir = Vector3.zero;
foreach (Touch touch in Input.touches)
{
if (touch.phase == TouchPhase.Began) {
Debug.LogWarning("touch_began");
jump = true;
}
if (touch.phase == TouchPhase.Ended) {
jump = false;
}
}
if (jump) {
if (grounded) {
dir.y = jumpSpeed;
grounded = false;
}
}
dir.y -= gravity * Time.fixedDeltaTime;
dir *= Time.fixedDeltaTime * param;
rigidbody.AddForce(dir * speed);
}
}
How to make it the same on all devices?