pygame之屏幕显示

本文详细介绍了如何在Python游戏开发中处理对象移动时避免重影问题,包括使用blit函数正确绘制顺序和背景填充技巧。通过实例演示了如何在`pygame`中实现背景清空和对象重叠的处理,适合初学者理解游戏界面管理。
摘要由CSDN通过智能技术生成

显示过程

显示过程
注:后绘制的对象会把先绘制的对象的覆盖,在实现物体的移动时候应特别注意,避免出现重影
例如:

#第一段
screen.blit(cat,(100,100))
screen.fill(white)
#第二段
screen.fill(white)
screen.blit(cat,(100,100))

第一段运行后只显示白色背景,第二段运行后会显示图片运行效果如下图所示:
运行效果说明

相关操作说明

  • 颜色填充——调用display surface的fill()方法,传递参数为RGB三元组或RGBA四元组
  • 简单图形绘制——调用draw下的相关函数,注意指定第一个参数为display surface对象
  • 图片图像——先用image.load()转换为surface对象,然后使用display surface的blit()方法填充到界面
    注:blit方法必须给定前两个参数,第一个参数为图片所处surface对象,第二个参数为图片所处surface对象所在display surface对象中的位置,为一个二元组。
    另外,图片在转换为surface对象后可以转换格式以提高性能。不透明图片图像可以使用convert进行格式转换,透明图像采用convert_alpha进行格式转换
  • 文字——将文字转换为surface然后调用display surface对象的blit方法填充
Pygame 中,你可以使用 `pygame.font` 模块来在屏幕上显示文字。下面是一个简单的例子,展示如何在屏幕上显示文字: ```python import pygame pygame.init() # 设置屏幕大小 screen_width, screen_height = 640, 480 screen = pygame.display.set_mode((screen_width, screen_height)) # 设置字体和文字 font = pygame.font.SysFont("Arial", 36) text = font.render("Hello, world!", True, (255, 255, 255)) # 获取文字大小和位置 text_width, text_height = text.get_size() text_x = (screen_width - text_width) // 2 text_y = (screen_height - text_height) // 2 # 渲染屏幕 screen.fill((0, 0, 0)) screen.blit(text, (text_x, text_y)) pygame.display.flip() # 等待关闭 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() exit() ``` 在上面的例子中,我们首先导入 `pygame` 模块并初始化。然后,我们设置屏幕大小并创建一个 `Surface` 对象,这个对象就是我们即将在上面显示文字的屏幕。接下来,我们选择一个字体(这里选择了 Arial 字体,大小为 36),并用 `render` 方法渲染了一段文字,将其赋值给 `text` 变量。注意,第三个参数是文字颜色,这里使用了白色。然后,我们计算了文字显示在屏幕上的位置,并使用 `blit` 方法将文字绘制到屏幕上。最后,我们使用 `flip` 方法更新了屏幕,并进入了一个无限循环,等待用户关闭窗口。 这只是一个简单的例子,你可以使用类似的方法在屏幕上显示任何文字。如果你需要更多的文字处理功能,例如更改字体、大小、颜色等,可以查看 `pygame.font` 模块的文档以获取更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值