本项目通过python自带库tkinter实现,无需安装第三方库
本项目基于python3版本开发(如果你的是python2.x,运行可能会有问题)
一、基础界面
1 搭建基础窗体
使用tkinter库实现基础窗体,不加入任何功能只需如下三行代码
import tkinter as tk
win = tk.Tk()
win.mainloop()
运行代码生成的窗口如下
接下来我们需要在窗体里面,添加一个画布容器用来“装”俄罗斯方块,就是让这个画布作为面板,俄罗斯方块的移动和绘制均在这个画板上实现。
这里我们设定一些俄罗斯方块游戏参数
行数为R(取20)
列数为C(取12)
俄罗斯方块的边长为cell_size(取30)
通过tkinger的画布类Canvas实现的代码如下
import tkinter as tk
cell_size=30
C = 12
R = 20
height = R*cell_size
width = C*cell_size
win = tk.Tk()
canvas = tk.Canvas(win, width=width, height=height)
canvas.pack()
win.mainloop()
运行代码生成的窗口如下,此时界面的长宽就变成我们所需要的了
接下来在画板上绘制俄罗斯方块空白位
首先建立一个函数draw_cell_by_cr,用于在画板上绘制俄罗斯方块
然后遍历一遍所有行所有列,绘制上空白的方块(为了和背景区分,所以设置空白方块为轻灰色)
此时整体代码如下:
import tkinter as tk
cell_size=30
C = 12
R = 20
height = R*cell_size
width = C*cell_size
def draw_cell_by_cr(canvas, c, r, color = "#CCCCCC"):
"""
:param canvas: 画板,用于绘制一个方块的Canvas对象
:param c: 方块所在列
:param r: 方块所在行
:param color: 方块颜色,默认为#CCCCCC,轻灰色
:return:
"""
x0 = c * cell_size
y0 = r * cell_size
x1 = c * cell_size + cell_size
y1 = r * cell_size + cell_size
canvas.create_rectangle(x0, y0, x1, y1, fill=color, outline="white", width=2)
win = tk.Tk()
canvas = tk.Canvas(win, width=width, height=height,)
canvas.pack()
# 绘制方格块
for ri in range(R):
for ci in range(C):
draw_cell_by_cr(canvas, ci, ri)
win.mainloop()
此时运行代码生成的窗口如下