弹球游戏第二部分

目录:
主题代码
第一部分
今天,我们该详细讲讲弹球游戏第二部分。先看看代码:

class Ball:
    def __init__(self,canvas,paddle,color):
        self.canvas=canvas
        self.paddle = paddle
        self.id=canvas.create_oval(10,10,25,25,fill=color)
        self.canvas.move(self.id,245,100)
        starts=[-3,-2,-1,1,2,3]
        random.shuffle(starts)
        self.x=starts[0]
        self.y=-3
        self.canvas_height=self.canvas.winfo_height()
        self.canvas_width=self.canvas.winfo_width()
        self.hit_bottom=False
    def hit_paddle(self, pos):
        paddle_pos = self.canvas.coords(self.paddle.id)
        if pos[2] >= paddle_pos[0] and pos[0] <= paddle_pos[2]:
            if pos[3] >= paddle_pos[1] and pos[3] <= paddle_pos[3]:

                global c

                n = canvas.create_text(150, 170, text=c, fill='white', font=('Times', 20))

                canvas.itemconfig(n, text=c)
                if flag==False:
                    c+=1
                n=canvas.create_text(150, 170, text=c, fill='blue', font=('Times', 20))

                canvas.itemconfig(n,text=c)
                return True
        return False
    def draw(self):
        self.canvas.move(self.id,self.x,self.y)
        pos=self.canvas.coords(self.id)
        if pos[1]<=0:
            self.y=3
        if pos[3]>=self.canvas_height:
            self.hit_bottom=True
        if pos[3]>=self.canvas_height:
            self.y=-3
            global flag
            flag=True
        if self.hit_paddle(pos)==True:
            self.y=-3
        if pos[0] <= 0:
            self.x = 3
            flag=False
        if pos[2] >= self.canvas_width:
            self.x = -3


首先,我们定义了Ball类,然后定义了函数__init__(这是面向对象编程专用的),此函数有参数canvas,paddle,color,我们把它们都存在了它们的对象中,接着我们画出了圆(红(255,0,0)),并作出了它的移动,把它移动的方向存在了列表starts里面,通过random.shuffle随机小球的方向。
我们定义了函数hit_paddle,在里面判断小球会不会“穿墙而走”。然后我们做了个计分器。这一段很简单,我就不多说了。
draw函数主要判断小球会不会撞到画布,如果是就往后退。
今天就到这了,记得点赞加关注哦。
新手上路,如有不足,请见谅。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值