标签:splay 学习 设计 waiting 实例化 running fill star display
画面和字幕是后续做游戏我非常需要的,那么如何让画面暂停下来呢?
在最开始的设计中有一个show_start_screen用来显示开始的画面,这个画面里面的功能很简单:
def show_start_screen(self): self.screen.fill(BLACK) self.draw_text(TITLE,48,WHITE,WIDTH/2,HEIGHT/4) self.draw_text("Arrow to move,space to jump",22,WHITE,WIDTH/2,HEIGHT/2) self.draw_text("Press a key to pla",22,WHITE,WIDTH/2,HEIGHT*3/4) pg.display.flip() self.wait_for_key()
一个上背景三个显示字幕刷新一下然后等按钮。那么很明显这个wait for key就是暂停功能所在了。
def wait_for_key(self): waiting = True while waiting: self.clock.tick(FPS) for event in pg.event.get(): if event.type == pg.QUIT: waiting = False self.running = False if event.type == pg.KEYUP: waiting = False
可以看到通过一个无限的while true来让屏幕暂停,当按下按键的时候waiting变成false才跳出了这个wait for key。暂停就是这么实现的。
那么上面的字幕是怎么显示的呢:
def draw_text(self,text,size,color,x,y): font = pg.font.Font(self.font_name,size) text_surface = font.render(text,True,color) text_rect = text_surface.get_rect() text_rect.midtop = (x,y) self.screen.blit(text_surface,text_rect)
这里先创建了一个字体对象font,self.font_name = pg.font.match_font(FONT_NAME)。前面已经把这个font name字体对象实例化了,size为字体大小。
pygame.font.Font.render() —— 在一个新 Surface 对象上绘制文本。参数一个内容一个抗锯齿一个颜色。
然后get_rect()是一个处理矩形图像的方法,通过它的midtop属性设置好后传给blit用来显示。
标签:splay 学习 设计 waiting 实例化 running fill star display
原文地址:https://www.cnblogs.com/snailbuster/p/13121312.html