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
Đồng bộ tư duy với Claude Code để ai lập trình hiệu quả hơn
Prompt AI tạo poster Art Deco phong cách thập niên 1920
3 Chrome extension giúp NotebookLM hoạt động tốt với các công cụ khác
10 prompt hữu ích cho giáo viên Hóa học
Vì sao Claude Code vẫn là công cụ được sử dụng nhiều nhất, ngay cả với những người hoàn toàn không biết lập trình?
Những công cụ miễn phí làm NotebookLM trở nên hữu ích gấp đôi
Prompt tạo tranh màu nước nghệ thuật bằng AI cực đẹp
Tại sao nút Copilot biến mất khỏi ứng dụng Office của bạn?
Thử nghiệm mô hình mới Claude Fable 5 trong thực tế: Liệu nó có xứng đáng với kỳ vọng?
Thử nghiệm mô hình mới Claude Fable 5 trong thực tế: Liệu nó có xứng đáng với kỳ vọng?
Cách kiểm tra hoạt động AI trên Windows theo ứng dụng
Karaoke Nước mắt hạnh phúc - Beat Midi
Cách cài WARP 1.1.1.1 trên máy tính để tăng tốc vào web
Physical AI là gì? phân biệt Physical AI với các thuật ngữ AI hiện đại
Cấu trúc prompt tạo bài viết chuẩn SEO hoàn chỉnh bằng AI
Cách tái cấu trúc mã nguồn với Claude Code
Thử nghiệm Claude Code, Codex và Antigravity trên một dự án điện tử thực tế: Kết quả ra sao?
10 prompt giúp bạn viết nội dung hay và chuyên nghiệp
4 thay đổi cần thực hiện trước khi mở một Obsidian vault mới
Perplexity vs ChatGPT: So sánh chi tiết hai trợ lý AI hàng đầu