以下是一个使用tkinter编写的打砖块游戏,并包含标题界面的示例代码:

import tkinter as tk
import random

class BrickBreaker(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title("打砖块游戏")
        self.geometry("400x400")

        self.canvas = tk.Canvas(self, width=400, height=400, bg='white')
        self.canvas.pack()

        self.paddle = self.canvas.create_rectangle(0, 350, 100, 360, fill='blue')
        self.ball = self.canvas.create_oval(0, 0, 10, 10, fill='red')
        self.score = self.canvas.create_text(200, 200, text='Score: 0', fill='black')

        self.canvas.bind_all('<KeyPress-Left>', self.move_paddle_left)
        self.canvas.bind_all('<KeyPress-Right>', self.move_paddle_right)

        self.ball_dx = 1
        self.ball_dy = -1
        self.paddle_dx = 0
        self.bricks = []

        self.create_bricks()
        self.update()

    def create_bricks(self):
        colors = ['red', 'orange', 'yellow', 'green', 'blue']
        brick_width = 50
        brick_height = 20

        for i in range(5):
            for j in range(8):
                x1 = j * brick_width
                y1 = i * brick_height + 50
                x2 = x1 + brick_width
                y2 = y1 + brick_height
                color = colors[i]
                brick = self.canvas.create_rectangle(x1, y1, x2, y2, fill=color)
                self.bricks.append(brick)

    def move_paddle_left(self, event):
        self.paddle_dx = -1

    def move_paddle_right(self, event):
        self.paddle_dx = 1

    def update(self):
        self.canvas.move(self.ball, self.ball_dx, self.ball_dy)
        self.canvas.move(self.paddle, self.paddle_dx, 0)

        ball_coords = self.canvas.coords(self.ball)
        paddle_coords = self.canvas.coords(self.paddle)

        if ball_coords[0] <= 0 or ball_coords[2] >= 400:
            self.ball_dx *= -1

        if ball_coords[1] <= 0:
            self.ball_dy *= -1

        if ball_coords[3] >= 350 and paddle_coords[0] <= ball_coords[2] <= paddle_coords[2]:
            self.ball_dy *= -1

        for brick in self.bricks:
            brick_coords = self.canvas.coords(brick)
            if ball_coords[0] <= brick_coords[2] and ball_coords[2] >= brick_coords[0] and ball_coords[1] <= brick_coords[3] and ball_coords[3] >= brick_coords[1]:
                self.canvas.delete(brick)
                self.bricks.remove(brick)
                self.ball_dy *= -1

        if len(self.bricks) == 0:
            self.canvas.create_text(200, 200, text='You Win!', fill='black', font=('Arial', 20))
            self.canvas.unbind_all('<KeyPress-Left>')
            self.canvas.unbind_all('<KeyPress-Right>')

        self.canvas.itemconfig(self.score, text='Score: {}'.format(40 - len(self.bricks)))

        self.after(10, self.update)

game = BrickBreaker()
game.mainloop()

该示例代码使用tkinter创建了一个窗口,包含一个球、一个挡板和一些砖块。球会从顶部开始下落,玩家通过移动挡板来反弹球,击碎砖块。游戏结束后会显示分数和胜利提示。

请注意,这只是一个简单的示例代码,你可以根据自己的需求进行修改和扩展

bangwoyongpython的tkinter写一个打砖块而且要有标题界面

原文地址: http://www.cveoy.top/t/topic/h6DQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录