Bài giảng Thiết kế và phát triển trò chơi máy tính: Bài 5 Game 2D đơn giản cung cấp cho người học những kiến thức như: Xây dựng kịch bản; Chuẩn bị tài nguyên; Thiết lập project và các thành phần; Xây dựng màn hình trò chơi; Xây dựng hành động cho nhân vật chính; Xây dựng hành động cho máy; Xử lý biến cố; Bổ sung các chi tiết khác. Mời các bạn cùng tham khảo!
THIẾT KẾ VÀ PHÁT TRIỂN GAME Bài 5: Game 2D Đơn Giản Nội dung Xây dựng kịch Chuẩn bị tài nguyên Thiết lập project thành phần Xây dựng hình trị chơi Xây dựng hành động cho nhân vật Xây dựng hành động cho máy Xử lý biến cố Bổ sung chi tiết khác Bài tập TRƯƠNG XUÂN NAM Phần Xây dựng kịch TRƯƠNG XUÂN NAM Xây dựng kịch ▪ Phượng hoàng tiêu diệt quái vật ▪ Phượng hoàng: nhân vật chính, bay, phun đám lửa xuống bọn quái vật ▪ Quái vật: nhiều, điều khiển máy, ném lao cơng phượng hồng ▪ Làm rõ đơn giản hóa: ▪ Phun lửa bay theo dạng nào? Thẳng xuống ▪ Quái vật xuất đâu? Ngẫu nhiên, mặt đất giả định, không giới hạn số lượng ▪ Lao ném công bay nào? Thẳng lên TRƯƠNG XUÂN NAM Phần Chuẩn bị tài nguyên TRƯƠNG XUÂN NAM Chuẩn bị tài nguyên ▪ Liệt kê tài nguyên cần chuẩn bị ▪ ▪ ▪ ▪ ▪ Nền Sprite nhân vật chính: phượng hồng, lửa Sprite quái vật: quái vật, lao Hiệu ứng: cơng trúng đích Âm thanh: • Âm (chơi tồn chơi) • Âm phun lửa, ném lao • Âm tiếng kêu quái vật • Âm hiệu ứng trúng đích ▪ Chú ý: tơi lấy tài ngun từ mạng với mục đích minh họa, làm game chuyên nghiệp không vậy! TRƯƠNG XUÂN NAM “2d sprites background” TRƯƠNG XUÂN NAM “sprites 2d phoenix” TRƯƠNG XUÂN NAM “sprites 2d fire” TRƯƠNG XUÂN NAM “sprites 2d devil” TRƯƠNG XUÂN NAM 10 Phần Xây dựng hành động cho nhân vật TRƯƠNG XUÂN NAM 20 Hành động nhân vật ▪ Di chuyển: W, S, A, D ▪ Phun lửa: Space ▪ Tham số hóa: ▪ Speed (tốc độ di chuyển): nhập từ giao diện inspector ▪ Fire (đốm lửa phun ra): clone đối tượng từ prefab ▪ Nâng cấp: ▪ ▪ ▪ ▪ Giới hạn không phun lửa liên tục Lượng máu: lần trúng chiêu bị máu Điểm số: số quái vật tiêu diệt Trạng thái đặc biệt, tuyệt chiêu,… TRƯƠNG XUÂN NAM 21 Phần Xây dựng hành động cho máy TRƯƠNG XN NAM 22 Boss ▪ Vơ hình, khơng tham gia tương tác trực tiếp ▪ Sinh quái vật sau thời gian cho trước ▪ Ở vị trí thẳng hàng trục y với Boss ▪ Vị trí ngẫu nhiên hình ▪ Nâng cấp: ▪ Giới hạn số quái vật lúc xuất chơi ▪ Sinh loại quái vật khác ▪ Quái vật có thuộc tính ngẫu nhiên TRƯƠNG XN NAM 23 Qi vật ▪ Khơng di chuyển, việc phóng giáo thẳng lên trời sau khoảng thời gian ▪ Nâng cấp: ▪ Di chuyển? ▪ Phóng giáo theo hướng khác nhau, khơng thiết phải phóng thẳng ▪ Thời gian công không thiết phải fix cứng ▪ Có lượng máu khác TRƯƠNG XUÂN NAM 24 Quái vật public class Devil : MonoBehaviour { public float speed; public Spear spear; float shot = 0; void Start () { spear.speed = speed; shot = Time.realtimeSinceStartup; } void Update () { if (Time.realtimeSinceStartup - shot > speed) { shot = Time.realtimeSinceStartup; Instantiate(spear, transform.position, Quaternion.identity); } } } TRƯƠNG XUÂN NAM 25 Phần Xử lý biến cố TRƯƠNG XUÂN NAM 26 Xử lý biến cố ▪ Biến cố xảy thay đổi tình hình thơng thường chơi ▪ Phượng hoàng trúng giáo quái vật ▪ Quái vật trúng lửa phượng hoàng ▪ Thêm component kiểu Rigidbody Collider vào đối tượng, giúp unity engine phát va chạm ▪ Rigidbody2D ▪ BoxCollider2D ▪ Phân biệt Trigger Non-Trigger TRƯƠNG XN NAM 27 Vũ khí phượng hồng (lửa) public class Fire : MonoBehaviour { public int speed; float line = 0; void Start () { line = GameObject.Find("boss").transform.position.y; } void Update () { transform.Translate(Vector3.down * speed * Time.deltaTime); if (transform.position.y < line) Destroy(this.gameObject); } TRƯƠNG XUÂN NAM 28 Vũ khí phượng hồng (lửa) void OnTriggerEnter2D(Collider2D obj) { if (obj.gameObject.tag == "quaivat") { Destroy(obj.gameObject); Destroy(this.gameObject); } } } TRƯƠNG XUÂN NAM 29 Vũ khí quái vật (giáo) public class Spear : MonoBehaviour { public float speed; void Update () { transform.Translate(Vector3.up * speed * Time.deltaTime); if (transform.position.y > 6) DestroyImmediate(this.gameObject); } void OnTriggerEnter2D(Collider2D obj) { if (obj.gameObject.tag == "phuonghoang") Destroy(this.gameObject); } } TRƯƠNG XUÂN NAM 30 Phần Bổ sung chi tiết khác TRƯƠNG XUÂN NAM 31 Hiệu ứng ▪ Gắn audio source vào camera ▪ Gắn audio source vào đối tượng ▪ Bổ sung hiệu ứng hình ảnh trúng chiêu ▪ Phượng hồng trúng giáo ▪ Quái vật trúng lửa TRƯƠNG XUÂN NAM 32 Phần Bài tập TRƯƠNG XUÂN NAM 33 Bài tập ▪ Tải project demo từ site txnam.net ▪ Bổ sung đoạn mã hiệu chỉnh phù hợp để: ▪ ▪ ▪ ▪ Phượng hồng phun lửa tối đa giây/lần Phượng hoàng diệt qi vật +3 điểm Phượng hồng trúng chiêu bị -10 điểm Hiển thị số điểm có phượng hồng vị trí thích hợp hình trị chơi ▪ Nếu điểm âm chuyển qua Scene Lost ▪ Phiên người chơi (trên bàn phím), người điều khiển phím mũi tên, người điều khiển phím W-S-A-D TRƯƠNG XUÂN NAM 34 ... XUÂN NAM “2d sprites background” TRƯƠNG XUÂN NAM “sprites 2d phoenix” TRƯƠNG XUÂN NAM “sprites 2d fire” TRƯƠNG XUÂN NAM “sprites 2d devil” TRƯƠNG XUÂN NAM 10 “2d sprites spear” TRƯƠNG XUÂN NAM. .. ràng TRƯƠNG XN NAM 14 Phần Xây dựng hình trị chơi TRƯƠNG XN NAM 15 Xây dựng hình trị chơi ▪ Background: chơi ▪ Phượng hoàng: nhân vật ▪ Boss: đối tượng điều khiển quái vật phía máy TRƯƠNG XUÂN NAM. .. chiêu ▪ Phượng hồng trúng giáo ▪ Quái vật trúng lửa TRƯƠNG XUÂN NAM 32 Phần Bài tập TRƯƠNG XUÂN NAM 33 Bài tập ▪ Tải project demo từ site txnam.net ▪ Bổ sung đoạn mã hiệu chỉnh phù hợp để: ▪ ▪