有没有办法清除表面上的任何物体?
答案 0 :(得分:2)
我不知道你正在使用什么API,所以这里有一个模糊的答案:
在几乎所有情况下,“清除”表面只会使与其表面尺寸相同的彩色四边形上色。使用的颜色是您想要的清晰颜色。
如果你知道怎么做blit,只需在表面上涂上相同尺寸的白色四边形。
答案 1 :(得分:2)
您无法撤消写在另一个图形顶部的图形,只能撤消在同一块纸板上绘制在另一个粉笔图顶部的粉笔插图。
通常在图形中完成的是你用黑板做的事情 - 清除整个部分,下次只重绘你想要保留的内容。
答案 2 :(得分:2)
当我不关心表现时,我会使用:
mysurface.fill((0,0,0))
将在整个表面上绘制指定的颜色(在这种情况下为黑色)。这是你所说的“清楚”吗?
哦,当然,你需要在这样做之后“翻转”表面才能在屏幕上看到它。
答案 3 :(得分:2)
我也有这个问题
创建表面:
mask=pygame.Surface((180,100),pygame.SRCALPHA)
清除表面:
mask.fill
mask.set_alpha(255)
画出你的线条/图像等
然后使用Alpha Blend标志将此表面blit到主表面
screen.blit(mask,(0,0),special_flags=(pygame.BLEND_RGBA_ADD))
答案 4 :(得分:2)
如果你想要的是制作一个pygame Surface对象" clean",那就是擦掉所有blit的图像,在每个游戏循环中将新图像blit到它并保持对等像素alpha而不创建一个新表面,你可以填充它,但使用透明色
而不是纯色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)
*对不起,我的英语很差,还在学习
答案 5 :(得分:1)
.fill((255,255,255,0))
似乎对我有用。
答案 6 :(得分:0)
对于pygame,您可以使用Surface.fill
答案 7 :(得分:0)
用填充物填充表面,然后使用set_alpha
使其透明surface.fill
surface.set_alpha(255)
答案 8 :(得分:0)
我在我制作的游戏中使用了以下内容:
self.image = 0 #to empty it
self.image = pygame.image.load("image")
答案 9 :(得分:0)
如果要在发条前清除表面,可以先用不太可能的随机颜色填充该表面,然后用该颜色设置alpha(色键),然后将具有透明背景的原始精灵重新发回该表面。
func callInfo(completion: @escaping (Date:Array<String>, Temper:Array<Float>) -> Void) -> {
// ... do your data fetching
// now the data is ready, call the handling function with data
completion(_date, _temper)
}
// Usage
callInfo(completion: { (date, temper) in
// the following two lines will execute when the data is ready
print(date)
print(temper)
})