用户:
爱编程的瑞瑞查看:0 回复:1 评论:0 创建时间:2023-01-08T14:54:31
【作品展示】

【作品介绍】
超级马里奥测试版,有问题找我
【作品源代码】
import pgzrun
import random
import time
import turtle
# 按上键跳左右键控制左右
# 按下键蹲 按N加速
# 按s键切换海洋和陆地
# 在海洋里按上键是游泳
# 注意!海洋里不能加速
# 按下g键拿东西,松开g键放下东西
# 按w键再放开g键时,物体像上抛
# 蹲下时放开g键物体像水平方向走
WIDTH = 948
HEIGHT = 710
mali=Actor('1', (474,0))
j=Actor('喵', (400,540))
mg=Actor('mg',(400,0))
# 变量区
mali_speed=0.3
jump=False
m=1
bu=10
s=0
op=0
na=0
j_speed=0
ji=0
jw=0
ui=0
luhai=2
ri=0
zl=0.1
zu=0
mg_sleep=5
mgd=0
# 准备工作
def draw():
global game_state,hp,mp
screen.blit('bg-1', (0, 0))
j.draw()
mali.draw()
mg.draw()
def update():
# 设置全局变量
global jump,mali_speed,game_state,m,bu,s,op,na,j_speed,ji,jw,ui,luhai,ri,zl,zu,mg_sleep,mgd
# 蘑菇脚本
mg.x+=mg_sleep
mg.angle-=mg_sleep
mg.y-=mgd
mgd-=0.3
if (mg.y>=560):
mg.y+=mgd
mgd=0
if (mg.x>=948 or mg.x<=0):
mg_sleep=-mg_sleep
# 旋转跳
if keyboard.e and luhai==1:
if (zu == 2):
zu = 0
if (m != 12):
m = 12
mali.image = '12'
elif (m == 12):
m = 13
mali.image = '13'
zu += 1
if (mali.y >= 540):
mali.y += mali_speed
mali_speed = 5
# 扔
if (mali.y >= 540):
if (na == 0):
mali.image = '1'
if (na == 1):
mali.image = '3'
mali.y += mali_speed
mali_speed = 0
m = 1
mali.y -= mali_speed
mali_speed-=zl
j.x+=ji
if (na==1):
na=0
ui=1
elif (na==0):
if (ui==1):
mali.y-=30
m=5
mali.image = '5'
ui=0
# 物体下落
j.y -= j_speed
j_speed-=zl
# 物体撞击地面
if (j.y>=540):
j.y+=j_speed
j_speed=0
# 拿和抛的设置
if keyboard.g:
if j.collidepoint(mali.pos):
j.x=mali.x+10
j.y=mali.y
na=1
j_speed=0
if (m==14):
j_speed=8
elif (m==10):
if (op==0):
ji=-10
jw=1
elif (op==1):
ji=10
jw=2
# 物体阻力
if (ji!=0):
if (jw==2):
ji-=0.5
else:
ji+=0.5
# 跳和游泳
if keyboard.up:
if (mali.y<=540):
if (luhai==1):
mali_speed=10
elif (luhai==2):
mali_speed = 2
if (ri==9):
ri=0
if (m != 15 and m !=16):
m=15
if (na==0):
mali.image='15'
else:
mali.image='18'
elif (m == 15):
m=16
if (na==0):
mali.image='16'
else:
mali.image='19'
elif (m == 16):
m=17
if (na==0):
mali.image='17'
else:
mali.image='20'
if (luhai == 1):
m=7
mali.image='7'
if (ri != 9):
ri+=1
# 掉落
if (mali_speed<=-1):
if (m != 5 and luhai==1 and m!=12 and m!=13):
m=8
mali.image='8'
# 向左走
if keyboard.left:
op=0
if (s==5):
s=0
if (m==1):
if (na==0):
mali.image='2'
elif (na==1):
mali.image='4'
m=0
elif (m==2):
if (na==0):
mali.image='1'
elif (na==1):
mali.image='3'
m=1
mali.x-=bu
s+=1
# 向右走
if keyboard.right:
if (op==0 and bu==15):
mali.image='9'
time.sleep(0.5)
op=1
if (s==5):
s=0
if (m == 1 or m == 2):
if (m == 1):
if (na==0):
mali.image='2'
elif (na==1):
mali.image='4'
m=2
elif (m==2):
if (na==0):
mali.image='1'
elif (na==1):
mali.image='3'
m=1
mali.x+=bu
s+=1
# 加速
if keyboard.n:
if (luhai==1):
bu=15
else:
if (luhai==1):
bu=5
elif (luhai==2):
bu=2
# 蹲
if keyboard.down:
m=10
if (na==0):
mali.image='10'
elif (na==1):
mali.image='11'
# 抬头扔
if keyboard.w:
if (na==1):
m=14
mali.image='14'
# 切换海洋与陆地
if keyboard.s:
if (luhai==1):
luhai=2
else:
luhai=1
if (luhai==1):
zl=0.3
else:
zl=0.1
pgzrun.go()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn