Tkinter做弹球游戏

这篇博客介绍了如何使用Python的Tkinter库创建一个弹球游戏。游戏规则包括小球碰撞墙壁和球拍后反弹,触底则游戏结束,并显示总碰撞次数。此外,还提供了将Python代码打包成exe可执行文件的方法,使用了py2exe工具,并给出了setup.py打包配置示例。

要求:小球撞击到墙壁的时候,会反弹,当碰到球拍的时候,也会反弹,如果碰到底部的时候,游戏结束,输出总共碰撞了多少次。


控制程序运行的类(paddleball.py)

#!/usr/bin/python
#coding: utf-8

#from __future__ import unicode_literals

from Tkinter import *
# from the_ball import Ball
import random
import time

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, 250, 400)
		
		# x为左右移动的时候每一步的距离
		self.x = 0
		# 左右移动的速度
		self.speed = 2
		# 获取画布的宽度
		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)
		
		self.canvas.bind_all('<KeyPress-Down>', self.reduce_speed)
		self.canvas.bind_all('<KeyPress-Up>', self.increase_speed)
	
	def draw(self):
		self.canvas.move(self.id, self.x, 0)
		pos = self.canvas.coords(self.id)
		
		# 设置如果碰到边界就自动反弹
		if pos[0] <= 0:
			self.x = self.speed
		elif pos[2] >= self.canvas_width:
			self.x = -self.speed
	
	def turn_left(self, event):
		self.x = -self.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值