pygame零根本入门

[复制链接]
发表于 2026-2-1 15:17:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一、初始化pygame

1.游戏框架搭建


      
  • pygame游戏框架搭建大要分为四个步调,如下图所示:

参考代码:
  1. # 导入pygame
  2. import pygame
  3. # 初始化游戏
  4. pygame.init()
  5. # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
  6. # 游戏窗口
  7. screen = pygame.display.set_mode((480, 700))  # 宽:480,高:700
  8. # 游戏退出
  9. pygame.quit()
复制代码
2.添加循环

   以上代码实行后,游戏窗口闪一下就关闭了。我们必要在窗口下方添加一个无穷循环,让窗口不绝表现。
  1. # 导入pygame
  2. import pygame
  3. # 初始化游戏
  4. pygame.init()
  5. # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
  6. # 游戏窗口
  7. screen = pygame.display.set_mode((480, 700))  # 宽:640,高:700
  8. # 添加无限循环,让窗口一直显示
  9. while True:
  10.     pass
  11. # 游戏退出
  12. pygame.quit()
复制代码
3.监听变乱

   以上代码实行后,窗口可以不绝表现,但无法关闭。以是我们必要监听变乱消息,比方关闭窗口变乱,按下键盘变乱等等。
  1. # 导入pygame
  2. import pygame
  3. # 初始化游戏
  4. pygame.init()
  5. # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
  6. # 游戏窗口
  7. screen = pygame.display.set_mode((480, 700))  # 宽:640,高:700
  8. #循环
  9. while True:
  10.     # 监听所有事件
  11.     for event in pygame.event.get():
  12.         # 点击❌号关闭,退出游戏
  13.         if event.type == pygame.QUIT:
  14.             #游戏退出
  15.             pygame.quit()
复制代码
4.终极代码

   根本设置完成后,我们可以设置窗口标题,更改配景颜色等等
  1. # 导入pygame
  2. import pygame
  3. # 初始化游戏
  4. pygame.init()
  5. # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
  6. # 游戏窗口
  7. screen = pygame.display.set_mode((480, 700))  # 宽:640,高:700
  8. # 窗口标题
  9. pygame.display.set_caption('原神')
  10. # 自定义颜色
  11. bg_color1 = (255,0,0)
  12. # 游戏窗口背景颜色
  13. screen.fill(bg_color1)
  14. #循环
  15. while True:
  16.     # 监听所有事件
  17.     for event in pygame.event.get():
  18.         # 点击❌号关闭,退出游戏
  19.         if event.type == pygame.QUIT:
  20.             #游戏退出
  21.             pygame.quit()
复制代码
  以上代码竣过后,颜色无法更改,我们必要加一行代码pygame.display.flip,去革新屏幕。代码如下:
  1. # 导入pygame
  2. import pygame
  3. # 初始化游戏
  4. pygame.init()
  5. # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
  6. # 游戏窗口
  7. screen = pygame.display.set_mode((480, 700))  # 宽:640,高:700
  8. # 窗口标题
  9. pygame.display.set_caption('原神')
  10. # 自定义颜色
  11. bg_color1 = (255,0,0)
  12. # 游戏窗口背景颜色
  13. screen.fill(bg_color1)
  14. #循环
  15. while True:
  16.     # 监听所有事件
  17.     for event in pygame.event.get():
  18.         # 点击❌号关闭,退出游戏
  19.         if event.type == pygame.QUIT:
  20.             #游戏退出
  21.             pygame.quit()
  22.     # 革新屏幕        pygame.display.flip()
复制代码
二、Pygame进阶

1.游戏窗口坐标系


2.画圆

  1. # 导入pygame
  2. import pygame
  3. # 初始化游戏
  4. pygame.init()
  5. # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
  6. # 游戏窗口
  7. screen = pygame.display.set_mode((480, 700))  # 宽:640,高:700
  8. # 窗口标题
  9. pygame.display.set_caption('原神')
  10. # 自定义颜色
  11. bg_color1 = (255,0,0)
  12. # 游戏窗口背景颜色
  13. screen.fill(bg_color1)
  14. # 绘制一个蓝色实心的圆形,其中[60,250]表示圆心的位置,40为半径,width默认为0
  15. pygame.draw.circle(screen, (0, 0, 255), [60, 250], 40,0)
  16. #循环
  17. while True:
  18.     # 监听所有事件
  19.     for event in pygame.event.get():
  20.         # 点击❌号关闭,退出游戏
  21.         if event.type == pygame.QUIT:
  22.             #游戏退出
  23.             pygame.quit()
  24.     # 刷新屏幕
  25.     pygame.display.flip()
