猫史档案馆


能帮我看一下这个弹球游戏有什么问题吗

用户:蜀雞CLEVER蜀雞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)。


回复

上一页1 页 / 共 1下一页
钟爱银狼的训练师钟爱银狼的训练师

python3.12都有了你还用3.6?

点赞0


评论