专业的网站建设哪家快,台州手机网站建设,wordpress首饰主题,珠海市公司网站建设手把手制作Python小游戏#xff1a;俄罗斯方块1大家好#xff0c;新手第一次写文章#xff0c;请多多指教
A.准备工作#xff1a;
这里我们运用的是Pygame库#xff0c;因为Python没有内置#xff0c;所以需要下载
如果没有pygame#xff0c;可以到官网下载
pygame官网俄罗斯方块1大家好新手第一次写文章请多多指教
A.准备工作
这里我们运用的是Pygame库因为Python没有内置所以需要下载
如果没有pygame可以到官网下载
pygame官网单击右边即可pygame下载地址链接
加下来就可以导入试一试了这里作者我运用的是
visual-studio-code 因为它有个很方便作者很喜欢的地方可以自动保存
请这样设置
打开之后单击 文件(F)
在此菜单里再单击 自动保存 即可
运行程序需要右键单击 在终端运行python文件
如何下载VS Code 呢 单击右边链接官网
之后在
分别搜索
1.搜索 Chinese 下载第一个插件插件(中文简体)
2.搜索 python 下载第一个即可(需要注意的是建议大家在添加此插件时先下载好Python,作者就是这样)
3.强烈建议大家更新至最新版这样点击右上角的绿三角行就可以直接运行程序了由于介绍VS Code 的与介绍 Pygame 的网站、论文、笔记等很多在此我就不过多介绍了大家可以搜一搜。
接下来步入正题B.1制作俄罗斯方块的第一步
大家可以边学边做不过我当然建议大家可以以章节为单位看会了自己编对大家有好处嘛。
首先导入pygame库
import pygame
之后可以先运行一次。看一看有没有报错如果没有代表库安装正确否则务必要检查一下是否安装了、安装正确了吗等问题。
没问题的话就开始制作俄罗斯方块小游戏吧
首先导入一些需要用到的库(除Pygame其他都已经内置好了)
import pygame #此库未内置
import random #此库已内置
import sys #此库已内置
import time #此库已内置
from pygame.locals import * # *代表所有
接下来我们来定义一些变量在后面会用得上在此就不过多解释啦
初始化
FPS 25
WINDOWWIDTH 640
WINDOWHEIGTH 480
BOXSIZE 20
BOARDWIDTH 10
BOARDHEIDTH 20
BLANK .
MOVESIDEWAYSFREQ 0.15
MOVEDOWNFREQ 0.1
XMARGIN int((WINDOWWIDTH - (BOARDWIDTH * BOXSIZE))/2)
TOPMARGIN WINDOWHEIGHT - (BOARDHEIGHT * BOXSIZE) - 5
# 下面是设置一些颜色的RGB
WHITE (255, 255, 255)
GRAY (185, 185, 185)
BLACK (0, 0, 0)
RED (155, 0, 0)
LIGHTRED (175, 20, 20)
GREEN (0, 155, 0)
LIGHTBLUE (20, 20, 175)
BLUE (0, 0, 155)
YELLOW (155, 155, 0)
LIGHTYELLOW (175, 175, 20)
BORDERCOLOR BLUE
BGCOLOR BLACK
TEXTCOLOR WHITE
TEXTSHADOWCOLOR GRAY
COLORS (GLUE, RED, GREEN, YELLOW)
LIGHTCOLORS (LIGHTGLUE, LIGHTRED, LIGHTGREEN, LIGHTYELLOW)
assert lec(COLORS) len(LIGHTCOLORS)#每一种颜色必须有对应的亮色
TEMPLATEWIDTH 5
TEMPLATEHEIGHT 5
第一部分第一段的代码到这里结束啦大家可以自己写一写或者干脆复制粘贴。
我来解析其中的一部分
1.在上述代码中BOXSIZE,BOARDWIDTH,BOARDHEIGH的功能是建立游戏与屏幕像素点之间的关系。
2.
MOVESIDEWAYSFREQ 0.15
MOVEDOWNFREQ 0.1
通过上述两个变量每当玩家按下键盘中的左移键/右移键/下移键下降的方块也会相应的向左/右/下移动一个方块。而且玩家可以一直按住令其一直移动。
第一个是指每0.15s移动1格(左/右)第二个是指每0.1s移动1格(下)大家在最后可以试着改变一下数据
B.2 第二步设置形状
加下来是设置各个图形的形状建议大家复制粘贴没啥技术含量
sShapeTemplate [[.....,
.....,
..OO.,
.OO..,
.....]
[.....,
..O..,
..OO.,
...O.,
.....]]
iShapeTemplate [[..O..,
..O..,
..O..,
..O..,
.....]
[.....,
.....,
OOOO.,
.....,
.....]]
zShapeTemplate [[.....,
.....,
.OO..,
..OO.,
.....]
[.....,
..O..,
.OO..,
.O...,
.....]]
oShapeTemplate [[.....,
.....,
.OO..,
.OO..,
.....]]
jShapeTemplate [[.....,
.O...,
.OOO.,
.....,
.....],
[.....,
..OO.,
..O..,
..O..,
.....],
[.....,
.....,
.OOO.,
...O.,
.....],
[.....,
..O..,
..O..,
.OO..,
.....]]
lShapeTemplate [[.....,
...O.,
.OOO.,
.....,
.....],
[.....,
..O..,
..O..,
..OO.,
.....],
[.....,
.....,
.OOO.,
.O...,
.....],
[.....,
.OO..,
..O..,
..O..,
..O..]]
tShapeTemplate [[.....,
..O..,
.OOO.,
.....,
.....],
[.....,
..O..,
..OO.,
..O..,
.....],
[.....,
.....,
.OOO.,
..O..,
.....],
[.....,
..O..,
.OO..,
..O..,
.....]]
接下来我来作解释
在定义每个方块时必须知道每个类型的方块有几种“不同”的形状。在上述代码当中列表中嵌有了含有字符串的小列表来构成这个模板。一个所谓的模板包括了一个形状的所有的变换方式。
B.3 第三步创建形状字典
我们在这里需要一个字典变量PIECES来存储所有的不同形状的所有变化具体代码如下
PIECES {S:sShapeTemplate
I:iShapeTemplate
Z:zShapeTemplate
O:oShapeTemplate
J:jShapeTemplate
L:lShapeTemplate
T:tShapeTemplate}
B.4 第四步编写主函数
这是重点哦大家加油主函数main()的作用是创建一些全局变量并在游戏开始前显示一个开始画面代码如下
def main():
global FPSCLOCK, DISPLAYSURF, BASICFONT, BIGFONT
pygame.init()
FPSCLOCK pygame.time.Clock()
DISPLAYSURF pygame.display.set_mode((WINDOWWIDTH,WINDOWHEIGHT))
BASICFONT pygame.font.Font(freesansbold.ttf,18)
BIGFONT pygame.font.Font(freesansbold.ttf,100)
pygame.display.set_caption(Tetromino)
#showTextScreen(Tetromino)
while True: #Game Loop
#if random.randint(0,1) 0:
#pygame.mixer.music.looad(tetrisb.mid)
#else:
#pygame.mixer.music.looad(tetrisc.mid)
#pygame.mixer.music.play(-1, 0.0)
runGame()
#pygame.mixer.music.stop()
showTextScreen(Game Over !)
上述代码中的 runGame() 函数是核心在循环中首先随机决定播放那个音乐。之后调用 runGame() 函数运行游戏。当游戏失败时runGame() 函数就会返回 main() 函数这时会停止背景音乐并显示游戏失败的画面。当玩家按下一个键时函数 showTextScreen() 会显示游戏失败游戏循环会再次开始然后进行下一次游戏。
接下来的内容均在第二篇
如果你喜欢的话记得关注我呦