复制代码
3.插入图片


  1. # 导入pygame
  2. import pygame
  3. # 初始化游戏
  4. pygame.init()
  5. # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
  6. # 游戏窗口
  7. screen = pygame.display.set_mode((480, 700))  # 宽:640,高:700
  8. # 窗口标题
  9. pygame.display.set_caption('原神')
  10. ball = pygame.image.load("ball.jpg")  # 加载图片
  11. WHITE = (255, 255, 255) #白色
  12. #循环
  13. while True:
  14.     # 监听所有事件
  15.     for event in pygame.event.get():
  16.         # 点击❌号关闭,退出游戏
  17.         if event.type == pygame.QUIT:
  18.             #游戏退出
  19.             pygame.quit()
  20.     screen.fill(WHITE) #重新背景颜色为白色
  21.     screen.blit(ball,(0,0))# 在原点位置放置图片
  22.     pygame.display.update()# 刷新屏幕
复制代码
4.让图片移动

  1. # 导入pygame
  2. import pygame
  3. import time
  4. # 初始化游戏
  5. pygame.init()
  6. # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
  7. # 游戏窗口
  8. screen = pygame.display.set_mode((480, 700))  # 宽:640,高:700
  9. ball = pygame.image.load("ball.jpg")  # 加载图片
  10. RED = (255, 0, 0) # 红色
  11. ballrect = ball.get_rect() #获取矩形的区域
  12. speed = [5,5] #偏移量
  13. #循环
  14. while True:
  15.     # 监听所有事件
  16.     for event in pygame.event.get():
  17.         # 点击❌号关闭,退出游戏
  18.         if event.type == pygame.QUIT:
  19.             #游戏退出
  20.             pygame.quit()
  21.     ballrect = ballrect.move(speed) #让图片移动
  22.     screen.fill(RED)  # 背景颜色为红色
  23.     screen.blit(ball, ballrect)# 将图片画到窗口
  24.     pygame.display.flip()# 刷新屏幕
  25.     time.sleep(0.1) #间接控制图片移动速度,越短越快
复制代码
5.碰撞反弹

  1. # 导入pygame
  2. import pygame
  3. import time
  4. # 初始化游戏
  5. pygame.init()
  6. # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
  7. # 游戏窗口
  8. screen = pygame.display.set_mode((480, 700))  # 宽:640,高:700
  9. ball = pygame.image.load("ball.jpg")  # 加载图片
  10. RED = (255, 0, 0) # 红色
  11. ballrect = ball.get_rect() #获取矩形的区域
  12. speed = [5,5] #偏移量
  13. #循环
  14. while True:
  15.     # 监听所有事件
  16.     for event in pygame.event.get():
  17.         # 点击❌号关闭,退出游戏
  18.         if event.type == pygame.QUIT:
  19.             #游戏退出
  20.             pygame.quit()
  21.     # 碰到左右边缘反弹
  22.     if ballrect.left < 0 or ballrect.right > 480:
  23.         speed[0] = - speed[0]
  24.     # 碰到上下边缘反弹
  25.     if ballrect.top < 0 or ballrect.bottom > 700:
  26.         speed[1] = - speed[1]
  27.     ballrect = ballrect.move(speed) #让图片移动
  28.     screen.fill(RED)  # 背景颜色为红色
  29.     screen.blit(ball, ballrect)# 将图片画到窗口
  30.     pygame.display.flip()# 刷新屏幕
  31.     time.sleep(0.1) #间接控制图片移动速度,越短越快
复制代码
三、Pygame进阶(一)

1.绘制矩形


  1. # 导入pygame
  2. import pygame
  3. import time
  4. # 初始化游戏
  5. pygame.init()
  6. # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
  7. # 游戏窗口
  8. screen = pygame.display.set_mode((480, 700))  # 宽:640,高:700
  9. RED = (255, 0, 0) # 红色
  10. #循环
  11. while True:
  12.     # 监听所有事件
  13.     for event in pygame.event.get():
  14.         # 点击❌号关闭,退出游戏
  15.         if event.type == pygame.QUIT:
  16.             #游戏退出
  17.             pygame.quit()
  18.     pygame.draw.rect(screen,RED,(50,50,150,50),0) #绘制矩形,第三个参数为矩形的范围:(left,top,width,height),最后一个参数,0表示填充矩形
  19.     pygame.draw.rect(screen, RED, (250, 50, 150, 50), 1)
  20.     pygame.draw.rect(screen, RED, (50, 150, 150, 50), 10)
  21.     pygame.display.flip()# 刷新屏幕
