马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、初始化pygame
1.游戏框架搭建
- pygame游戏框架搭建大要分为四个步调,如下图所示:
参考代码:
- # 导入pygame
- import pygame
- # 初始化游戏
- pygame.init()
- # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
- # 游戏窗口
- screen = pygame.display.set_mode((480, 700)) # 宽:480,高:700
- # 游戏退出
- pygame.quit()
复制代码 2.添加循环
以上代码实行后,游戏窗口闪一下就关闭了。我们必要在窗口下方添加一个无穷循环,让窗口不绝表现。
- # 导入pygame
- import pygame
- # 初始化游戏
- pygame.init()
- # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
- # 游戏窗口
- screen = pygame.display.set_mode((480, 700)) # 宽:640,高:700
- # 添加无限循环,让窗口一直显示
- while True:
- pass
- # 游戏退出
- pygame.quit()
复制代码 3.监听变乱
以上代码实行后,窗口可以不绝表现,但无法关闭。以是我们必要监听变乱消息,比方关闭窗口变乱,按下键盘变乱等等。
- # 导入pygame
- import pygame
- # 初始化游戏
- pygame.init()
- # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
- # 游戏窗口
- screen = pygame.display.set_mode((480, 700)) # 宽:640,高:700
- #循环
- while True:
- # 监听所有事件
- for event in pygame.event.get():
- # 点击❌号关闭,退出游戏
- if event.type == pygame.QUIT:
- #游戏退出
- pygame.quit()
复制代码 4.终极代码
根本设置完成后,我们可以设置窗口标题,更改配景颜色等等
- # 导入pygame
- import pygame
- # 初始化游戏
- pygame.init()
- # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
- # 游戏窗口
- screen = pygame.display.set_mode((480, 700)) # 宽:640,高:700
- # 窗口标题
- pygame.display.set_caption('原神')
- # 自定义颜色
- bg_color1 = (255,0,0)
- # 游戏窗口背景颜色
- screen.fill(bg_color1)
- #循环
- while True:
- # 监听所有事件
- for event in pygame.event.get():
- # 点击❌号关闭,退出游戏
- if event.type == pygame.QUIT:
- #游戏退出
- pygame.quit()
复制代码 以上代码竣过后,颜色无法更改,我们必要加一行代码pygame.display.flip,去革新屏幕。代码如下:
- # 导入pygame
- import pygame
- # 初始化游戏
- pygame.init()
- # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
- # 游戏窗口
- screen = pygame.display.set_mode((480, 700)) # 宽:640,高:700
- # 窗口标题
- pygame.display.set_caption('原神')
- # 自定义颜色
- bg_color1 = (255,0,0)
- # 游戏窗口背景颜色
- screen.fill(bg_color1)
- #循环
- while True:
- # 监听所有事件
- for event in pygame.event.get():
- # 点击❌号关闭,退出游戏
- if event.type == pygame.QUIT:
- #游戏退出
- pygame.quit()
- # 革新屏幕 pygame.display.flip()
复制代码 二、Pygame进阶
1.游戏窗口坐标系
2.画圆
- # 导入pygame
- import pygame
- # 初始化游戏
- pygame.init()
- # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
- # 游戏窗口
- screen = pygame.display.set_mode((480, 700)) # 宽:640,高:700
- # 窗口标题
- pygame.display.set_caption('原神')
- # 自定义颜色
- bg_color1 = (255,0,0)
- # 游戏窗口背景颜色
- screen.fill(bg_color1)
- # 绘制一个蓝色实心的圆形,其中[60,250]表示圆心的位置,40为半径,width默认为0
- pygame.draw.circle(screen, (0, 0, 255), [60, 250], 40,0)
- #循环
- while True:
- # 监听所有事件
- for event in pygame.event.get():
- # 点击❌号关闭,退出游戏
- if event.type == pygame.QUIT:
- #游戏退出
- pygame.quit()
- # 刷新屏幕
- pygame.display.flip()
复制代码 3.插入图片
- # 导入pygame
- import pygame
- # 初始化游戏
- pygame.init()
- # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
- # 游戏窗口
- screen = pygame.display.set_mode((480, 700)) # 宽:640,高:700
- # 窗口标题
- pygame.display.set_caption('原神')
- ball = pygame.image.load("ball.jpg") # 加载图片
- WHITE = (255, 255, 255) #白色
- #循环
- while True:
- # 监听所有事件
- for event in pygame.event.get():
- # 点击❌号关闭,退出游戏
- if event.type == pygame.QUIT:
- #游戏退出
- pygame.quit()
- screen.fill(WHITE) #重新背景颜色为白色
- screen.blit(ball,(0,0))# 在原点位置放置图片
- pygame.display.update()# 刷新屏幕
复制代码 4.让图片移动
- # 导入pygame
- import pygame
- import time
- # 初始化游戏
- pygame.init()
- # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
- # 游戏窗口
- screen = pygame.display.set_mode((480, 700)) # 宽:640,高:700
- ball = pygame.image.load("ball.jpg") # 加载图片
- RED = (255, 0, 0) # 红色
- ballrect = ball.get_rect() #获取矩形的区域
- speed = [5,5] #偏移量
- #循环
- while True:
- # 监听所有事件
- for event in pygame.event.get():
- # 点击❌号关闭,退出游戏
- if event.type == pygame.QUIT:
- #游戏退出
- pygame.quit()
- ballrect = ballrect.move(speed) #让图片移动
- screen.fill(RED) # 背景颜色为红色
- screen.blit(ball, ballrect)# 将图片画到窗口
- pygame.display.flip()# 刷新屏幕
- time.sleep(0.1) #间接控制图片移动速度,越短越快
复制代码 5.碰撞反弹
- # 导入pygame
- import pygame
- import time
- # 初始化游戏
- pygame.init()
- # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
- # 游戏窗口
- screen = pygame.display.set_mode((480, 700)) # 宽:640,高:700
- ball = pygame.image.load("ball.jpg") # 加载图片
- RED = (255, 0, 0) # 红色
- ballrect = ball.get_rect() #获取矩形的区域
- speed = [5,5] #偏移量
- #循环
- while True:
- # 监听所有事件
- for event in pygame.event.get():
- # 点击❌号关闭,退出游戏
- if event.type == pygame.QUIT:
- #游戏退出
- pygame.quit()
- # 碰到左右边缘反弹
- if ballrect.left < 0 or ballrect.right > 480:
- speed[0] = - speed[0]
- # 碰到上下边缘反弹
- if ballrect.top < 0 or ballrect.bottom > 700:
- speed[1] = - speed[1]
- ballrect = ballrect.move(speed) #让图片移动
- screen.fill(RED) # 背景颜色为红色
- screen.blit(ball, ballrect)# 将图片画到窗口
- pygame.display.flip()# 刷新屏幕
- time.sleep(0.1) #间接控制图片移动速度,越短越快
复制代码 三、Pygame进阶(一)
1.绘制矩形
- # 导入pygame
- import pygame
- import time
- # 初始化游戏
- pygame.init()
- # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
- # 游戏窗口
- screen = pygame.display.set_mode((480, 700)) # 宽:640,高:700
- RED = (255, 0, 0) # 红色
- #循环
- while True:
- # 监听所有事件
- for event in pygame.event.get():
- # 点击❌号关闭,退出游戏
- if event.type == pygame.QUIT:
- #游戏退出
- pygame.quit()
- pygame.draw.rect(screen,RED,(50,50,150,50),0) #绘制矩形,第三个参数为矩形的范围:(left,top,width,height),最后一个参数,0表示填充矩形
- pygame.draw.rect(screen, RED, (250, 50, 150, 50), 1)
- pygame.draw.rect(screen, RED, (50, 150, 150, 50), 10)
- pygame.display.flip()# 刷新屏幕
复制代码 2.绘制三角形
- # 导入pygame
- import pygame
- import time
- # 初始化游戏
- pygame.init()
- # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
- # 游戏窗口
- screen = pygame.display.set_mode((480, 700)) # 宽:640,高:700
- BLACK = (0, 0, 0) # 黑色
- WHITE = (255, 255, 255) # 白色
- RED = (255, 0, 0) # 红色
- GREEN = (0, 255, 0) # 绿色
- BLUE = (0, 0, 255) # 蓝色
- screen.fill(WHITE) # 填充背景色
- #循环
- while True:
- # 监听所有事件
- for event in pygame.event.get():
- # 点击❌号关闭,退出游戏
- if event.type == pygame.QUIT:
- #游戏退出
- pygame.quit()
- """绘制三角形"""
- points = [(60,0),(0,50),(120,50)]
- pygame.draw.polygon(screen, GREEN, points, 0)
- """绘制多边形"""
- points = [(200, 75), (300, 25), (400, 75), (450, 25), (450, 125), (400, 75), (300, 125)]
- pygame.draw.polygon(screen, RED, points, 0)
- pygame.display.flip()# 刷新屏幕
复制代码 3.表现笔墨

