码迷,mamicode.com
首页 > 其他好文 > 详细

pygame学习(3) 画面和字幕

时间:2020-06-13 19:46:04      阅读:63      评论:0      收藏:0      [点我收藏+]

标签: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用来显示。

 

pygame学习(3) 画面和字幕

标签:splay   学习   设计   waiting   实例化   running   fill   star   display   

原文地址:https://www.cnblogs.com/snailbuster/p/13121312.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!