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) 

总结

以上所述是小编给大家介绍的python编写弹球游戏的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

您可能感兴趣的文章:

  • Python实现的弹球小游戏示例
(0)

相关推荐

  • Python实现的弹球小游戏示例

    本文实例讲述了Python实现的弹球小游戏.分享给大家供大家参考,具体如下: 弹球 1. Ball 类 draw负责移动Ball 碰撞检测,反弹,Ball检测Paddle 2.Paddle类 draw负责移动Paddle 碰撞检测,确定能不能继续 监听键盘事件 3.主循环 绘制Ball和Paddle update sleep 代码 from Tkinter import * import random import time class Ball: def __init__(self, canv

  • 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() #刷

  • python 实现弹球游戏的示例代码

    运行效果 实现代码 # -*- coding: utf-8 -*- import tkinter as tkinter import tkinter.messagebox as mb import random,time class Ball(): ''' 创建Ball类,初始化对象,即创建对象设置属性, init函数是在对象被创建的同时就设置属性的一种方法,Python会在创建新对象时自动调用这个函数. ''' def __init__(self,canvas,paddle,score,col

  • python编写五子棋游戏

    本文实例为大家分享了python编写五子棋游戏的具体代码,供大家参考,具体内容如下 游戏代码及部分注释 import pygame #导入pygame游戏模块 import time #调用time库 import sys from pygame.locals import * initChessList = [] #保存的是棋盘坐标 initRole = 1 #1:代表白棋: 2:代表黑棋 resultFlag = 0 #结果标志 class StornPoint(): def __init_

  • Python 实现劳拉游戏的实例代码(四连环、重力四子棋)

    游戏规则:双方轮流选择棋盘的列号放进自己的棋子, 若棋盘上有四颗相同型号的棋子在一行.一列或一条斜线上连接起来, 则使用该型号棋子的玩家就赢了! 程序实现游戏,并将每局的数据保存到本地的文件中 首先我们要创建一个空白的棋盘 def into():#初始空白棋盘 for i in range(6): list_width=[] for j in range(8): list_width.append(' '+'|') screen.append(list_width) 然后呢 我们再写一个输赢判断

  • 基于Python实现超级玛丽游戏的示例代码

    目录 效果演示 基础源码 1.基础设置(tools部分) 2.设置背景音乐以及场景中的文字(setup部分) 3.设置游戏规则(load_screen) 4.设置游戏内菜单等(main_menu) 5.main() 6.调用以上函数实现 效果演示 基础源码 1.基础设置(tools部分) 这个部分设置马里奥以及游戏中蘑菇等怪的的移动设置. import os import pygame as pg keybinding = { 'action':pg.K_s, 'jump':pg.K_a, 'l

  • 基于Python实现围棋游戏的示例代码

    目录 1.导入模块 2.初始化棋盘 3. 开始游戏 4.放弃当前回合落子 5.悔棋判断 6.重新开始 7.右侧太极图的设置 8.落子设置 9.吃子规则判定设置 10.其他 11.程序入口 12.效果图 文件自取 1.导入模块 tkinter:ttk覆盖tkinter部分对象,ttk对tkinter进行了优化 copy:深拷贝时需要用到copy模块 tkinter.messagebox:围棋应用对象定义 如没有以上模块,在pycharm终端输入以下指令: pip install 相应模块 -i h

  • Python实现生命游戏的示例代码(tkinter版)

    目录 生命游戏(Game of Life) 游戏概述 生存定律 图形结构 代码实现 运行界面 使用简介 后续改进 生命游戏(Game of Life) 由剑桥大学约翰·何顿·康威设计的计算机程序.美国趣味数学大师马丁·加德纳(Martin Gardner,1914-2010)通过<科学美国人>杂志,将康威的生命游戏介绍给学术界之外的广大渎者,一时吸引了各行各业一大批人的兴趣,这时细胞自动机课题才吸引了科学家的注意. 游戏概述 用一个二维表格表示“生存空间”,空间的每个方格中都可放置一个生命细胞

  • 由Python编写的MySQL管理工具代码实例

    本文实例为大家分享了由Python编写的MySQL管理工具的具体代码,供大家参考,具体内容如下 import pymysql import pandas as pd from tkinter import Label,StringVar,Entry,Tk,Button from tkinter.simpledialog import askstring def Entry_address(): #输入数据库地址 root=Tk() l1=Label(root,text='服务器:').grid(

  • 使用Python编写一个最基础的代码解释器的要点解析

    一直以来都对编译器和解析器有着很大的兴趣,也很清楚一个编译器的概念和整体的框架,但是对于细节部分却不是很了解.我们编写的程序源代码实际上就是一串字符序列,编译器或者解释器可以直接理解并执行这个字符序列,这看起来实在是太奇妙了.本文会用Python实现一个简单的解析器,用于解释一种小的列表操作语言(类似于python的list).其实编译器.解释器并不神秘,只要对基本的理论理解之后,实现起来也比较简单(当然,一个产品级的编译器或解释器还是很复杂的). 这种列表语言支持的操作: veca = [1,

  • python实现生命游戏的示例代码(Game of Life)

    生命游戏的算法就不多解释了,百度一下介绍随处可见. 因为网上大多数版本都是基于pygame,matlab等外部库实现的,二维数组大多是用numpy,使用起来学习成本比较高,所以闲暇之余写一个不用外部依赖库,console输出的版本. # -*- coding: utf-8 -*- from time import sleep from copy import deepcopy WORLD_HIGH = 20 #世界长度 WORLD_WIDE = 40 #世界宽度 ALIVE_CON = 3 #复

随机推荐