双人对战乒乓球小游戏的实现

通俗易懂的文章

结尾有完整代码

1,创建游戏窗口

game.mainloop()的作用是保持窗口不结束,只有我们自己想结束的时候才可以关闭

bgcolor  创建背景颜色

2,创建第一个球拍speed(0)让球拍快速移动

shape 控制形状

goto   让球拍到达指定坐标

结果如图所示3,让球拍动起来

先定义两个向上移动,向下移动的函数

y=xm.ycor()    获取当前球拍位置

y=y+5  每按一次w  向上走5
y=y-5  每按一次s 向下走5

到此球拍就可以移动了

4,创建第二个球拍

和第一个球拍一样的方法

结果如图所示5,创建乒乓球

和创建球拍大同小异

但省去了隐藏的步骤

同时形状设为圆形

6,让乒乓球动起来

通过while循环让乒乓球一直动起来,直到程序被我们结束

pp.dx   pp.dy  为乒乓球的运动速度,可以动过改变数值来控制快慢

7,防止乒乓球出界

上一步乒乓球会直接出界,现在就要让他可以反弹

如果乒乓球碰到上下边界,则会改变y坐标方向的运动速度,

具体代码如图所示

8.使乒乓球更加流畅

game.tracer(0)

使游戏不在后台刷新;

game.update()

将此代码放在while循环中,从而达到流畅的效果

更改后的代码如图所示

9,让球拍接球

根据所设定的球拍大小,及乒乓球大小,来找对对应的边界值

通过if判断来实现拍碰球,球反弹

pp.setx(369)是为了防止球与拍发生粘连问题

10,判断球左右出界,并加分

添加xm和rh得分的变量

球若出界则加分11,添加分数

使用turtle创建一个画笔,并将其隐藏

注:这里使用write_score()是为了在一开始就显示分数0 :0

定义write_score()函数,来记录分数

pen.clear()是为了清除上一次分数的笔迹

score_text = "xm:{}   rh:{}".format(xm_score, rh_score)

将xm,rh当作变量,将xm_score, rh_score填充进{}中;;;;

每一次出界都要进行一次write_score()操作

到这里游戏已经基本完成

但我们发现每次运行完之后都会出现报错

我们可以做一些更改

并将最后面的   game.mainloop()    注释掉就OK啦

接下来是最终代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值