- # 导入pygame
- import pygame
- # 初始化游戏
- pygame.init()
- # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
- # 游戏窗口
- screen = pygame.display.set_mode((480, 700)) # 宽:640,高:700
- # 窗口标题
- pygame.display.set_caption('原神')
- # 定义颜色
- BLACK = (0, 0, 0) # 黑色
- WHITE = (255, 255, 255) # 白色
- RED = (255, 0, 0) # 红色
- GREEN = (0, 255, 0) # 绿色
- BLUE = (0, 0, 255) # 蓝色
- #循环
- while True:
- # 监听所有事件
- for event in pygame.event.get():
- # 点击❌号关闭,退出游戏
- if event.type == pygame.QUIT:
- #游戏退出
- pygame.quit()
- text = pygame.font.SysFont("SimHei", 60) # 创建一个font文本对象
- text_font = text.render("游戏结束", 1, RED, BLUE) # 渲染文本对象
- screen.blit(text_font, (100,200)) # 绘制文本内容
- pygame.display.update()# 刷新屏幕
复制代码 3.乒乓球创意
- # 导入pygame
- import pygame
- import time
- # 初始化游戏
- pygame.init()
- # 游戏代码【这里写我们的游戏代码主体部分,比如游戏窗口,标题,背景颜色等等】
- # 游戏窗口
- screen = pygame.display.set_mode((600, 550)) # 宽:600,高:550
- # 窗口标题
- pygame.display.set_caption('乒乓球争霸赛')
- # 定义颜色
- BLACK = (0, 0, 0) # 黑色
- WHITE = (255, 255, 255) # 白色
- RED = (255, 0, 0) # 红色
- GREEN = (0, 255, 0) # 绿色
- BLUE = (0, 0, 255) # 蓝色
- Orange = (225, 121, 21) # 橙色
- x = 120 # 乒乓球的x坐标
- y = 120 # 乒乓球的y坐标
- vx = 1 # 乒乓球的x轴初始速度
- vy = 1 # 乒乓球的y轴初始速度
- # boost = 0 # boost是加速器,如果接了10次,那么加速
- score = 0 # score是分数,接到一次乒乓球就加分
- # Bpc= 1 # 基础加分量英文:Basic plus component的缩写
- # 打印文本
- def printtext(font, text, x, y, color):
- # 渲染文本
- text_font = font.render(text, True, color)
- # 绘制文本
- screen.blit(text_font, (x, y))
- #循环
- while True:
- screen.fill(Orange) # 填充背景为橙色
- # 监听所有事件
- for event in pygame.event.get():
- # 点击❌号关闭,退出游戏
- if event.type == pygame.QUIT:
- #游戏退出
- pygame.quit()
- ### 显示文字 ###
- script1 = pygame.font.SysFont('stkaiti', 24)# 文字:移动鼠标控制乒乓板左右移动
- script2 = pygame.font.SysFont('stkaiti', 20)# 文字:得分
- printtext(script1, "移动鼠标控制乒乓板左右移动", 10, 12, BLACK)
- printtext(script2, "得分", 550, 12, BLACK)
- printtext(script2, str(score), 560,
复制代码 |