Python-壁球游戏

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

#-*-coding:utf-8-*-importsimpleguitkassimpleguiimportrandom#初始化全局变量WIDTH=500HEIGHT=500BALL_RADIUS=8#壁球半径PADDLE_WIDTH=50#挡板宽度PADDLE_HEIGHT=8#挡板高度HALF_PADDLE_WIDTH=PADDLE_WIDTH/2HALF_PADDLE_HEIGHT=PADDLE_HEIGHT/2ball_pos=[250,250]ball_vel=[1,2]paddle_pos=220paddle_vel=0live=3score=0#发球defspawn_ball():globalball_pos,ball_vel#壁球的位置和速度分别用含有两个元素的列表表示,并声明为全局变量ball_pos=[250,250]ball_vel=[1,2]defnew_game():globalscore,live#分数和生命数globalpaddle_pos,paddle_vel#挡板的位置和速度score=0live=3paddle_pos=HEIGHT/2paddle_vel=0spawn_ball()defdraw(canvas):globalscore,live,paddle_pos,ball_pos,ball_vel,paddle_vel#代码写在下面#绘制球场中的线canvas.draw_line([0,250],[500,250],5,'white')canvas.draw_line([250,250],[250,500],5,'white')#绘制小球canvas.draw_circle([ball_pos[0],ball_pos[1]],10,5,'white','white')ball_pos[0]+=ball_vel[0]ball_pos[1]+=ball_vel[1]#绘制挡板canvas.draw_line([paddle_pos,495],[paddle_pos+60,495],10,'white')#绘制生命和分数canvas.draw_text('生命:'+str(live),(10,30),10,'yellow')canvas.draw_text('分数:'+str(score),(80,30),10,'yellow')#检查与上壁碰撞ifball_pos[1]=0:ball_vel[1]=-ball_vel[1]#创建失败案例iflive=1:ifball_pos[1]=620:live-=1ball_pos=[250,250]ball_vel=[1,2]iflive==0:canvas.draw_text('游戏结束',(200,200),20,'yellow')#创建成功案例iflive0:ifscore=50:canvas.draw_text('成功!',(50,250),50,'yellow')#检查与左右壁的碰撞ifball_pos[0]=495orball_pos[0]=5:ball_vel[0]=-ball_vel[0]#更新挡板的水平位置paddle_pos+=paddle_velifpaddle_pos0:paddle_pos=0elifpaddle_pos+60496:paddle_pos=440#检查与挡板的碰撞ifpaddle_pos=ball_pos[0]=paddle_pos+60:ifball_pos[1]==492:ball_vel[1]=-ball_vel[1]score+=1ifball_vel[0]0:ball_vel[0]-=0.1elifball_vel[0]0:ball_vel[0]+=0.1ifball_vel[1]0:ball_vel[1]-=0.1elifball_vel[1]0:ball_vel[1]+=0.1defkeydown(key):globalpaddle_velifkey==simplegui.KEY_MAP['left']:paddle_vel=-4#改变速度方向elifkey==simplegui.KEY_MAP['right']:paddle_vel=4defkeyup(key):globalpaddle_velifkey==simplegui.KEY_MAP['left']orkey==simplegui.KEY_MAP['right']:paddle_vel=0#创建框架frame=simplegui.create_frame(单人壁球,WIDTH,HEIGHT)frame.set_draw_handler(draw)frame.set_canvas_background(brown)frame.set_keydown_handler(keydown)frame.set_keyup_handler(keyup)frame.add_button(重新开始,new_game,100)#运行框架new_game()frame.start()

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功