Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

[Unity2d]Vướng mắc trong code game 2d

17:15 20-07-2017 611 lượt xem 2 bình luận 20:15 20-07-2017

xin chào các bác ạ

e đang tự code 1 game dạng sokoban mà không biết code như thế nào để player di chuyển theo ô 1,tức là di chuyển theo dạng bước từng bước 1 ấy ạ,đoạn code e viết vào player di chuyển liền mạch và hay bị lệch khỏi đường đi,sau đây là code của e ạ

mong các bác giúp đỡ,e cũng đã thử google nhưng không có code về kiểu di chuyển này ạ

public class robotmoved : MonoBehaviour {
    private Rigidbody2D myrobot;
    
    void FixedUpdate()
    {
        if (Input.GetKey(KeyCode.UpArrow))
        {
            transform.position = new Vector3(transform.position.x, transform.position.y + 0.36f, transform.position.z);
            transform.eulerAngles = new Vector3(0f, 0f, 0f);
        }
        if (Input.GetKey(KeyCode.DownArrow))
        {
            transform.position = new Vector3(transform.position.x, transform.position.y - 0.36f, transform.position.z);
            transform.eulerAngles = new Vector3(0f, 0f, 180f);
            
        }
        if (Input.GetKey(KeyCode.RightArrow))
        {
            transform.position = new Vector3(transform.position.x + 0.4f, transform.position.y, transform.position.z);
            transform.eulerAngles = new Vector3(0f, 0f, 270f);
        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            transform.position = new Vector3(transform.position.x - 0.4f, transform.position.y, transform.position.z);
            transform.eulerAngles = new Vector3(0f, 0f, 90f);
        }
    }
}

 

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Accodius đã bình luận 20:15 20-07-2017

bạn tắt hết mấy cái vật lý tào lao đi rồi đặt 1 cái hằng số bước đi cho nó, mỗi lần nó đi thì set lại tọa độ cho nó cứng cho nó bằng const*<số bước> là nó được thôi

 

K9 SuperAdmin, KquizAdmin, KquizAuthor đã bình luận 19:01 20-07-2017

Ý tưởng của mình: Nếu đã là ô thì cần một ma trận các ô. Ma trận này chính là mảng 2 chiều của các tọa độ trung tâm của các ô. Player đi chuyển vào ô chính là set lại position của player là tọa độ tương ứng.

Câu hỏi mới nhất