用户:春娇Vicky查看:0 回复:1 评论:0 创建时间:2021-06-17T17:42:10
【作品展示】

【作品介绍】
先看变量有哪些吧!
【作品源代码】
import random,sys,copy,os,pygame
from pygame.locals import *
FPS = 30
WINWIDTH = 800
WINHEIGHT = 600
HALF_WINWIDTH = int((WINWIDTH / 2))
HALF_WINHEIGHT = int((WINHEIGHT / 2))
TILEWIDTH = 50
TILEHEIGHT = 85
TILEFLOORHEIGHT = 40
CAN_MOVE_SPEED = 5
outside_decaration_pct = 20
brightblue = ( 0,170,255)
white = (255,255,255)
bgcolor = brightblue
textcolor = white
# 数组,是变量可以用到的。
up = 'up'
down = 'down'
left = 'left'
right = 'right'
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn
我需要复制粘贴#导入模块
from pygame import *
from sys import *
#初始化
init()
font.init()
#显示窗口
screen=display.set_mode((400,400))
#显示标题
display.set_caption("推箱子")
#设置地图坐标
x=0
y=0
#背景颜色
screen.fill((255,255,255))
#设置地图
map1=[]
#循环变量
i=0
#调整地图
for a in range(8):
for a in range(8):
map1.append(0)
for a in range(8):
map1[i]=10
i+=1
i=len(map1)-1
for a in range(8):
map1[i]=10
i-=1
i=8
for a in range(6):
map1[i]=10
i+=8
i=15
for a in range(6):
map1[i]=10
i+=8
map1[0]=0
map1[1]=0
map1[9]=10
map1[10]=10
map1[63]=0
map1[62]=0
map1[54]=10
map1[53]=10
map1[13]=4
map1[44]=5
map1[12]=6
map1[43]=7
map1[49]=1
i=0
k=49#人的编号
d=44#箱子1的编号
o=13#箱子2的编号
while True:#喵循环
for a in event.get():
if a.type==QUIT:
#退出窗口
quit()
exit()
#移动人,箱子
elif a.type == KEYDOWN: #键被按下
if a.key == K_LEFT:
if map1[k-1]==5 and map1[d-1]!=10 and map1[d-8]!=4:
map1[k]=0
k-=1
map1[d]=1
d-=1
map1[d]=5
if map1[k-1]==4 and map1[o-1]!=10 and map1[d-8]!=5:
map1[k]=0
k-=1
map1[o]=1
o-=1
map1[o]=4
if map1[k-1]!=10 and map1[k-1]!=5 and map1[k-1]!=4:
map1[k]=0
k-=1
map1[k]=1
elif a.key == K_RIGHT:
if map1[k+1]==5 and map1[d+1]!=10 and map1[d-8]!=4:
map1[k]=0
k+=1
map1[d]=1
d+=1
map1[d]=5
if map1[k+1]==4 and map1[o+1]!=10 and map1[d-8]!=5:
map1[k]=0
k+=1
map1[o]=1
o+=1
map1[o]=4
if map1[k+1]!=10 and map1[k+1]!=5 and map1[k-8]!=5:
map1[k]=0
k+=1
map1[k]=1
elif a.key == K_UP:
#判断上面是否有箱子,箱子上面是否是墙
#因为图层问题,界面上多显示出一个箱子
if map1[k-8]==5 and map1[d-8]!=10 and map1[d-8]!=4:
map1[k]=0
k-=8
map1[d]=1
d-=8
map1[d]=5
if map1[k-8]==4 and map1[o-8]!=10 and map1[d-8]!=5:
map1[k]=0
k-=8
map1[o]=1
o-=8
map1[o]=4
if map1[k-8]!=10 and map1[k-8]!=5 and map1[k-8]!=4 :
map1[k]=0
k-=8
map1[k]=1
elif a.key == K_DOWN:
if map1[k+8]==5 and map1[d+8]!=10 and map1[d-8]!=4:
map1[k]=0
k+=8
map1[d]=1
d+=8
map1[d]=5
if map1[k+8]==4 and map1[o+8]!=10 and map1[d-8]!=5:
map1[k]=0
k+=8
map1[o]=1
o+=8
map1[o]=4
if map1[k+8]!=10 and map1[k+8]!=5 and map1[k-8]!=5:
map1[k]=0
k+=8
map1[k]=1
#显示地图
for a in range(8):
for a in range(8):
if map1[i]==10:
draw.rect(screen,(196,74,86),(x,y,50,50),0)
draw.rect(screen,(0,0,0),(x,y,50,50),5)
if map1[i]==5:
draw.rect(screen,(219,182,125),(x,y,50,50),0)
draw.rect(screen,(0,0,0),(x,y,50,50),5)
if map1[i]==4:
draw.rect(screen,(219,182,125),(x,y,50,50),0)
draw.rect(screen,(0,0,0),(x,y,50,50),5)
if map1[i]==1:
draw.circle(screen,(55,162,212),(x+20,y+20),20,0)
draw.circle(screen,(0,0,0),(x+20,y+20),20,5)
if map1[i]==6:
draw.rect(screen,(0,212,101),(x,y,30,30),0)
draw.rect(screen,(0,0,0),(x,y,30,30),5)
if map1[i]==7:
draw.rect(screen,(0,212,101),(x,y,30,30),0)
draw.rect(screen,(0,0,0),(x,y,30,30),5)
if map1[i]==0:
draw.rect(screen,(255,255,255),(x,y,50,50),0)
if map1[12]==0:
draw.rect(screen,(0,212,101),(200,60,30,30),0)
draw.rect(screen,(0,0,0),(200,60,30,30),5)
if map1[43]==0:
draw.rect(screen,(0,212,101),(200-30,300-30,30,30),0)
draw.rect(screen,(0,0,0),(200-30,300-30,30,30),5)
i+=1
x+=50
x=0
y+=50
if (map1[12]==4 and map1[43]==4) or (map1[12]==5 and map1[43]==5) or (map1[12]==5 and map1[43]==4) or (map1[12]==4 and map1[43]==5):
font1=font.SysFont('方正喵宋简体',50)
font2=font1.render('恭喜你,闯关成功!',1,(0,0,0))
screen.blit(font2,(0,200))
i=0
x=0
y=0
#刷新
display.flip()点赞0
评论