python实现简单反弹球游戏

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

tkinter实现,直接贴上代码

from tkinter import*
import time
import random

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]:
                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 = -4

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,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)

效果:

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

(0)

相关推荐

  • 教你如何用python开发一款数字推盘小游戏

    今年年初,新一季的<最强大脑>开播了,第一集选拔的时候大家做了一个数字游戏,名叫<数字华容道>,当时何猷君以二十几秒的成绩夺得该项目的冠军,看了这个游戏之后我决定要写一个<数字华容道>的程序,过去了半年,我终于记起了这件事,今天就来实现. 数字推盘游戏(n-puzzle)是一种智力游戏,常见的类型有十五数字推盘游戏和八数字推盘游戏等.十五数字推盘游戏的板上会有十五个方块和一个大小相当于一个方块的空位(供方块移动之用),当15个数字依次排序并且最后一个格子为空位即代表挑战

  • 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 #复

  • Python生命游戏实现原理及过程解析(附源代码)

    1. 生命游戏是什么 生命游戏是英国数学家约翰·何顿·康威在1970年发明的细胞自动机.它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞.一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量.如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去:相反,如果周围活细胞过少,这个细胞会因太孤单而死去. 规则看起来很简单,但却能演绎出无穷无尽的内容. 滑翔者:每4个回合"它"会向右下角走一格.虽然细胞早就是不同的细胞了,但它能保持原

  • 教你用Python写一个植物大战僵尸小游戏

    一.前言 上次写了一个俄罗斯方块,感觉好像大家都看懂了,这次就更新一个植物大战僵尸吧 二.引入模块 import pygame import random 三.完整代码 配置图片地址 IMAGE_PATH = 'imgs/' 设置页面宽高 scrrr_width = 800 scrrr_height = 560 创建控制游戏结束的状态 GAMEOVER = False 图片加载报错处理 LOG = '文件:{}中的方法:{}出错'.format(__file__, __name__) 创建地图类

  • 用Python写一个简易版弹球游戏

    我们前面讲了几篇关于类的知识点,为了让大家更好的掌握类的概念,并灵活的运用这些知识,我写了一个有趣又好玩的弹球的游戏,一来可以把类的知识融会一下,二来加深对Python的兴趣.你会发现哎呀Python写小游戏还是蛮方便的,蛮有意思的~~ 先看一下我们的最终效果图 我们分9步来讲解如何写这个小游戏 1.创建游戏的主界面 我们用Python的内置模块Tkinter来完成了,它是Python的标准GUI工具包,可以非常方便在制作GUI小工具,因为是跨平台的,可以方便的在win和linux下运行,我们用

  • python实现21点小游戏

    用python实现21点小游戏,供大家参考,具体内容如下 from random import shuffle import random import numpy as np from sys import exit # 初始化扑克牌 playing_cards = { "黑桃A": 1, "黑桃2": 2, "黑桃3": 3, "黑桃4": 4, "黑桃5": 5, "黑桃6": 6

  • python实战之90行代码写个猜数字游戏

    一.导入库 import random import time 二.注册用户 我们用变量与input实现 name = str(input('请输入用户名:')) print('欢迎您,'+name) 三.注册年龄 这里我们得用except制作乱输文本就游戏结束的程序 乱输文本就结束 try: age = int(input('请输入年龄:')) except ValueError: print('非法输入') age = 30000 顺便把年龄设为30000[滑稽] 再根据年龄大小分配金币 四

  • 详解Python 实现元胞自动机中的生命游戏(Game of life)

    简介 细胞自动机(又称元胞自动机),名字虽然很深奥,但是它的行为却是非常美妙的.所有这些怎样实现的呢?我们可以把计算机中的宇宙想象成是一堆方格子构成的封闭空间,尺寸为N的空间就有NN个格子.而每一个格子都可以看成是一个生命体,每个生命都有生和死两种状态,如果该格子生就显示蓝色,死则显示白色.每一个格子旁边都有邻居格子存在,如果我们把33的9个格子构成的正方形看成一个基本单位的话,那么这个正方形中心的格子的邻居就是它旁边的8个格子. 每个格子的生死遵循下面的原则: 1. 如果一个细胞周围有3个细胞

  • Python实战之实现康威生命游戏

    前言 康威生命游戏设计并不难,我的思路就是借助pygame进行外观的展示,最近一段时间的游戏项目都是使用pygame进行的,做起来比较顺利.内部代码的实现也比较简单根据他的规则我们需要的是多次的计算和判断,再刷新数组. 一.康威生命游戏规则 当周围仅有1个或没有存活细胞时, 原来的存活细胞进入死亡状态.(模拟生命数量稀少)当周围有2个或3个存活细胞时, 网格保持原样.当周围有4个及以上存活细胞时,原来的存活细胞亦进入死亡状态.(模拟生命数量过多)当周围有3个存活细胞时,空白网格变成存活细胞.(模

  • python实现简单反弹球游戏

    python简单游戏-反弹球,供大家参考,具体内容如下 tkinter实现,直接贴上代码 from tkinter import* import time import random 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

  • python实现简单五子棋游戏

    本文实例为大家分享了python实现简单五子棋游戏的具体代码,供大家参考,具体内容如下 from graphics import * from math import * import numpy as np def ai(): """ AI计算落子位置 """ maxmin(True, DEPTH, -99999999, 99999999) return next_point[0], next_point[1] def maxmin(is_ai

  • python实现简单俄罗斯方块游戏

    本文实例为大家分享了python实现简单俄罗斯方块游戏的具体代码,供大家参考,具体内容如下 import pygame,sys,random,time all_block = [[[0,0],[0,-1],[0,1],[0,2]],         [[0,0],[0,1],[1,1],[1,0]],         [[0,0],[0,-1],[-1,0],[-1,1]],          [[0,0],[0,1],[-1,-1],[-1,0]],           [[0,0],[0,1

  • Python实现简单扫雷游戏

    本文实例为大家分享了Python实现简单扫雷游戏的具体代码,供大家参考,具体内容如下 #coding: utf-8 __note__ = """ * 扫雷小游戏 * 需要python3.x以上 * 需要安装PyQt5 * pip install PyQt5 """   import sys   try:     import PyQt5 except ImportError:     import tkinter     from tkinter

  • 使用python实现简单五子棋游戏

    用python实现五子棋简单人机模式的练习过程,供大家参考,具体内容如下 第一次写博客,我尽力把它写好. 最近在初学python,今天就用自己的一些粗浅理解,来记录一下这几天的python简单人机五子棋游戏的练习,下面是实现过程的理解(是在cmd中运行的): 主要流程: *重点内容* - 首先是模块及类的划分 - 棋子类和棋盘类的方法 - 对策略类里的功能进行细分,调用棋子类和棋盘类 - 写出判断输赢的方法 - 用main函数进行整个游戏进度的控制 模块及类的划分 类的划分涉及到了面向对象的内容

  • Python实现简单石头剪刀布游戏

    近日在学习Python的一些基础知识,觉得还是很有趣的一个一门语言!就目前的学习的一些知识,编写了一些一个简单的石头剪刀布的游戏.主要是熟悉一些Python的一些控制语句. import random while 1: s=int(random.randint(1,3)) print(s) print() if s==1: ind="stone" elif s==2: ind="scissors" elif s==3: ind="paper" m

  • python制作简单五子棋游戏

    本文实例为大家分享了python五子棋游戏的具体代码,供大家参考,具体内容如下 #五子棋 ''' 矩阵做棋盘 16*16 "+" 打印棋盘 for for 游戏是否结束 开始下棋 while 游戏是否结束: 黑白交替 player=0 p%2==0 ==1 p+=1 下棋动作一样 但是棋子不一样 ''' 代码 #创建棋盘的程序 def initBoard(): global board #调用全局的board board=[None]*16 for i in range(len(boa

  • Python实现简单猜拳游戏

    本文实例为大家分享了Python实现猜拳游戏的具体代码,供大家参考,具体内容如下 分析 1.玩家从控制台输入内容 2.电脑随机输出石头剪刀布 3.判断 4.程序结束 代码块 #1猜拳游戏 import random #内建函数 choice=['剪刀','石头','布'] #建立一个列表 keepgoing=input('你想出剪刀,石头,布还是(Q)?') while keepgoing!='Q': #当不回答'Q'时整个程序会一直执行     computer=random.choice(c

  • python实现的简单RPG游戏流程实例

    本文实例讲述了python实现的简单RPG游戏流程.分享给大家供大家参考.具体如下: #RPG rpg = True whp = 100 mahp = 100 hhp = 100 MHP = 10 def dgrnd () : wa = raw_input ("What does Warrior do?") ma = raw_input ("What does Mage do?") ha = raw_input ("What does Healer do?

  • Python加pyGame实现的简单拼图游戏实例

    本文实例讲述了Python加pyGame实现的简单拼图游戏.分享给大家供大家参考.具体实现方法如下: import pygame, sys, random from pygame.locals import * # 一些常量 WINDOWWIDTH = 500 WINDOWHEIGHT = 500 BACKGROUNDCOLOR = (255, 255, 255) BLUE = (0, 0, 255) BLACK = (0, 0, 0) FPS = 40 VHNUMS = 3 CELLNUMS

随机推荐