目录:
主题代码
第一部分
今天,我们该详细讲讲弹球游戏第二部分。先看看代码:
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函数主要判断小球会不会撞到画布,如果是就往后退。
今天就到这了,记得点赞加关注哦。
新手上路,如有不足,请见谅。