【Python游戏开发】恐龙快跑-03-绘制分数和准备面板

游戏运行效果:

    很多小伙伴后台私信留言想要游戏图片素材,小编已经为大家准备好了,关注本公众号回复数字:8  

即可获取素材。

3.1 绘制分数面板

新建一个score.py 用来制作分数面板。在文件中定义一个Score类,用来设置分数面板中所需要的图片、分数以及绘制图片和分数的绘图方法,具体代码如下:

from util import *class Score: """分数面板类""" def __init__(self, window): # 奖杯图片 self.high_score_image, self.high_rect = load_image("image/score/high_score.png", 35, 35) # 当前分数图片 self.current_score_image, self.current_rect = load_image("image/score/current_score.png", 35, 35) # 分别设置两张图片的位置 self.high_rect.topleft = (15, 20) self.current_rect.topleft = (15, 65) # 初始的时候分数都为0 self.high_score = 0 self.current_score = 0 # 从主程序中传递过来的游戏窗体对象,方便后面绘图 self.window = window def draw(self): # 绘制图片 self.window.blit(self.high_score_image, self.high_rect) self.window.blit(self.current_score_image, self.current_rect) # 绘制分数文本 text_plane,text_rect = draw_text(str(self.high_score) + " m", "font/monofonto.ttf", 28, (19, 130, 98), 75, 20, "topleft") self.window.blit(text_plane,text_rect) text_plane,text_rect = draw_text(str(self.current_score), "font/monofonto.ttf", 28, (19, 130, 98), 75, 65, "topleft") self.window.blit(text_plane, text_rect)

        接着在主程序game.py中创建分数面板对象,如下图所示:

        最后,由于分数随着游戏的运行会一直去改变,所以我们需要在while循环中添加绘制分数面板的代码,具体如下:

运行效果如下:

3.2 绘制游戏准备阶段面板

新建一个ready_screen.py 文件,然后在其中添加ReadScreen类,用来编写游戏处于准备阶段时效果代码,具体代码如下:

from random import randomfrom config import SCREEN_WIDTH, SCREEN_HEIGHTfrom util import draw_textclass ReadyScreen(): """游戏准备阶段显示的面板""" def __init__(self,window): # 设置显示文本的颜色 self.color = (19, 130, 98) # 设置是否显示准备面板 self.show = True # 从主程序中传递过来的对象,用来绘制文本 self.window = window def draw(self): """ 绘制文本的方法 :return: """ text_plane,text_rect = draw_text("恐龙快跑", "font/hxbsbt.otf", 100, self.color, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 4, "midtop") self.window.blit(text_plane, text_rect) text_plane,text_rect = draw_text("敲击空格开始游戏", "font/hxbsbt.otf", 60, self.color, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 3 + 50, "midtop") self.window.blit(text_plane,text_rect)

接下来,在主程序中创建并绘制游戏开始准备面板,具体代码如下:

运行效果:

        接下来,我们给文本添加一些酷炫闪光效果,解决方案,每隔一段时间更换一下文本的颜色,具体实现方式如下:

1) 在ReadyScreen类的init方法中添加一个记录改变颜色方法执行次数的属性。

2)我们在ReadyScreen类中添加改变颜色的方法

def change_color(self): """改变颜色的方法""" # 如果方法执行了10次 if self.call_count % 10 == 0: # 随机出RGB颜色 red = random.randint(1, 255) green = random.randint(1, 255) blue = random.randint(1, 255) # 重新设置颜色属性 self.color = (red, green, blue) # 每执行一次方法,计数器增加1 self.call_count += 1

3) 在主程序的while循环中调用改变颜色的方法

运行效果:

设计、编写教程不易,戳戳下面的赞赏功能,请他吃个棒棒糖吧