Open QuanHP opened 10 months ago
@ltt0112 báo cáo trước tối t4 ngày 20/12
Tìm hiểu cách game vận hành đường chạy như thế nào qua việc phân tích file subway-suffer-client/Assets/Scripts/MainGame/TerrainController.cs
File TerrainController.cs liên quan đến việc điều khiển các địa hình trong game, có thể là để tạo ra hoặc cập nhật các địa hình khi người chơi di chuyển qua các cảnh khác nhau. Bao gồm 3 hành động chính :
1.Cập nhật điểm số: Đoạn mã này được gọi sau mỗi khung hình, và có chức năng cập nhật các thông tin về địa hình, nhân vật, và điểm số trong game. Đoạn mã này sử dụng nhiều biến và hàm để kiểm tra các điều kiện, tính toán, và hiển thị các giá trị liên quan đến điểm số. Một số biến và hàm quan trọng là:
2.Tạo hiệu ứng cho nhân vật: Đoạn mã này có chức năng tạo một hiệu ứng cho nhân vật, với tham số là một đối tượng kiểu Sprite và một chuỗi tên. Đoạn mã này thực hiện các bước sau:
3.Thêm địa hình mới: Đoạn mã này có chức năng thêm một đoạn địa hình mới vào danh sách listShowTerrain, với tham số là một biến kiểu bool chỉ ra có cần xử lý an toàn hay không. Đoạn mã này sử dụng nhiều biến và hàm để kiểm tra các điều kiện, tính toán, và hiển thị các đoạn địa hình. Một số biến và hàm quan trọng là:
Cách vận hành đường chạy của game cũng như cách game chạy các map lặp đi lặp lại vô tận có thể được mô tả như sau:
Cách tạo địa hình ngẫu nhiên trong game là sử dụng hàm Perlin noise để tạo ra các địa hình có dạng sóng. Hàm Perlin noise là một hàm số nhiễu (noise) được sử dụng rộng rãi trong lập trình đồ họa để tạo ra các hiệu ứng ngẫu nhiên nhưng vẫn có tính thẩm mỹ và hợp lý. Hàm này trả về một giá trị nằm trong khoảng từ -1 đến 1, tùy thuộc vào các tham số đầu vào như tọa độ x, y, z, hoặc thời gian t. Hàm Perlin noise để tạo ra một mảng hai chiều terrain có kích thước w x h, với mỗi phần tử terrain[x][y] là một giá trị được tính bằng công thức: terrain[x][y] = map(noise(xoff, yoff), 0, 1, -100, 100); Trong đó: