2010-02-15 52 views
32

Ưu điểm và nhược điểm của việc tạo trò chơi trong DOM thuần túy so với việc sử dụng canvas là gì?Ưu điểm/nhược điểm của Canvas so với DOM trong phát triển trò chơi JavaScript là gì?

+1

Không sử dụng. Sử dụng flash hoặc đi bản địa. Trình duyệt không phải là một công cụ trò chơi và sẽ không bao giờ tồn tại. –

+1

Ngoài ra, không có cách nào tốt để thực hiện hiệu ứng âm thanh.Unity có một máy nghe nhạc web mà trong kinh nghiệm của tôi hoạt động độc đáo. – Deestan

+10

2012 là một thời gian đen tối. –

Trả lời

1

Với canvas, bạn có thể thực hiện các thao tác như xoay mà bạn không thể làm với mái vòm thuần túy mà không sử dụng một số thủ thuật "nặng". Dù sao thì dom nhanh hơn và bạn có thể sử dụng nó trong mọi trình duyệt mà không gặp vấn đề gì. Bạn phải suy nghĩ về những gì bạn sẽ sử dụng trong các trò chơi, nếu bạn sẽ chỉ sử dụng các hoạt động cơ bản sử dụng dom nếu không chọn vải.

+3

DOM thực sự nhanh hơn? Bạn chắc chắn? Tôi đã làm động cơ đơn giản trước trò chơi với 2-3 yếu tố chuyển động trong DOM và nó thật khủng khiếp. Ive không bao giờ thử canvas, nhưng các ví dụ tôi thấy trên internet khá nhanh (nhanh hơn các game DOM khác mà tôi thấy). Tôi có thể đọc về điều đó ở đâu? – budzor

+0

Tôi hoàn toàn chắc chắn. Hãy suy nghĩ về thực tế là canvas phải thao tác một lượng lớn dữ liệu. – mck89

+5

Um, không, lý do phổ biến để sử dụng canvas là nó nhanh hơn việc tạo và sửa đổi 1000 phần tử DOM. – Nickolay

0

Khi bạn phát triển bằng Canvas, bạn sẽ phải sử dụng kỹ thuật GameLoop rất đau đớn vì bạn sẽ phải vẽ lại tất cả các phần tử mọi lúc.

Khi bạn phát triển với DOM, bạn sẽ chỉ có thể vẽ lại đối tượng đã được sửa đổi và sẽ cho phép công việc khó khăn để thực hiện trình duyệt.

nếu trò chơi của bạn có một vài sửa đổi trên mỗi khung hình thì bạn có thể sử dụng DOM, nếu không hãy sử dụng Canvas! Nó nhanh hơn rất nhiều!

+3

Không đúng - nếu cảnh trò chơi của bạn không có thay đổi và bạn đã mã hóa chính xác - bạn không nên vẽ lại cảnh. Về vấn đề này Canvas đòi hỏi nhiều kiến ​​thức về kỹ thuật phát triển trò chơi – cloakedninjas

+0

Có, bạn đã đúng! Nhưng tôi nghĩ rằng nó không phải là một sự lựa chọn tốt bằng cách sử dụng canvas cho trường hợp đó – melanke

7

vải ưu:

  1. có thể thao tác pixel và áp dụng hiệu ứng lọc, dễ dàng như vậy cho xử lý hình ảnh;
  2. rất hiệu quả đối với kích thước nhỏ nhưng hàng trăm yếu tố trong game
  3. nhiều thư viện cho trò chơi có thể được tìm thấy bằng vải, chẳng hạn như box2dweb, và có thể làm cho trò chơi tuyệt vời như con chim giận dữ

khuyết điểm:

  1. không có trạng thái, vì vậy bạn phải ghi lại trạng thái của các phần tử trong canvas và tự xử lý thử nghiệm lần truy cập.
  2. hiệu quả thấp với kích thước rất lớn nhưng với một vài yếu tố trong trò chơi
  3. khả năng tuyệt vời, trách nhiệm lớn. sự tự do để vẽ, mang lại cho bạn phải tính phí của tất cả các nhân viên vẽ. May mắn thay, có rất nhiều thư viện ở đó, chẳng hạn như cocos2d-html5, IvanK.

DOM ưu:

  1. vẽ bởi trình duyệt, vì vậy ít dễ bị lỗi;

khuyết điểm:

  1. có thể làm hình ảnh động đơn giản với chỉ CSS, mà làm cho các trò chơi không thông thạo;
  2. không tốt cho việc thao tác hàng trăm phần tử DOM;  
+1

lần đã thay đổi, Trình duyệt Bố cục Công cụ đã trở nên nhanh hơn và JS có thể làm các hoạt ảnh phức tạp mà CSS không thể. cộng với, với lập trình thích hợp, DOM có thể xử lý các trò chơi. Bạn cũng có thể tạo kịch bản cho trình kết xuất DOM cho các công cụ Vật lý nếu bạn nhập vào loại điều đó – K3v1n

+0

@ K3v1n, Câu hỏi thực sự là Tại sao không canvas? – Pacerier

+0

@ Canvas đệm có nghĩa là ở mức thấp, do đó việc sử dụng API nguyên bản là phức tạp cho người mới bắt đầu (kể cả tôi). Cấp, có các thư viện để quản lý phần hiển thị. – K3v1n

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