You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
2.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import tkinter as tk
import alien_invasion
from PIL import Image, ImageTk
class GameWelcomeScreen(tk.Tk):
def __init__(self):
super().__init__()
self.title("欢迎界面")
self.geometry("1300x750") # 设置窗口大小
# 添加标签和按钮
self.welcome_label = tk.Label(self, text="WELCOM TO \nThe Alien Invasion", font=("comicsansms", 50), foreground="lightblue")
self.welcome_label.pack(pady=50) # 使用pack布局管理器
self.start_button = tk.Button(self, text="进入游戏", font=("comicsansms", 20), command=self.start_button, background="lightblue")
self.start_button.pack(pady=20)
self.quit_button = tk.Button(self, text="退出游戏", font=("comicsansms", 20), command=self.quit, background="lightgreen")
self.quit_button.pack(pady=20)
self.about_button = tk.Button(self, text="关于游戏", font=("comicsansms", 20), command=self.about_button, background="lightyellow")
self.about_button.pack(pady=20)
self.mainloop()
def set_image_as_background(self, image_path):
img = Image.open(image_path)
img = img.resize((self.root.winfo_reqwidth(), self.root.winfo_reqheight()), Image.Resampling.LANCZOS)
photo = ImageTk.PhotoImage(img)
self.canvas = tk.Canvas(self.root, width=self.root.winfo_reqwidth(), height=self.root.winfo_reqheight())
self.canvas.pack(fill="both", expand=True)
# 在Canvas上放置图片
self.canvas.create_image(0, 0, image=photo, anchor="nw")
self.canvas.image = photo
def start_button(self):
print("开始游戏")
alien_invasion.run_game()
def about_button(self):
print("本游戏是外星人入侵游戏")
root = tk.Tk() # 建立第二个窗口
root.title("关于游戏")
root.geometry("400x300")
tk.Label(root, text="这是一款使用Pygame包来开发的2D游戏。"
"\n它在玩家每消灭一群向下移动的外星人后,将玩家提高一个等级。\n每射杀一个外星人获得的相应的分数,等级越高,"
"\n游戏的节奏越快,难度越大,击杀每个外星人获得的分数就越高。\n"
"玩家的任务就是击落每个从屏幕上方移动下来的外星人,\n当外星人碰到飞船或者屏幕底部时该飞船被摧毁,\n"
"每个玩家可拥有三艘飞船,当三艘飞船都被摧毁时结束游戏\n得出最高分。\n\n\n"
"游戏使用:左右键移动飞船,空格键发射子弹",
font=("comicsansms", 10), foreground='black').pack(pady=20)
root.mainloop()
if __name__ == "__main__":
app = GameWelcomeScreen()
app.mainloop()