Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class SpaceshipController : MonoBehaviour {
- public float rotationSpeed = 200f;
- public float thrustForce = 5f;
- private Rigidbody2D _rigidBody2d;
- public float maxLandVelocity = 1.0f;
- public float minAligmnentCollissionRatio = 0.97f;
- // Use this for initialization
- void Start () {
- _rigidBody2d = GetComponent<Rigidbody2D>();
- }
- private void OnCollisionEnter2D(Collision2D collision) {
- Vector2 colVector = collision.contacts[0].point - (Vector2)collision.collider.transform.position;
- float alignmentCollisionRatio = Vector2.Dot(colVector.normalized, transform.rotation * Vector2.up);
- if (_rigidBody2d.velocity.magnitude <= maxLandVelocity && alignmentCollisionRatio > minAligmnentCollissionRatio) {
- _rigidBody2d.velocity = Vector3.zero;
- _rigidBody2d.angularVelocity = 0.0f;
- }
- else {
- _rigidBody2d.velocity = Vector3.zero;
- _rigidBody2d.angularVelocity = 0.0f;
- transform.position = new Vector3(0, 0, 0);
- Debug.Log("morreu jovem, volte pro meio do mapa");
- }
- }
- void Update () {
- // turn the ship
- if (_rigidBody2d.velocity.magnitude > 0) {
- transform.Rotate(0, 0, -Input.GetAxis("Horizontal") * rotationSpeed * Time.deltaTime);
- }
- GetComponent<Rigidbody2D>().
- AddForce(transform.up * thrustForce *
- Mathf.Max(0, Input.GetAxis("Vertical")));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement