美文网首页
python弹球游戏完整版

python弹球游戏完整版

作者: peter_ffec | 来源:发表于2021-07-21 19:50 被阅读0次

from tkinterimport *

import time

import random

#弹球游戏1:小球在屏幕上反弹

#canvas画布

#类Ball

class Ball:

def __init__(self,canvas,paddle,color):

# print("begin create ball:",type(canvas),color)

        self.canvas=canvas

self.paddle=paddle

self.id=canvas.create_oval(10,10,25,25,fill=color)#,绘制带颜色和上下坐标的椭圆形oval,保存小球ID

        self.canvas.move(self.id,250,100)#用x方向和y方向位移,让小球移动到中心位置(500/2; 200/2)

        starts=[-3,-2,-1,1,2,3]

random.shuffle(starts)#重新洗牌,对随机数重新放置

        self.x=starts[0]

self.y=-3 #每次向上移动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)#获取画布上某一个椭圆形当前位置坐标[x1,y1,x2,y2]两组坐标

        if pos[1]<=0:

self.y=3 #遇到上边缘,向下走

        if pos[3]>=self.canvas_height:

self.hit_bottom=True  #遇到下边缘,向上走

#判断是否碰到paddle

        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,canvas,color):

self.canvas = canvas

self.id =canvas.create_rectangle(0,0,100,10,fill=color)

self.canvas.move(self.id,200,300)

self.x=0

        self.canvas_width=self.canvas.winfo_width()

self.canvas.bind_all('<KeyPress-Left>',self.turn_left)#这里只把函数名传进来,并没有传turn_left()

        self.canvas.bind_all('<KeyPress-Right>',self.turn_right)

def draw(self):

self.canvas.move(self.id,self.x,0)#只能左右移动

        pos =self.canvas.coords(self.id)# 获取画布上某一个椭圆形当前位置坐标[x1,y1,x2,y2]两组坐标

        if pos[0] <=0:

self.x =0  # 遇到上边缘,向下走

        elif pos[2] >=self.canvas_width:

self.x =0  # 遇到下边缘,向上走

    def turn_left(self,evt):

self.x=-2

    def turn_right(self,evt):

self.x=2

tk = Tk()

tk.title('弹球游戏')

tk['width']=400

tk['height']=300

tk.resizable(False,False)#窗口大小不能调整,也可以用0替代False

tk.wm_attributes("-topmost",1)#此窗口放到其他所有窗口之前

canvas = Canvas(tk,width=500,height=400,bd=0,highlightthickness=0)#后面两个具名函数  bd high...表示画笔之外无边框

canvas.pack()#调整画布大小

tk.update()#动画初始化

paddle=Paddle(canvas,'black')

ball = Ball(canvas,paddle,'red')#把画布保存到对象变量中,准备在它上面画球

#循环动画,避免窗口马上关闭

while True:

if ball.hit_bottom==False:

ball.draw()

paddle.draw()

#重画图像

    tk.update_idletasks()

tk.update()

#等待一会

    time.sleep(0.01)

#关闭主窗口

tk.mainloop()# stops mainloop

相关文章

  • python弹球游戏完整版

    from tkinterimport * import time import random #弹球游戏1:小球在...

  • python弹球游戏

    先看一下我们的最终效果图 我们分9步来讲解如何写这个小游戏 1.创建游戏的主界面 我们用Python的内置模块Tk...

  • Python写个弹球的游戏

    这是菜鸟学python第41篇原创文章 阅读本文大概需要15分钟 我们前面讲了几篇关于类的知识点,为了让大家更好的...

  • 疯狂弹球

    最好玩的弹球游戏——疯狂弹球震撼来袭!最简单!最休闲!最疯狂!最与众不同的弹球游戏! 上手操作简单,玩法新颖有趣,...

  • 彩色弹球-好玩物理弹球技术支持

    彩色弹球-好玩物理弹球 彩色动物 彩色弹球 越弹越过瘾 全面适配IPhoneX 好玩的弹球游戏,快来体验吧~ ...

  • Python游戏练习之弹球示例

    这篇文章主要介绍了python实现的弹球小游戏,由键盘控制底部挡板移动,碰撞小球的游戏功能。 需求描述: ball...

  • 弹球游戏

    A 分析阶段 01 课程目标 今天我们做一个弹球游戏,小球在屏幕内跳动,我们控制一个小挡板,避免球落到底边。每接到...

  • 《趣学Python——教孩子学编程》学习笔记第13章

    第13章 你的第一个游戏:弹球 13.1 打击反弹球 我们将要开发一个有反弹球和球拍构成的游戏。球会在屏幕上飞过来...

  • 2019年10月19日周六下午班课堂分享

    课堂任务:弹球游戏之特效设计 教学知识目标: 1、复习弹球游戏的制作,深化理解方向的含义及应用 2、学习“虚象”的...

  • pygame入门实例:简单的弹球游戏

    效果图如下:弹球游戏 源代码如下:

网友评论

      本文标题:python弹球游戏完整版

      本文链接:https://www.haomeiwen.com/subject/mjxsmltx.html