Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Hệ thống camera được thiết kế tốt có thể hấp dẫn người chơi và cho họ góc nhìn tốt hơn. Tạo hệ thống camera trong Godot đơn giản nhưng hiệu quả. Dưới đây là hướng dẫn chi tiết.
Trước khi bắt đầu, bạn cần tạo một thế giới game 2D và nhân vật trong Godot Game Engine mà camera có thể theo dõi.
Tạo cảnh 2D mới và thêm node CharacterBody2D. Nó sẽ hoạt động như nhân vật người chơi. Bên trong CharacterBody2D, thêm CollisionShape2D và đặt hình dạng của nó sang RectangleShape2D để cung cấp sự hiện diện vật lý của người chơi trong thế giới này.
Ngoài ra, bên trong CharacterBody2D, thêm node Sprite2D và gắn ảnh nhân vật người chơi vào nó. Tạo một script mới được gắn vào node CharacterBody2D và thêm code sau:
extends CharacterBody2D var speed = 200 func _physics_process(delta): var velocity = Vector2() if Input.is_action_pressed('ui_right'): velocity.x += 1 if Input.is_action_pressed('ui_left'): velocity.x -= 1 if Input.is_action_pressed('ui_down'): velocity.y += 1 if Input.is_action_pressed('ui_up'): velocity.y -= 1 velocity = velocity.normalized() * speed move_and_collide(velocity * delta)
Với code này, nhân vật người chơi giờ có thể di chuyển theo cả 4 hướng và sẽ va chạm với các nền tảng.
Bước tiếp theo là tạo camera theo dõi chuyển động của người chơi. Thêm node Camera2D làm con của node CharacterBody2D. Điều này đảm bảo camera sẽ luôn theo dõi người chơi. Để làm chuyển động mượt mà hơn, kích hoạt thuộc tính làm mượt vị trí của node Camera2D.
$Camera2D.enabled = true $Camera2D.position_smoothing_enabled = true
Việc hạn chế tầm nhìn của người chơi trong khu vực game thường rất quan trọng. Tuy nhiên, nếu không xử lý việc này đúng cách, camera có thể mở ra các vùng nằm ngoài phạm vi của game. Chúng có thể bao gồm các khoảng trống hoặc khu vực chưa hoàn thiện.
Godot cung cấp cách dễ dàng đặt các giới hạn camera và hạn chế chuyển động của nó trong khu vực chơi.
Trong thuộc tính node Camera2D, bạn có 4 biến: limit_left, limit_top, limit_right, và limit_bottom. Chúng quyết định các ranh giới của camera. Bạn có thể đặt những giá trị này theo kích thước thế giới game.
$Camera2D.limit_left = 0 $Camera2D.limit_top = 0 $Camera2D.limit_right = your_game_area_width $Camera2D.limit_bottom = your_game_area_height
Thay thế your_game_area_width và your_game_area_height bằng chiều rộng & cao của thế giới game. Tập lệnh này hạn chế hiệu quả camera trong khu vực mong muốn, cung cấp cách chơi rõ ràng và tập trung.
Tính năng phóng to và thu nhỏ có thể là công cụ giúp tạo ra những khoảnh khắc ấn tượng trong game. Ví dụ, bạn có thể muốn phóng to nhân vật người chơi trong một hành động mạnh mẽ hoặc thu nhỏ để hiện kẻ thù lớn hay xem toàn cảnh thế giới game.
Godot khiến việc thu nhỏ, phóng to dễ dàng với thuộc tính zoom của node Camera2D. Thuộc tính này là Vector2, cấp thu phóng mặc định là (1,1). Giá trị cao hơn sẽ thu nhỏ, khiến các đối tượng được xem xuất hiện nhỏ hơn, còn giá trị thấp hơn sẽ phóng to, làm đối tượng xuất hiện lớn hơn.
Để phóng to, dùng:
$Camera2D.zoom = Vector2(0.7, 0.7)
Để reset chế độ thu phóng, dùng:
$Camera2D.zoom = Vector2(1, 1)
Giá trị bạn chuyển sang Vector2() quyết định cấp thu phóng trên trục X và Y. Một giá trị zoom (0.7, 0.7) có nghĩa camera sẽ phóng to, còn (1.5, 1.5) có nghĩa camera sẽ thu nhỏ.
Bạn nên giữ giá trị giống nhau cho cả hai trục để duy trì tỉ lệ khung hình, nhưng bạn có thể thử nghiệm các giá trị khác để đạt được hiệu ứng độc đáo.
Hi vọng bài viết hữu ích với các bạn!
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn