python弹球游戏难度_这程序有什么问题,为什么这弹球游戏运行不起来(python)...

fromtkinterimport*importrandomimporttimeclassBall:def__init__(self,canvas,paddle,color):self.canvas=canvasself.paddle=paddleself.id=canvas.create_oval(10,10,25,25,fill=co...

from tkinter import *

import random

import time

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,-2,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=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,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('',self.turn_left)

self.canvas.bind_all('',self.turn_right)

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=-2

def turn_right(self,evt):

self.x=2

tk=Tk()

tk.title("Game")

tk.resizable(0,0)

tk.wm_attributes("-topmost",1)

canvas=Canvas(tk,width=500,height=400,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)

Traceback (most recent call last):

File "D:\弹球小游戏.py", line 67, in

ball.draw()

File "D:\弹球小游戏.py", line 24, in draw

self.canvas.move(self.id,self.x,self.y)

TypeError: 'tuple' object is not callable

总是报这种错,调半天了

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值