在上一教程中,我解释了消息显示功能如何工作以及如何编写。 现在,我们将编写一个渲染图像并为文本绘制背景的函数。
渲染图像非常简单,只需加载图像并将其添加到表面即可。 简单又容易。
- #100daysofcode第26天-进度
- 使用Swift创建篮球模拟应用程序:第1部分
- Gamee-前端Hrou II
- Google For India的重要公告
- Tunche DevBlog 4-焕然一新
def image_display(曲面,文件名,xy):
img = pygame.image.load(文件名)
surface.blit(img,xy)
Pygame支持许多图像扩展,如下所示:
JPG,PNG,GIF,BMP,PCX,TGA,TIF,LBM,PBM,XPM。
如果要轻松访问游戏中的图像,请将其放在执行python脚本的同一文件夹中。 这使我们可以仅使用文件名而不是文件的完整路径来显示图像:
image_display(surface,“ mountains.jpg”,[0,0])
现在,让我们开始绘制背景。
在Point&click / novel游戏中,文本通常显示在带有背景的对话框中。 让我们以“ Doki Doki文学俱乐部!”为例:
绘制矩形的函数是pygame.draw.rect()
。
请注意,我们将使用此功能来呈现文本。 如果您不熟悉它,建议您阅读本教程的上一部分。
def message_display(表面,颜色,矩形,字体名称,text_size,文本,rect_draw = False,text_rect = False,aa = False):
如果rect_draw:
pygame.draw.rect(surface, color, text_rect)
...
text_rect
参数需要4个值:矩形的width&height和矩形的X&Y位置。 这是我们将在本教程中使用的背景参数列表: [1366,168,0,600]
。 让我们用白色填充屏幕的下部。
message_display(*normal_message, "Ah mountains. The nature is truly beatiful.", True, [1366,168,0,600])
结果如下:
让我们修复一下……
...
如果rect_draw:
pygame.draw.rect(surface, rect_draw, text_rect)
是的,我们将通过rect_draw
变量传递颜色而不是True/False
。 这是一个很好的解决方案,但可能重命名rect_draw
参数会使它更漂亮。
是时候再尝试一下该功能了!
message_display(*normal_message, "Ah mountains. The nature is truly beatiful.", (0,0,0), [1366,168,0,600])
现在添加图像。 只需在Google上搜索“山壁纸1366×768”,然后将其渲染为0,0 XY。
看起来好多了,但是如您所见,背景不是透明的。 您可能想知道使矩形透明的问题是什么,因为将“ alpha”值添加到我们使用的颜色很容易。 但是问题是,即使添加另一个“ alpha”值,我们也无法绘制透明矩形。 古斯塔沃(Gustavo)明确表示,没有办法,但要创建另一个曲面,将其透明度设置为特定值,然后添加到我们的主曲面中。 这是我的操作方法:
如果bkglist:
#bkglist [0]-背景宽度,bkglist [1]-背景高度,bkglist [2]-颜色,bkglist [3]-透明度值
surf = pygame.Surface((bkglist [0],bkglist [1]),pygame.SRCALPHA)
surf.fill((** bkglist [2],bkglist [3]))
surface.blit(surf,(round((bkglist [0]-bkglist [0])/ 2),(size [1]-bkglist [1])))
这段代码的快速分解:您传递值列表,其中前两个是表面的宽度和高度,然后是颜色,最后是透明度值。 透明度值越小,透明度越高。 最小值是0,这是100%透明的,最大值是255,正如您可能已经猜到的那样,它根本不是透明的。
第一行创建一个曲面。 然后,它用指定的颜色填充表面并设置其透明度。 最后,将表面添加到主表面。
同样,最后进行计算以在适当的X&Y位置渲染矩形。
结果:
至此,该项目开始成形! 它唯一缺少的是可点击性和音乐,我们可以自豪地将其称为游戏!
本教程就是这样。 感谢您的阅读!