一 、程序预览
今天我们实现推箱子的第一部分,实现一个基本的推箱子图形界面(这一部分,还不会动,不要着急,主要为了后面讲类的定义和应用)

【turtle推箱子游戏效果图】
这里插播一条粉丝福利,如果你正在学习Python或者有计划学习Python,想要突破自我,对未来十分迷茫的,可以点击这里获取最新的Python学习资料和学习路线规划(免费分享,记得关注)
二、 窗口初始化
1. 代码:
#准备好turtle海龟绘图库
import turtle
#定义一个窗口,名为win
win = turtle.Screen()
#窗口的宽度650,高度650,左上角距左侧200,左上角距顶部0
win.setup(650, 650, 200, 0)
#窗口的标题
win.title('推箱子小游戏')
#窗口的背景颜色
win.bgcolor("yellow")
#注册一下这些图片为图标,以后会用到
for i in ['wall.gif','o.gif','p.gif','box.gif','boxc.gif']:
win.register_shape(i)
#建立一个地图
level_1 = [
' XXX ',
' XOX ',
' X XXXX',
'XXXB BOX',
'XO BPXXX',
'XXXXBX ',
' XOX ',
' XXX ']
#窗体循环
win.mainloop()
2.相关图片素材

【推箱子游戏的素材图片】
3.说明
代码中level_1是存储地图的列表,这只一个关卡,以后做多个关卡时,可以把这个列表改为二维列表。
列表中各种字母的含义如下:
X 表示墙,
O 表示推箱子的目的地
B 表示箱子的位置
P 表示玩家的位置
空白表示空白
三 、建立角色
1. 代码
#定义墙的变量名为wall
wall = turtle.Turtle()
#定义图标
wall.shape('wall.gif')
#默认抬笔
wall.penup()
#定义目标位置图片
box = turtle.Turtle()
box.shape('o.gif')
box.penup()
#定义玩家的图片
player = turtle.Turtle()
player.shape('p.gif')
player.penup()
四、 显示所有角色
1 代码
#遍历列表,列表是8行8列
for i in range(8):
for j in range(8):
#确定各位置的xy位置
x = -175 + j*50
y = 175 - i*50
#如果当前字母为 X
if level_1[i][j] == 'X':
#墙画笔移动并盖章
wall.goto(x, y)
wall.stamp()
#如果当前字母为O
elif level_1[i][j] == 'O':
#箱子目标的角色移动、盖章
box.goto(x, y)
box.stamp()
#如果当前字母为 P 玩家移动
elif level_1[i][j] == 'P':
player.goto(x, y)
#如果当前字母为 B,建立箱子角色,并设置默认值
elif level_1[i][j] == 'B':
box1 = turtle.Turtle()
box1.shape('box.gif')
box1.penup()
box1.goto(x,y)
好了,今天的程序比较简单,至此推箱子游戏中的各种角色已经准备好。
下一篇文章起,我们将利用这个游戏重点讲解类的应用,赶快实践起来,也可以提前试试一下,这样学习会领悟的更深

五、 源代码
import turtle
win = turtle.Screen()
win.setup(650, 650, 200, 0)
win.title('推箱子小游戏')
win.bgcolor("yellow")
for i in ['wall.gif','o.gif','p.gif','box.gif','boxc.gif']:
win.register_shape(i)
level_1 = [
' XXX ',
' XOX ',
' X XXXX',
'XXXB BOX',
'XO BPXXX',
'XXXXBX ',
' XOX ',
' XXX ']
wall = turtle.Turtle()
wall.shape('wall.gif')
wall.penup()
box = turtle.Turtle()
box.shape('o.gif')
box.penup()
player = turtle.Turtle()
player.shape('p.gif')
player.penup()
for i in range(8):
for j in range(8):
x = -175 + j*50
y = 175 - i*50
if level_1[i][j] == 'X':
wall.goto(x, y)
wall.stamp()
elif level_1[i][j] == 'O':
box.goto(x, y)
box.stamp()
elif level_1[i][j] == 'P':
player.goto(x, y)
elif level_1[i][j] == 'B':
box1 = turtle.Turtle()
box1.shape('box.gif')
box1.penup()
box1.goto(x,y)
win.mainloop()
最后,我精心筹备了一份全面的Python学习大礼包,完全免费分享给每一位渴望成长、希望突破自我现状却略感迷茫的朋友。无论您是编程新手还是希望深化技能的开发者,都欢迎加入我们的学习之旅,共同交流进步!
🌟 学习大礼包包含内容:
Python全领域学习路线图:一目了然,指引您从基础到进阶,再到专业领域的每一步学习路径,明确各方向的核心知识点。
超百节Python精品视频课程:涵盖Python编程的必备基础知识、高效爬虫技术、以及深入的数据分析技能,让您技能全面升级。
实战案例集锦:精选超过100个实战项目案例,从理论到实践,让您在解决实际问题的过程中,深化理解,提升编程能力。
华为独家Python漫画教程:创新学习方式,以轻松幽默的漫画形式,让您随时随地,利用碎片时间也能高效学习Python。
互联网企业Python面试真题集:精选历年知名互联网企业面试真题,助您提前备战,面试准备更充分,职场晋升更顺利。
👉 立即领取方式:只需【点击这里】,即刻解锁您的Python学习新篇章!让我们携手并进,在编程的海洋里探索无限可能



被折叠的 条评论
为什么被折叠?



