Có cách nào để xóa một bề mặt khỏi bất cứ thứ gì đã bị thổi vào nó không?Có cách nào để "xóa" bề mặt không?
Trả lời
Tôi không biết những gì bạn đang sử dụng API, vì vậy đây là một câu trả lời mơ hồ:
Trong hầu hết các trường hợp "giải phóng" một bề mặt đơn giản BLITS một quad màu có cùng kích thước như bề mặt lên nó. Màu sắc được sử dụng là bất cứ điều gì bạn muốn màu sắc rõ ràng của bạn được.
Nếu bạn biết làm thế nào để blit, chỉ cần blit một quad trắng của cùng một kích thước lên bề mặt.
Đối pygame bạn có thể sử dụng Surface.fill
Có, tôi có thể sử dụng nó, nhưng đây là phần phức tạp: Bề mặt của tôi đang bị thổi lên bề mặt khác và đang sử dụng cờ SRCALPHA để hỗ trợ độ trong suốt. Nếu tôi đổ đầy toàn bộ bề mặt bằng một màu đồng nhất, toàn bộ bảng trò chơi của tôi sẽ chuyển thành màu đó, vì bề mặt này bị xóa trên mọi thứ .... Và tôi không biết cách giải quyết vấn đề này – Eric
@ Eric, bạn nên thêm những yêu cầu đó vào câu hỏi của bạn –
Điền mặt với đầy, sau đó làm cho nó minh bạch với set_alpha
surface.fill
surface.set_alpha(255)
Ok Tôi đã thử nó mà không có bất kỳ may mắn nào. Vẫn còn cùng một vấn đề .. – Eric
ah tôi thấy những gì bạn đang cố gắng làm bây giờ. Không, bạn không thể hoàn tác một blit trên bề mặt. Theo lời khuyên của Kylotan. –
Bạn không thể hoàn tác một đồ họa được viết trên đầu trang của một đồ họa nào hơn bạn có thể hoàn tác một hình minh họa phấn vẽ trên đỉnh của hình minh họa phấn khác trên cùng một bảng.
Điều thường được thực hiện trong đồ họa là những gì bạn muốn làm với bảng đen - xóa toàn bộ lô và lần tiếp theo chỉ vẽ lại những gì bạn muốn giữ.
Tôi nghĩ đó là những gì anh ta hỏi - Làm thế nào để xóa màn hình? – svineet
Khi tôi không quan tâm về hiệu suất, tôi sử dụng:
mysurface.fill((0,0,0))
nào sẽ rút ra những màu sắc nào đó (màu đen trong trường hợp này) trên toàn bộ bề mặt. Đó là những gì bạn có nghĩa là "rõ ràng"?
Ồ, và bạn cần, tất nhiên, để "lật" bề mặt sau khi thực hiện việc này để nó hiển thị trên màn hình.
Tôi có vấn đề này quá
Để tạo bề mặt:
mask=pygame.Surface((180,100),pygame.SRCALPHA)
Để xóa bề mặt:
mask.fill
mask.set_alpha(255)
Vẽ đường của bạn/images vv
Sau đó blit này bề mặt lên bề mặt chính của bạn bằng cách sử dụng cờ Alpha Blend
screen.blit(mask,(0,0),special_flags=(pygame.BLEND_RGBA_ADD))
.fill((255,255,255,0))
vẫn hoạt động đối với tôi.
Nếu những gì bạn muốn là làm cho một đối tượng bề mặt "sạch", tức là xóa tất cả các hình ảnh đã bị xóa, hãy ghi hình ảnh mới vào mỗi vòng lặp trò chơi và giữ alpha pixel ngang mà không cần tạo một bề mặt mới, bạn có thể lấp đầy nó, nhưng thay vì một màu cố định, sử dụng một màu trong suốt
from pygame import Color, Surface
empty = Color(0,0,0,0) #The last 0 indicates 0 alpha, a transparent color
field = Surface((width, height), flags=SRCALPHA)
#Inside the game loop
field.fill(empty)
* Xin lỗi là tiếng anh của tôi là xấu, vẫn đang học
tôi đã sử dụng sau đây trong một trò chơi tôi đã thực hiện:
self.image = 0 #to empty it
self.image = pygame.image.load("image")
- 1. spline bề mặt suy
- 2. Matlab: ô bề mặt không hoạt động
- 3. Cách nhanh nhất để xóa khối bộ nhớ (hoặc bề mặt SDL) là gì?
- 4. Nhấp nháy/rách bề mặt
- 5. Sử dụng Android Camera mà không có bề mặt Xem
- 6. Android: Cách khởi chạy MediaRecorder mà không có bề mặt hợp lệ để xem trước video?
- 7. Làm cách nào để trích xuất PNG có độ trong suốt lên bề mặt trong Pygame?
- 8. các ô bề mặt trong matplotlib
- 9. Làm cách nào để xóa bộ giữ bề mặt khi trình phát đa phương tiện kết thúc?
- 10. Giao điểm của lưới có bề mặt tham số
- 11. Bề mặt hồi quy theo lô
- 12. Chạm dài trên bề mặt (android)
- 13. Android. Làm thế nào chơi video trên bề mặt (OpenGL)
- 14. Rò rỉ bộ nhớ bề mặt Perl
- 15. Lỗi "Bề mặt đã được phát hành"
- 16. Cách tạo bề mặt với nền trong suốt trong pygame
- 17. Thuật toán để đơn giản hóa bề mặt 3D?
- 18. Làm cách nào để kết cấu bản đồ lên bề mặt cong?
- 19. Cách thích hợp để mở rộng bề mặt SDL mà không bị cắt?
- 20. Vẽ đồ thị bề mặt có mặt nạ bằng python, numpy và matplotlib
- 21. R: Vẽ một bề mặt 3D từ x, y, z
- 22. Điều khiển nhãn phát sáng trên bề mặt kính
- 23. Làm thế nào để vẽ một âm mưu bề mặt mà không có các cạnh màu đen trong MATLAB?
- 24. Giải pháp bề mặt tối thiểu trong Python
- 25. CLOD Kết cấu bề mặt rộng trong OpenGL
- 26. Ghi video trên Android của bề mặt OpenGL (GLSURFACEVIEW)
- 27. iPad ra mắt định hướng khi phẳng trên bề mặt
- 28. màu liên tục trên bề mặt 3d matplotlib
- 29. đơn giản R 3d nội suy/bề mặt lô
- 30. suy bề mặt xi lanh 3D trong Matlab
Bạn đang sử dụng bộ công cụ nào? Tk, Qt, Gtk, WxWidgets? –
TkInter Tôi đoán, hoặc tôi không biết thực sự? Im sử dụng pygame cho tất cả đồ họa của tôi. – Eric
Có, chắc chắn * là * một cách. –