您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python实现简单反弹球游戏

51自学网 2021-10-30 22:45:58
  python
这篇教程python实现简单反弹球游戏写得很实用,希望能帮到您。

python简单游戏-反弹球,供大家参考,具体内容如下

tkinter实现,直接贴上代码

from tkinter import*import timeimport randomclass 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]:                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 = 4        if pos[3] >= self.canvas_height:            self.hit_bottom=True        if self.hit_paddle(pos)==True:            self.y=-4        if pos[0] <= 0:            self.x = 4        if pos[2] >= self.canvas_width:            self.x = -4class Paddle:    def __init__(self,canvas,color):        self.canvas = canvas        self.id = canvas.create_rectangle(0,0,100,10,fill=color)        self.canvas.move(self.id,200,400)        self.x=0        self.canvas_width = self.canvas.winfo_width()        canvas.bind_all('<KeyPress-Left>',self.turn_left)        canvas.bind_all('<KeyPress-Right>',self.turn_right)        self.hit_bottom = False    def draw(self):        self.canvas.move(self.id,self.x,0)        pos = self.canvas.coords(self.id)        if pos[0] <= 0:            self.x = 0        elif pos[2] >= self.canvas_width:            self.x = 0    def turn_left(self,evt):        self.x=-7    def turn_right(self,evt):        self.x=7         tk = Tk()tk.title("反弹吧!球球")#tk.resizable(0,0)tk.wm_attributes("-topmost",1)canvas = Canvas(tk,width=650,height=600,bd=0,highlightthickness=0)canvas.pack()tk.update()paddle=Paddle(canvas,'blue')ball = Ball(canvas,paddle,'red')while 1:    if ball.hit_bottom==False:        ball.draw()        paddle.draw()    tk.update_idletasks()    tk.update()    time.sleep(0.01)

效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持51zixue.net。


python中Tkinter 窗口之输入框和文本框的实现
python和websocket构建实时日志跟踪器的步骤
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。