代码
功能: 实现图片在窗口移动
import pygame import sys # 退出程序要用, sys.exit() pygame.init() # 初始化Pygame size = width, height = 800, 600 # 窗口尺寸 speed = [-2, 1] # 移动速度, x轴减2,y轴加1 bg = (255, 255, 255) # RGB 白色,背景颜色 """1.先初始化游戏,pygame.init() 2.再绘制窗口,pygame.display.set_mode() 3.再取窗口名字,pygame.display.set_caption() 4.再加载进来图片,pygame.image.load() 5.获取图片所在的矩形位置,turtle.get_rect() 6.循环事件""" # 创建指定大小的窗口 Surface,在前面 screen = pygame.display.set_mode(size) # 设置窗口标题 pygame.display.set_caption("小黑黑打架吗") # 加载图片, .image.load() turtle = pygame.image.load("18.gif") # 获得图像的位置矩形, 移动就是修改位置 position = turtle.get_rect() # 死循环 """1.pygame.event.get()获取所有事件,先遍历事件 2.如果pygame.QUIT,则退出游戏 3.position.move() 图像矩形位置 4.判断撞墙 5.填充背景颜色,screen.fill(bg) 6.更新图像位置,screen.blit(turtle, position) 7.刷新画面,pygame.display.flip() 8.延迟,pygame.time.delay(10) """ while True: for event in pygame.event.get(): # 遍历所有实践,.event.get()获取所有事件 if event.type == pygame.QUIT: # ×掉窗口 sys.exit() # 退出程序 # 移动图像,即修改位置,speed在前面,speed = [-2, 1],x每次减2,y每次加1 position = position.move(speed) # .move() 函数移动,移动图像矩形位置 # 如果左边小于0,右边大于窗口宽度,即碰到左右边界 if position.left < 0 or position.right > width: # 翻转图像 turtle = pygame.transform.flip(turtle, True, False) # 水平翻转,垂直不翻转 # 反方向移动 speed[0] = -speed[0] # 改左右方向 # 如果上边小于0,下边大于高度,即碰到上下边界 if position.top < 0 or position.bottom > height: speed[1] = -speed[1] # 改上下方向 """移动图像就是调用 move()方法,事实上就是修改矩形范围的位置。x轴减2,y轴加1。 移动之后,我们使用 fill()方法将画布背景填充为白色, 我们再使用blit()方法将移动后的小蛇贴到画布上,最后更新、延迟。""" # 填充背景颜色 screen.fill(bg) # 更新图像,即更新位置, blit()就是将图像画到另外一个图像上 screen.blit(turtle, position) # 更新界面,刷新画面 display.flip() pygame.display.flip() # 延迟10毫秒, time模块里面的delay pygame.time.delay(10)
效果: 因为是动态,这里只截取一张图
推荐阅读博客
以下博客真的nb