2012-10-16 20 views
11

Tôi đang nghiên cứu ý tưởng trò chơi (2D) cần đèn hướng. Về cơ bản tôi muốn thêm các nguồn ánh sáng có thể di chuyển và các tia sáng tương tác với các vật thể khác trên hiện trường.Đèn hướng

Những gì tôi đang làm bây giờ là một số thử nghiệm khi sử dụng cảm biến (box2d) và ccDrawLine tôi có thể đạt được điều gì đó tương tự như những gì tôi muốn. Về cơ bản tôi gửi một loạt các cảm biến từ điểm nhất định và với raycast phát hiện va chạm, có được điểm kết thúc và vẽ đường trên các cảm biến.

Chỉ muốn nhận được một số ý kiến ​​nếu đây là một cách hay để làm điều này hoặc là các tùy chọn khác tốt hơn để xây dựng một cái gì đó như thế này?

Ngoài ra, tôi muốn biết cách tạo hiệu ứng ánh sáng trên khu vực này (vùng cảm biến) để cung cấp hiệu ứng ánh sáng đẹp hơn. Ý tưởng nào?

+0

Bạn có thể cung cấp thêm một số chi tiết về loại hiệu ứng ánh sáng bạn muốn sản xuất không? ví dụ. Đèn có nên đổ bóng hay che chắn ở một số khu vực nhất định không? Bạn có muốn chiếu sáng hình ảnh hay khuếch tán trên cơ thể trong khung cảnh không? ... –

+0

Hãy tưởng tượng một hiệu ứng như một chiếc đèn lồng, nơi ánh sáng "tối hơn" ở cuối phạm vi của đèn lồng. – Setrio

Trả lời

1

Tôi có thể nghĩ ra một hiệu ứng trông tuyệt vời mà bạn có thể áp dụng. Đặt một số hạt bên trong khu vực nơi ánh sáng có thể nhìn thấy, giống như tia lửa phát sáng và rơi xuống rất chậm, giống như trên picture

Bất kỳ phương pháp tiếp cận nào cho vấn đề này cũng sẽ cần sử dụng phát hiện va chạm để số đối tượng box2d.

Cách tiếp cận khác khi bạn có nhiều đối tượng box2d tôi nghĩ là hiển thị màn hình của bạn thành kết cấu chỉ với màu đơn sắc (nên nhanh) và thực hiện dò tia trên kết cấu được tạo để tìm các pixel sẽ bị ảnh hưởng bởi ánh sáng. Bằng cách đó bạn bị giới hạn ở độ phân giải không phải là số đối tượng box2d.

0

Có mã nguồn tốt here về đèn động và tĩnh trong không gian 2D. Đó là mã Ruby nhưng dễ hiểu nên không nên lâu để chuyển nó sang Obj-C/Cocos2D/box2D.

Tôi thực sự hy vọng nó sẽ giúp bạn vì nó đã giúp tôi.

0

Hm, câu hỏi thú vị. Cocos2D cung cấp một số hiệu ứng mặt nạ khá linh hoạt. Bạn có thể có một mặt nạ gradient mà bạn nằm trên các đối tượng của bạn, nơi vị trí của nó phụ thuộc vào vị trí của "ánh sáng", do đó cho hiệu ứng mà các đối tượng của bạn đã được tô màu bởi ánh sáng.

Các vấn đề liên quan