2012-03-20 38 views
5

Tôi đang cố gắng tìm ra cách tốt nhất để làm sinh động một cách thủ tục sự phát triển của một nhà máy 2D trong iOS.Làm theo cách thủ tục để phát triển cây 2D

Tôi muốn nhà máy hoạt động để mang lại cảm giác lấn chiếm cho người dùng. Về cơ bản, để tạo hiệu ứng cho sự phát triển của một chi nhánh, với ít chồi mà cuối cùng sẽ sinh động thành lá phát triển đầy đủ. Để hít thở một chút cuộc sống vào nó, tôi cũng muốn cây bị ảnh hưởng một chút khi nó mọc lên, thay vì cảm thấy bàn tay được vẽ trên màn hình.

Một cách tôi đã nghĩ là sử dụng các đường cong CGPath và Bezier để tạo hình dạng của thân cây và lá, nhưng tôi không hoàn toàn chắc chắn làm thế nào để tạo hiệu ứng cho bản vẽ đường đi. Một khi tôi nhận được "bản vẽ" của thân cây, tôi muốn "trồng" chồi nhỏ tại một số điểm trên thân cây, vì dòng này đang phát triển/hoạt hình và những chồi này cũng sẽ bắt đầu mọc ra từ cây.

Bất kỳ đề xuất nào về tuyến đường cần thực hiện để thực hiện tác vụ này? Tôi thích làm việc theo cách thủ tục như trái ngược với vẽ tay mỗi khung hình và hoạt hình theo cách đó. Lý do của tôi là tôi tưởng tượng hoạt động theo thủ tục sẽ mất ít thời gian hơn, cho tôi nhiều quyền kiểm soát hơn các khía cạnh khác nhau của hoạt ảnh và có thể sử dụng lại trong các dự án khác (chưa kể, chương trình sẽ vui vẻ!)

I ' đã xem qua bài đăng trên blog này để vẽ các đường hoạt ảnh: http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/ Có lẽ đây sẽ là phương pháp bắt đầu để đạt được kết quả tôi muốn, tôi cần phải ngồi xuống và xem mã mà anh ấy đăng.

Ngoài ra, có lẽ đây là điều dễ sử dụng hơn bằng cách sử dụng cocos2d hoặc một cái gì đó tương tự? Hoặc có lẽ quartzcore và lõi hoạt hình sẽ hoạt động tốt.

Cảm ơn mọi đề xuất bạn có thể có, mọi thông tin đều hữu ích tại thời điểm này.

+0

Bạn chắc chắn đang đi đúng hướng với CAShapeLayers, nhưng những gì bạn đang cố gắng làm là khó khăn. Tuy nhiên, câu hỏi tuyệt vời! Chắc chắn trong danh sách yêu thích của tôi. – pasawaya

+0

Đã thêm một số liên kết tài nguyên dưới dạng không trả lời. Có lẽ nhiều hơn bạn đang tìm kiếm nhưng nó là một khu vực thuật toán thực sự phong phú (và có thể nhiều hơn bạn đang tìm kiếm). Tuy nhiên, có thể đưa ra một số ý tưởng. –

+0

Tôi đã thêm một số tài nguyên vào câu trả lời CW, nhưng tôi có cảm giác bạn không tìm kiếm các thuật toán tạo cây 3D phức tạp với L-Systems và những thứ tương tự, nhưng đúng hơn là làm thế nào để tạo hiệu ứng tăng trưởng 2D của cây hoạt hình đơn giản, đúng không? – pasawaya

Trả lời

2

(Câu hỏi tuyệt vời! Đăng bài này dưới dạng "wiki cộng đồng" vì đây không phải là câu trả lời mà chỉ là một số tham chiếu và tôi không muốn các liên kết bị nhầm lẫn trong nhận xét. Có lẽ mọi người muốn thêm vào phần này?)

Tôi đã thực hiện tìm kiếm đơn giản về "mã phân nhánh cây theo thủ tục" và có rất nhiều lượt truy cập thú vị - vùng thực sự phong phú.

Một bài đăng trên gameDev.stackExhange chỉ vào nguồn lực lớn này: Algorithmic Botany

Cũng Snappy Tree là khá tuyệt vời và mã nguồn có sẵn.

Hai cũng âm thanh thú vị:

TReal là một chương trình có khả năng tạo mô hình cây 3D sống động.

Arbaro là triển khai thuật toán tạo cây được mô tả trong Jason Weber & Joseph Penn: "Tạo và hiển thị các cây thực tế" được viết bằng Java.

Có lẽ dễ tiếp cận hơn với OP và kết quả ít phức tạp hơn là các hướng dẫn về ActionScript này trên fractal trees. Mã bản vẽ ActionScript khá dễ dịch sang Đồ họa cốt lõi.

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