复制代码
2.绘制三角形


  1. # 导入pygame
  2. import pygame
  3. import time
  4. # 初始化游戏
  5. pygame.init()
  6. # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
  7. # 游戏窗口
  8. screen = pygame.display.set_mode((480, 700))  # 宽:640,高:700
  9. BLACK = (0, 0, 0)  # 黑色
  10. WHITE = (255, 255, 255)  # 白色
  11. RED = (255, 0, 0)  # 红色
  12. GREEN = (0, 255, 0)  # 绿色
  13. BLUE = (0, 0, 255)  # 蓝色
  14. screen.fill(WHITE)  # 填充背景色
  15. #循环
  16. while True:
  17.     # 监听所有事件
  18.     for event in pygame.event.get():
  19.         # 点击❌号关闭,退出游戏
  20.         if event.type == pygame.QUIT:
  21.             #游戏退出
  22.             pygame.quit()
  23.     """绘制三角形"""
  24.     points = [(60,0),(0,50),(120,50)]
  25.     pygame.draw.polygon(screen, GREEN, points, 0)
  26.     """绘制多边形"""
  27.     points = [(200, 75), (300, 25), (400, 75), (450, 25), (450, 125), (400, 75), (300, 125)]
  28.     pygame.draw.polygon(screen, RED, points, 0)
  29.     pygame.display.flip()# 刷新屏幕
复制代码
3.表现笔墨

  1. # 导入pygame
  2. import pygame
  3. # 初始化游戏
  4. pygame.init()
  5. # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
  6. # 游戏窗口
  7. screen = pygame.display.set_mode((480, 700))  # 宽:640,高:700
  8. # 窗口标题
  9. pygame.display.set_caption('原神')
  10. # 定义颜色
  11. BLACK = (0, 0, 0)  # 黑色
  12. WHITE = (255, 255, 255)  # 白色
  13. RED = (255, 0, 0)  # 红色
  14. GREEN = (0, 255, 0)  # 绿色
  15. BLUE = (0, 0, 255)  # 蓝色
  16. #循环
  17. while True:
  18.     # 监听所有事件
  19.     for event in pygame.event.get():
  20.         # 点击❌号关闭,退出游戏
  21.         if event.type == pygame.QUIT:
  22.             #游戏退出
  23.             pygame.quit()
  24.     text = pygame.font.SysFont("SimHei", 60)  # 创建一个font文本对象
  25.     text_font = text.render("游戏结束", 1, RED, BLUE)  # 渲染文本对象
  26.     screen.blit(text_font, (100,200))  # 绘制文本内容
  27.     pygame.display.update()# 刷新屏幕
复制代码
3.乒乓球创意

  1. # 导入pygame
  2. import pygame
  3. import time
  4. # 初始化游戏
  5. pygame.init()
  6. # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
  7. # 游戏窗口
  8. screen = pygame.display.set_mode((600, 550))  # 宽:600,高:550
  9. # 窗口标题
  10. pygame.display.set_caption('乒乓球争霸赛')
  11. # 定义颜色
  12. BLACK = (0, 0, 0)  # 黑色
  13. WHITE = (255, 255, 255)  # 白色
  14. RED = (255, 0, 0)  # 红色
  15. GREEN = (0, 255, 0)  # 绿色
  16. BLUE = (0, 0, 255)  # 蓝色
  17. Orange = (225, 121, 21)  # 橙色
  18. x = 120  # 乒乓球的x坐标
  19. y = 120  # 乒乓球的y坐标
  20. vx = 1  # 乒乓球的x轴初始速度
  21. vy = 1  # 乒乓球的y轴初始速度
  22. # boost = 0  # boost是加速器,如果接了10次,那么加速
  23. score = 0  # score是分数,接到一次乒乓球就加分
  24. # Bpc= 1  # 基础加分量英文:Basic plus component的缩写
  25. # 打印文本
  26. def printtext(font, text, x, y, color):
  27.     # 渲染文本
  28.     text_font = font.render(text, True, color)
  29.     # 绘制文本
  30.     screen.blit(text_font, (x, y))
  31. #循环
  32. while True:
  33.     screen.fill(Orange)  # 填充背景为橙色
  34.     # 监听所有事件
  35.     for event in pygame.event.get():
  36.         # 点击❌号关闭,退出游戏
  37.         if event.type == pygame.QUIT:
  38.             #游戏退出
  39.             pygame.quit()
  40.     ### 显示文字 ###
  41.     script1 = pygame.font.SysFont('stkaiti', 24)# 文字:移动鼠标控制乒乓板左右移动
  42.     script2 = pygame.font.SysFont('stkaiti', 20)# 文字:得分
  43.     printtext(script1, "移动鼠标控制乒乓板左右移动", 10, 12, BLACK)
  44.     printtext(script2, "得分", 550, 12, BLACK)
  45.     printtext(script2, str(score), 560,
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表