内容简介:这篇文章主要介绍了python编写弹球游戏的实现代码,需要的朋友可以参考下
弹球游戏:
from tkinter import * import time import random tk=Tk() #创建一个界面 tk.title("弹球游戏") canvas=Canvas(tk,width=800,height=600,bg="skyblue",bd=0,highlightthickness = 0) tk.resizable(0,0) #表示边框不能被拉伸 canvas.pack() #使部件放在主窗口中 tk.update() #刷新界面 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,240,100) #初始球的位置 stat=[-3,-2,-1,1,2,3] random.shuffle(stat) self.x=stat[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=3 if pos[3]>=self.canvas_height: #判断球拍是否有接到球 ,如果没接到游戏结束 self.hit_bottom=True if self.hit_paddle(pos)==True: #判断求是否碰到了球拍,如果碰到了使小球回弹 self.y=-3 if pos[0]<=0: #来判断球拍是不是碰到了边框,, self.x=3 if pos[2]>=self.canvas_width: self.x=-3 class Paddle: #球拍的的类 def __init__(self,canvans,color): self.canvas=canvas self.id=canvas.create_rectangle(0,0,150,10,fill=color) self.canvas.move(self.id,400,450) self.x=0 self.canvas_width=self.canvas.winfo_width() self.canvas.bind_all("<KeyPress-Left>",self.turn_left) #通过按键来使球拍移动 self.canvas.bind_all("<KeyPress-Right>", self.turn_right) def turn_left(self,event): #每次按键球拍移动的距离 self.x=-5 def turn_right(self,event): self.x=5 def draw(self): #球拍移动的方法 pos=self.canvas.coords(self.id) self.canvas.move(self.id, self.x, 0) if pos[0]<=0: self.x=0 if pos[2]>=self.canvas_width: self.x=0 paddle=Paddle(canvas,"blue") ball=Ball(canvas,paddle,"red") while True: #用循环 如果球怕没有接到球就推出 if ball.hit_bottom==False: ball.draw() paddle.draw() else: break tk.update_idletasks()# 不停的刷新画布 tk.update() time.sleep(0.01)
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- canvas 弹球
- 微软放弃的游戏被他们复活了:Windows经典「三维弹球」现实版,CAD建模、Arduino编程、数控机床打造,...
- 基于顺丰同城接口编写sdk,java三方sdk编写思路
- 使用 Clojure 编写 OpenWhisk 操作,第 1 部分: 使用 Lisp 方言为 OpenWhisk 编写简明的代码
- 编写一个Locust文件
- 编写现代 JavaScript 代码
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Paradigms of Artificial Intelligence Programming
Peter Norvig / Morgan Kaufmann / 1991-10-01 / USD 77.95
Paradigms of AI Programming is the first text to teach advanced Common Lisp techniques in the context of building major AI systems. By reconstructing authentic, complex AI programs using state-of-the-......一起来看看 《Paradigms of Artificial Intelligence Programming》 这本书的介绍吧!