用户:
蜀雞CLEVER查看:0 回复:1 评论:0 创建时间:2023-08-22T09:24:35
能帮我看一下这个弹球游戏有什么问题吗
from tkinter import *
import tkinter
import random
import time
win = tkinter.Tk()
win.title("弹球游戏")
win.resizabie(0,0)
win.wm_attributes("-topmost",1)
screen = Canvas(win,width=600,height=450,bd=0,highlightthickness=0)
screen.pack()
win.update()
class racket:
def __init__(self,screen,color):
self.screen = screen
self.id = screen.create_retcangle(0,0,100,10,fill = color)
self.screen.move(self.id,250,300)
self.x = 0
self.screen_width = self.screen.winfo_width()
self.screen.bind_all('<KeyPress-Left>',self.turn_left)
self.screen.bind_all('<KeyPress-Right>',self.turn_right)
def draw(self):
self.screen.move(self.id,self.x,0)
pos=self.screen.coord(self.id)
if pos[0] <=0:
self.x = 0
elif pos[2] >= self.screen_width:
self.x =0
def turn_left(self,evt):
self.x =-2
def turn_right(self,evt):
self.x =2
class Ball:
def __init__(self,screen,paddle,color):
self.screen = screen
self.paddle = paddle
self.id = screen.create_oval(10,10,25,25,fill = color)
self.screen.move(self.id,300,100)
starts = [-3,-2,-1,1,2,3]
random.shuffle(starts)
self.x = start[0]
self.y = -2
self.screen_height = self.screen.winfo_height()
self.screen_width = self.screen.winfo_width()
self.hit_bottom =False
def hit_racket(self,pos):
screen_pos = self.screen.coord(self.paddle.id)
if pos[2] >=screen_pos[0] and pos[0] <= screen_pos[2]:
if pos[3] >=screen_pos[1] and pos[3] <= screen_pos[3]:
return True
return False
def draw(self):
self.screen.move(self.id,self.x,self.y)
pos = self.screen.coord(self.id)
if pos[1] <=0:
self.y=2
if pos[3] >=self.screen_height:
self.hit_bottom = True
print("你输了!")
if self.hit_racket(pos) == True:
self.y = -2
if pos[0] <=0:
self.x = 2
if pos[2] >= self.screen_width:
self.x = -2
racket = racket(screen,'blue')
ball = Ball(screen,racket,'red')
while True:
if ball.hit_bottom ==False:
ball.draw()
racket.draw()
else:
break
screen.update_idletasks()
screen.update()
time.sleep(0.01)
screen.mainloop()
复制代码,使用海龟编辑器(T2)或Python3.6.5(P365)。