本文重点内容:pygame
前情准备:我们需要安装好python,没有安装?传送门➡️
https://blog.csdn.net/weixin%5F54714100/article/details/152517550
如果我们安装成功了python,那么我们就可以用【pip】指令完成pygame的安装
1pip install pygame // Windows 2 3pip3 install pygame // macOs
一个简单的小游戏:
绘制一个小球,通过方向键控制小球的移动,并使它不超过画布边界。
先来展示一下代码,下面会有一些知识点补充解释:
1import pygame 2import sys 3 4# 初始化 Pygame 5pygame.init() 6 7# 设置窗口大小 8WIDTH, HEIGHT = 800, 600 9screen = pygame.display.set_mode((WIDTH, HEIGHT)) 10pygame.display.set_caption("控制小球移动") # 设置标题 11 12# 颜色定义 13WHITE = (255, 255, 255) 14RED = (255, 0, 0) 15 16# 小球属性 17ball_radius = 30 # 小球的半径 18ball_x = WIDTH // 2 # ball_x是指小球圆心的位置x坐标,两个斜杠是整除的意思,见下方解释【1】 19ball_y = HEIGHT // 2 # ball_y是指小球圆心的位置y坐标 20ball_speed = 5 # 小球的移动速度 21 22# 游戏主循环 while循环,见下方解释【3】 23running = True 24while running: 25 screen.fill(WHITE) # 填充背景色 26 27 # 绘制小球 pygame.draw.circle 见下方解释【2】 28 pygame.draw.circle(screen, RED, (ball_x, ball_y), ball_radius) 29 30 # 更新画面 31 pygame.display.flip() 32 33 # 处理事件 for循环,见下方解释【3】 34 for event in pygame.event.get(): 35 if event.type == pygame.QUIT: 36 running = False 37 38 # 获取按键状态 39 keys = pygame.key.get_pressed() 40 if keys[pygame.K_LEFT]: 41 ball_x -= ball_speed # ball_x是指小球的位置x坐标 -= +=运算,见下方解释【4】 42 if keys[pygame.K_RIGHT]: 43 ball_x += ball_speed 44 if keys[pygame.K_UP]: 45 ball_y -= ball_speed # ball_y是指小球的位置y坐标 46 if keys[pygame.K_DOWN]: 47 ball_y += ball_speed 48 49 # 防止小球出界,读代码:如果小球的圆心x坐标减去半径,也就是最左边小于0的话, 50 # 就把横坐标重置到半径位置,确保小球能够完全展示在画面里, 51 # 其余语句同理,可以自己理解一下 52 if ball_x - ball_radius < 0: 53 ball_x = ball_radius 54 if ball_x + ball_radius > WIDTH: 55 ball_x = WIDTH - ball_radius 56 if ball_y - ball_radius < 0: 57 ball_y = ball_radius 58 if ball_y + ball_radius > HEIGHT: 59 ball_y = HEIGHT - ball_radius 60 61# 退出 Pygame 62pygame.quit() 63sys.exit()
引入pygame,import就是引入的意思
import sys
sys是什么?
指路:https://blog.csdn.net/weixin%5F54714100/article/details/153315741
代码解释:
按照注释其实能够对代码有一个比较清晰的了解。
1. // 作为整数除法运算符(//)用于执行地板除运算,返回商的整数部分
举个例子:WIDTH // 2,WIDTH的值是800,也就是 800 // 2,可以整除,运算结果就是400,
如果是801 // 2,结果等于400余1,舍去余数,得400。
如果是809 // 10,结果等于80余9,同样舍弃余数,得80。
这就是【地板】的意思 floor,取下面的值,向下取整。
2. pygame.draw.circle(screen, color, center, radius)
其中,参数surface指的是要画圆的Surface对象;
color指定了圆的颜色(由参数width决定该颜色是画圆的线的颜色还是填充色),该参数的类型是Color类或者表示颜色的元组;
center指定了圆心的位置,其类型是Vector2类或者表示位置的元组或列表;
radius表示圆的半径,该参数的类型是整型或者浮点型,如果该参数的值小于1,则不进行画圆的动作。
circle()函数的返回值是Rect类型的变量,表示画出的圆的范围。
3. 循环:
while循环:
解释,当 while后面的这个结果是【true】时,就会执行循环体,否则的话就跳出循环。
对应到代码里就是:先定义一个值为true的变量【running】,当running为true的时候就一直循环让小球操控运动,直到running变成【false】时,就结束了。
for循环:
让【event】在所有键盘动作【pygame.event.get()】里循环,执行循环体,遍历完所有的按键动作之后,循环结束。
循环检测按下键盘的动作,如果是【退出游戏】,就把running改成【false】结束主循环。
4. -= 运算符
举个例子:
a = 6
a -= 2 意思就是 a = a - 2, 是这行代码的简化写法
经过运算之后得到 a = 4
+= 运算符
举个例子:
b = 6
b += 2 意思就是 b = b + 2, 是这行代码的简化写法
经过运算之后得到 b = 8
《如何用python来做小游戏》 是转载文章,点击查看原文。

