清除表面的每一個迴路
def draw(self):
# clear screen."
self.screen.fill(self.color_bg)
# first draw background
# Then buttons
# then any extra top level text
# update
pygame.display.flip()
提示:對於顏色,你可以與人的名字叫pygame.Color()之類red
(gray20
和gray80
有一個很好的對比,使用的BG和文本)
from pygame import Color
text = Color('gray20')
您的按鈕,psuedocode。修復:作爲實例成員移動的顏色。
class Button(object):
def __init__(self, text, rect=None):
self.color_bg = Color("gray20")
self.color_text = color("gray80")
if rect is None: rect = Rect(0,0,1,1)
self.rect = rect
self._render()
def _render(self):
# draw button and .render() font, cache to surface for later.
self.surface_cached = self.surface.copy()
# render text
#if size changes, save rect.size of cached surface , mantaining location
self.rect.size = cache.get_rect.size
def draw(self):
# draw cached surface
screen.blit(self.surface_cached, self.rect)
對於testClick
使用Rect.collidepoint
http://www.pygame.org/docs/ref/rect.html#Rect.collidepoint
沒有100%地肯定pygame的,但大多數圖書館渲染後到前,所以你必須有代碼來渲染/位塊傳輸的背景** **第一,然後編碼呈現文本。 – thedaian