摘要:文章目录前言前言一创建数据库一创建数据库二项目二项目运行结果运行结果新建新建总结总结前言一个基于和的飞机大战小游戏,包含了管理员和用户的操作。
一个基于python和MySQL的飞机大战小游戏,包含了管理员和用户的操作。
用Navicat创建如图所示数据库
1.用户注册
2.用户查询
3.管理员登陆
4. 完整操作
Login.py
# -*- coding: UTF-8 -*-"""@author:林枫@file:3.py@time:2021/06/07"""import pymysqlfrom tkinter import *from tkinter import messageboxfrom tkinter import ttkfrom tkinter.messagebox import *from game import *import pygameclass My_Gui(): def __init__(self, main_screen): self.main_screen = main_screen def set_init_window(self): self.main_screen.geometry("1442x700") self.main_screen.title("登陆界面") self.bg = PhotoImage(file="background.png") Label(image=self.bg).place(x=0, y=0) Label(text="欢迎登录飞机大战游戏", font=("宋体", 20)).place(x=580, y=100) Label(text="账号", font=("宋体", 15)).place(x=450, y=250) Label(text="密码", font=("宋体", 15)).place(x=450, y=350) self.username_verify = StringVar() self.password_verify = StringVar() self.username_login_entry = Entry(self.main_screen, textvariable=self.username_verify, width=45, font=("宋体", 15)) self.username_login_entry.place(x=500, y=250) self.password_login_entry = Entry(self.main_screen, textvariable=self.password_verify, show="*", width=45, font=("宋体", 15)) self.password_login_entry.place(x=500, y=350) Button(text="用户登录", width="10", font=("宋体", 15), command=self.login_verify).place(x=650, y=400) Button(text="管理员登录", width="10", font=("宋体", 15), command=self.Admin_login_verify).place(x=450, y=400) Button(text="用户注册", width="10", font=("宋体", 15), command=self.register).place(x=840, y=400) self.main_screen.mainloop() def login_verify(self): self.username1 = self.username_verify.get() self.password1 = self.password_verify.get() conn = pymysql.connect(host="localhost", user="root", passwd="123456", db="testdb", port=3306, charset="utf8") cur = conn.cursor() select_sql = "select pw from user WHERE un=%s" cur.execute(select_sql, [self.username1]) result = cur.fetchone() if len(self.username1) == 0: messagebox.showinfo("错误", "请输入账号!") cur.close() conn.close() elif result is None: cur.close() conn.close() messagebox.showinfo("失败", "该账号未注册!") self.password_login_entry.delete(0, END) self.username_login_entry.delete(0, END) else: if result[0] == self.password1: cur.close() conn.close() messagebox.showinfo("成功", "登录成功") self.username_login_entry.delete(0, END) self.password_login_entry.delete(0, END) self.login_sucess() elif result[0] != self.password1: cur.close() conn.close() messagebox.showinfo("失败", "密码错误!") self.password_login_entry.delete(0, END) def login_sucess(self): self.main_screen.destroy() conn = pymysql.connect(host="localhost", user="root", passwd="123456", db="testdb", port=3306, charset="utf8") cur = conn.cursor() select_sql = "select id from user WHERE un=%s" cur.execute(select_sql, [self.username1]) i = cur.fetchone()[0] select_sql = "select code, time from code_lable WHERE userid=%s" cur.execute(select_sql, [i]) data = cur.fetchall() data = list(data) data = list(reversed(data)) print(data) max_list = [] data_list = [] for x in data: max_list.append(int(x[0])) self.user_screen1 = Tk() self.user_screen1.geometry("1442x700") self.user_screen1.title("用户界面") self.bg = PhotoImage(file="background.png") Label(self.user_screen1, image=self.bg).place(x=0, y=0) Label(self.user_screen1, text="亲爱的玩家:" + self.username1 + " 你好", font=("宋体", 20)).place(x=565, y=30) self.columns = ("序号", "得分", "时间", "序号1", "得分1", "时间1", "序号2", "得分2", "时间2") self.tree = ttk.Treeview(self.user_screen1, height=20, show="headings", columns=self.columns) # 隐藏首列 self.tree.column("序号", width=60) # 表示列,不显示 self.tree.column("得分", width=170) # 表示列,不显示 self.tree.column("时间", width=170) # 表示列,不显示 self.tree.column("序号1", width=60) # 表示列,不显示 self.tree.column("得分1", width=170) # 表示列,不显示 self.tree.column("时间1", width=170) # 表示列,不显示 self.tree.column("序号2", width=60) # 表示列,不显示 self.tree.column("得分2", width=170) # 表示列,不显示 self.tree.column("时间2", width=170) # 表示列,不显示 self.tree.place(x=130, y=150) self.tree.heading("序号", text="序号", anchor=CENTER) self.tree.heading("得分", text="得分", anchor=CENTER) self.tree.heading("时间", text="时间", anchor=CENTER) self.tree.heading("序号1", text="序号", anchor=CENTER) self.tree.heading("得分1", text="得分", anchor=CENTER) self.tree.heading("时间1", text="时间", anchor=CENTER) self.tree.heading("序号2", text="序号", anchor=CENTER) self.tree.heading("得分2", text="得分", anchor=CENTER) self.tree.heading("时间2", text="时间", anchor=CENTER) if len(max_list) == 0: Label(self.user_screen1, font=("宋体", 15), text="您暂无游戏数据,快开始游戏吧!").place(x=560, y=100) elif len(max_list) > 0 and len(max_list) <= 20: Label(self.user_screen1, font=("宋体", 15), text="您的最高分为:" + str(max(max_list)) + "分").place(x=580, y=100) for i in range(0, len(max_list)): self.tree.insert("", i, values=(i + 1, data[i][0], data[i][1])) elif len(max_list) > 20 and len(max_list) <= 40: Label(self.user_screen1, font=("宋体", 15), text="您的最高分为:" + str(max(max_list)) + "分").place(x=580, y=100) for i in range(0, len(max_list) - 20): self.tree.insert("", i, values=(i + 1, data[i][0], data[i][1], i + 21, data[i + 20][0], data[i + 20][1])) for x in range(i + 1, 21): self.tree.insert("", x, values=(x + 1, data[x][0], data[x][1])) elif len(max_list) > 40 and len(max_list) <= 60: Label(self.user_screen1, font=("宋体", 15), text="您的最高分为:" + str(max(max_list)) + "分").place(x=580, y=100) for i in range(0, len(max_list) - 40): self.tree.insert("", i, values=( i + 1, data[i][0], data[i][1], i + 21, data[i + 20][0], data[i + 20][1], i + 41, data[i + 40][0], data[i + 40][1])) for x in range(i + 1, 21): self.tree.insert("", x, values=(x + 1, data[x][0], data[x][1], x + 21, data[x + 20][0], data[x + 20][1])) else: Label(self.user_screen1, font=("宋体", 15), text="您的最高分为:" + str(max(max_list)) + "分").place(x=580, y=100) for i in range(20): self.tree.insert("", i, values=( i + 1, data[i][0], data[i][1], i + 21, data[i + 20][0], data[i + 20][1], i + 41, data[i + 40][0], data[i + 40][1])) cur.close() conn.close() Button(self.user_screen1, text="开始游戏", width=10, font=("宋体", 15), command=self.Destroy3).place(x=200, y=600) Button(self.user_screen1, text="返回首页", width=10, font=("宋体", 15), command=self.Destroy2).place(x=1120, y=600) self.user_screen1.mainloop() def register_user(self): self.username_info = self.username_entry.get() self.password_info = self.password_entry.get() conn = pymysql.connect(host="localhost", user="root", passwd="123456", db="testdb", port=3306, charset="utf8") cur = conn.cursor() select_sql = "select un from user WHERE un=%s" cur.execute(select_sql, [self.username_info]) result = cur.fetchone() if len(self.username_info) == 0: messagebox.showinfo("错误", "请输入账号!") cur.close() conn.close() elif len(self.password_info) == 0: messagebox.showinfo("错误", "请输入密码!") cur.close() conn.close() elif result is None: sql = "insert into user(un,pw)" / "values("%s","%s")" % / (self.username_info, self.password_info) try: cur.execute(sql) conn.commit() cur.close() conn.close() except: conn.rollback() self.username_entry.delete(0, END) self.password_entry.delete(0, END) messagebox.showinfo("成功", "注册成功!") else: cur.close() conn.close() messagebox.showinfo("失败", "该账号已被注册!") self.password_entry.delete(0, END) self.username_entry.delete(0, END) def register(self): self.username = StringVar() self.password = StringVar() self.main_screen.destroy() self.register_screen = Tk() self.register_screen.geometry("1442x700") self.register_screen.title("注册界面") self.bg = PhotoImage(file="background.png") Label(self.register_screen, image=self.bg).place(x=0, y=0) Label(self.register_screen, text="欢迎来到注册界面", font=("宋体", 20)).place(x=580, y=100) self.username_lable = Label(self.register_screen, font=("宋体", 15), text="账号") self.username_lable.place(x=450, y=250) self.username_entry = Entry(self.register_screen, textvariable=self.username, width=45, font=("宋体", 15)) self.username_entry.place(x=500, y=250) self.password_lable = Label(self.register_screen, font=("宋体", 15), text="密码") self.password_lable.place(x=450, y=350) self.password_entry = Entry(self.register_screen, textvariable=self.password, show="*", width=45, font=("宋体", 15)) self.password_entry.place(x=500, y=350) Button(self.register_screen, text="注册", width=10, font=("宋体", 15), command=self.register_user).place(x=550, y=400) Button(self.register_screen, text="返回首页", width=10, font=("宋体", 15), command=self.Destroy).place(x=750, y=400) self.register_screen.mainloop() def AdLogin(self): self.cheek_username = StringVar() self.main_screen.destroy() self.admin_screen = Tk() self.admin_screen.geometry("1442x700") self.admin_screen.title("查询界面") self.bg = PhotoImage(file="background.png") Label(self.admin_screen, image=self.bg).place(x=0, y=0) Label(self.admin_screen, text="欢迎来到查询界面", font=("宋体", 20)).place(x=600, y=30) Label(self.admin_screen, font=("宋体", 15), text="账号").place(x=500, y=100) self.username3 = Entry(self.admin_screen, textvariable=self.cheek_username, width=40, font=("宋体", 15)) self.username3.place(x=550, y=100) self.columns = ("序号", "得分", "时间", "序号1", "得分1", "时间1", "序号2", "得分2", "时间2") self.tree = ttk.Treeview(self.admin_screen, height=20, show="headings", columns=self.columns) # 隐藏首列 self.tree.column("序号", width=60) # 表示列,不显示 self.tree.column("得分", width=170) # 表示列,不显示 self.tree.column("时间", width=170) # 表示列,不显示 self.tree.column("序号1", width=60) # 表示列,不显示 self.tree.column("得分1", width=170) # 表示列,不显示 self.tree.column("时间1", width=170) # 表示列,不显示 self.tree.column("序号2", width=60) # 表示列,不显示 self.tree.column("得分2", width=170) # 表示列,不显示 self.tree.column("时间2", width=170) # 表示列,不显示 self.tree.place(x=130, y=150) Button(self.admin_screen, text="查询", width=10, font=("宋体", 15), command=self.serach).place(x=200, y=600) Button(self.admin_screen, text="查询所有玩家最高分", width=20, font=("宋体", 15), command=self.serach_best).place(x=620, y=600) Button(self.admin_screen, text="返回首页", width=10, font=("宋体", 15), command=self.Destroy1).place(x=1120, y=600) self.admin_screen.mainloop() def serach(self): x = self.tree.get_children() for item in x: self.tree.delete(item) conn = pymysql.connect(host="localhost", user="root", passwd="123456", db="testdb", port=3306, charset="utf8") cur = conn.cursor() select_sql = "select un from user WHERE un=%s" cur.execute(select_sql, [self.username3.get()]) result = cur.fetchone() if len(self.username3.get()) == 0: messagebox.showinfo("错误", "请输入账号!") cur.close() conn.close() elif result is None: messagebox.showinfo("错误", "该账号不存在!") cur.close() conn.close() else: self.tree.heading("序号", text="序号", anchor=CENTER) self.tree.heading("得分", text="得分", anchor=CENTER) self.tree.heading("时间", text="时间", anchor=CENTER) self.tree.heading("序号1", text="序号", anchor=CENTER) self.tree.heading("得分1", text="得分", anchor=CENTER) self.tree.heading("时间1", text="时间", anchor=CENTER) self.tree.heading("序号2", text="序号", anchor=CENTER) self.tree.heading("得分2", text="得分", anchor=CENTER) self.tree.heading("时间2", text="时间", anchor=CENTER) select_sql = "select id from user WHERE un=%s" cur.execute(select_sql, [self.username3.get()]) select_sql = "select code, time from code_lable WHERE userid=%s" cur.execute(select_sql, [cur.fetchone()[0]]) lists = cur.fetchall() lists = list(lists) lists = list(reversed(lists)) print(len(lists)) if len(lists) == 0: self.tree.insert("", 0, values=(1, "暂无数据")) elif len(lists) > 0 and len(lists) <= 20: for i in range(0, len(lists)): self.tree.insert("", i, values=(i + 1, lists[i][0], lists[i][1])) elif len(lists) > 20 and len(lists) <= 40: for i in range(0, len(lists) - 20): self.tree.insert("", i, values=( i + 1, lists[i][0], lists[i][1], i + 21, lists[i + 20][0], lists[i + 20][1])) for x in range(i + 1, 21): self.tree.insert("", x, values=(x + 1, lists[x][0], lists[x][1])) elif len(lists) > 40 and len(lists) <= 60: for i in range(0, len(lists) - 40): self.tree.insert("", i, values=( i + 1, lists[i][0], lists[i][1], i + 21, lists[i + 20][0], lists[i + 20][1], i + 41, lists[i + 40][0], lists[i + 40][1])) for x in range(i + 1, 21): self.tree.insert("", x, values=( x + 1, lists[x][0], lists[x][1], x + 21, lists[x + 20][0], lists[x + 20][1])) else: for i in range(20): self.tree.insert("", i, values=( i + 1, lists[i][0], lists[i][1], i + 21, lists[i + 20][0], lists[i + 20][1], i + 41, lists[i + 40][0], lists[i + 40][1])) cur.close() conn.close() def serach_best(self): self.tree.heading("序号", text="玩家ID", anchor=CENTER) self.tree.heading("得分", text="最高得分", anchor=CENTER) self.tree.heading("时间", text="时间", anchor=CENTER) self.tree.heading("序号1", text="玩家ID", anchor=CENTER) self.tree.heading("得分1", text="最高得分", anchor=CENTER) self.tree.heading("时间1", text="时间", anchor=CENTER) self.tree.heading("序号2", text="玩家ID", anchor=CENTER) self.tree.heading("得分2", text="最高得分", anchor=CENTER) self.tree.heading("时间2", text="时间", anchor=CENTER) x = self.tree.get_children() for item in x: self.tree.delete(item) self.username3.delete(0, END) conn = pymysql.connect(host="localhost", user="root", passwd="123456", db="testdb", port=3306, charset="utf8") cur = conn.cursor() select_sql = "select un from user" cur.execute(select_sql) result = cur.fetchall() datas = [] for i in range(0, len(result)): ID = result[i] select_sql = "select id from user WHERE un=%s" cur.execute(select_sql, [ID[0]]) id = cur.fetchone() select_sql = "select code, time from code_lable WHERE userid=%s" cur.execute(select_sql, [id[0]]) data = cur.fetchall() max_list = [] data_list = [] for x in data: max_list.append(int(x[0])) print(max_list) if len(max_list) > 0: data_list.append(ID[0]) data_list.append(max(max_list)) data_list.append(data[max_list.index(max(max_list))][1]) else: data_list.append(ID[0]) data_list.append("暂无数据") datas.append(data_list) # print(datas) if len(datas) == 0: messagebox.showinfo("错误", "暂无注册用户!") cur.close() conn.close() elif len(datas) > 0 and len(datas) <= 20: for i in range(len(datas)): if len(datas[i]) == 2: self.tree.insert("", i, values=(datas[i][0], datas[i][1])) else: self.tree.insert("", i, values=(datas[i][0], datas[i][1], datas[i][2])) elif len(datas) > 20 and len(datas) <= 40: for i in range(len(datas) - 20): if len(datas[i]) == 2 and len(datas[i + 20]) == 2: self.tree.insert("", i, values=(datas[i][0], datas[i][1], "", datas[i + 20][0], datas[i + 20][1])) elif len(datas[i]) == 2 and len(datas[i + 20]) == 3: self.tree.insert("", i, values=( datas[i][0], datas[i][1], "", datas[i + 20][0], datas[i + 20][1], datas[i + 20][2])) elif len(datas[i]) == 3 and len(datas[i + 20]) == 3: self.tree.insert("", i, values=( datas[i][0], datas[i][1], datas[i][2], datas[i + 20][0], datas[i + 20][1], datas[i + 20][2])) elif len(datas[i]) == 3 and len(datas[i + 20]) == 2: self.tree.insert("", i, values=(datas[i][0], datas[i][1], datas[i][2], datas[i + 20][0], datas[i + 20][1])) for x in range(i + 1, 21): if len(datas[x]) == 2: self.tree.insert("", x, values=(datas[x][0], datas[x][1])) else: self.tree.insert("", x, values=(datas[x][0], datas[x][1], datas[x][2])) elif len(datas) > 40 and len(datas) <= 60: for i in range(len(datas) - 40): if len(datas[i]) == 2 and len(datas[i + 20]) == 2 and len(datas[i + 40]) == 2: self.tree.insert("", i, values=( datas[i][0], datas[i][1], "", datas[i + 20][0], datas[i + 20][1], "", datas[i + 40][0], datas[i + 40][1])) elif len(datas[i]) == 2 and len(datas[i + 20]) == 2 and len(datas[i + 40]) == 3: self.tree.insert("", i, values=( datas[i][0], datas[i][1], "", datas[i + 20][0], datas[i + 20][1], "", datas[i + 40][0], datas[i + 40][1], datas[i + 40][2])) elif len(datas[i]) == 2 and len(datas[i + 20]) == 3 and len(datas[i + 40]) == 2: self.tree.insert("", i, values=( datas[i][0], datas[i][1], "", datas[i + 20][0], datas[i + 20][1], datas[i + 20][2], datas[i + 40][0], datas[i + 40][1])) elif len(datas[i]) == 3 and len(datas[i + 20]) == 2 and len(datas[i + 40]) == 2: self.tree.insert("", i, values=( datas[i][0], datas[i][1], datas[i][2], datas[i + 20][0], datas[i + 20][1], "", datas[i + 40][0], datas[i + 40][1])) elif len(datas[i]) == 3 and len(datas[i + 20]) == 3 and len(datas[i + 40]) == 2: self.tree.insert("", i, values=( datas[i][0], datas[i][1], datas[i][2], datas[i + 20][0], datas[i + 20][1], datas[i + 20][2], datas[i + 40][0], datas[i + 40][1])) elif len(datas[i]) == 3 and len(datas[i + 20]) == 2 and len(datas[i + 40]) == 3: self.tree.insert("", i, values=( datas[i][0], datas[i][1], datas[i][2], datas[i + 20][0], datas[i + 20][1], "", datas[i + 40][0], datas[i + 40][1], datas[i + 40][2])) elif len(datas[i]) == 2 and len(datas[i + 20]) == 3 and len(datas[i + 40]) == 3: self.tree.insert("", i, values=( datas[i][0], datas[i][1], "", datas[i + 20][0], datas[i + 20][1], datas[i + 20][2], datas[i + 40][0], datas[i + 40][1], datas[i + 40][2])) elif len(datas[i]) == 3 and len(datas[i + 20]) == 3 and len(datas[i + 40]) == 3: self.tree.insert("", i, values=( datas[i][0], datas[i][1], datas[i][2], datas[i + 20][0], datas[i + 20][1], datas[i + 20][2], datas[i + 40][0], datas[i + 40][1], datas[i + 40][2])) for x in range(i + 1, 21): if len(datas[x]) == 2 and len(datas[x + 20]) == 2: self.tree.insert("", x, values=(datas[x][0], datas[x][1], "", datas[x + 20][0], datas[x + 20][1])) elif len(datas[x]) == 2 and len(datas[x + 20]) == 3: self.tree.insert("", x, values=( datas[x][0], datas[x][1], "", datas[x + 20][0], datas[x + 20][1], datas[x + 20][2])) elif len(datas[x]) == 3 and len(datas[x + 20]) == 3: self.tree.insert("", x, values=( datas[x][0], datas[x][1], datas[x][2], datas[x + 20][0], datas[x + 20][1], datas[x + 20][2])) elif len(datas[x]) == 3 and len(datas[x + 20]) == 2: self.tree.insert("", x, values=(datas[x][0], datas[x][1], datas[x][2], datas[x + 20][0], datas[x + 20][1])) else: for i in range(20): if len(datas[i]) == 2 and len(datas[i + 20]) == 2 and len(datas[i + 40]) == 2: self.tree.insert("", i, values=( datas[i][0], datas[i][1], "", datas[i + 20][0], datas[i + 20][1], "", datas[i + 40][0], datas[i + 40][1])) elif len(datas[i]) == 2 and len(datas[i + 20]) == 2 and len(datas[i + 40]) == 3: self.tree.insert("", i, values=( datas[i][0], datas[i][1], "", datas[i + 20][0], datas[i + 20][1], "", datas[i + 40][0], datas[i + 40][1], datas[i + 40][2])) elif len(datas[i]) == 2 and len(datas[i + 20]) == 3 and len(datas[i + 40]) == 2: self.tree.insert("", i, values=( datas[i][0], datas[i][1], "", datas[i + 20][0], datas[i + 20][1], datas[i + 20][2], datas[i + 40][0], datas[i + 40][1])) elif len(datas[i]) == 3 and len(datas[i + 20]) == 2 and len(datas[i + 40]) == 2: self.tree.insert("", i, values=( datas[i][0], datas[i][1], datas[i][2], datas[i + 20][0], datas[i + 20][1], "", datas[i + 40][0], datas[i + 40][1])) elif len(datas[i]) == 3 and len(datas[i + 20]) == 3 and len(datas[i + 40]) == 2: self.tree.insert("", i, values=( datas[i][0], datas[i][1], datas[i][2], datas[i + 20][0], datas[i + 20][1], datas[i + 20][2], datas[i + 40][0], datas[i + 40][1])) elif len(datas[i]) == 3 and len(datas[i + 20]) == 2 and len(datas[i + 40]) == 3: self.tree.insert("", i, values=( datas[i][0], datas[i][1], datas[i][2], datas[i + 20][0], datas[i + 20][1], "", datas[i + 40][0], datas[i + 40][1], datas[i + 40][2])) elif len(datas[i]) == 2 and len(datas[i + 20]) == 3 and len(datas[i + 40]) == 3: self.tree.insert("", i, values=( datas[i][0], datas[i][1], "", datas[i + 20][0], datas[i + 20][1], datas[i + 20][2], datas[i + 40][0], datas[i + 40][1], datas[i + 40][2])) elif len(datas[i]) == 3 and len(datas[i + 20]) == 3 and len(datas[i + 40]) == 3: self.tree.insert("", i, values=( datas[i][0], datas[i][1], datas[i][2], datas[i + 20][0], datas[i + 20][1], datas[i + 20][2], datas[i + 40][0], datas[i + 40][1], datas[i + 40][2])) cur.close() conn.close() def Admin_login_verify(self): self.username2 = self.username_verify.get() self.password2 = self.password_verify.get() conn = pymysql.connect(host="localhost", user="root", passwd="123456", db="testdb", port=3306, charset="utf8") cur = conn.cursor() select_sql = "select passward from admin WHERE username=%s" cur.execute(select_sql, [self.username2]) result = cur.fetchone() if len(self.username2) == 0: messagebox.showinfo("错误", "请输入账号!") cur.close() conn.close() elif result is None: cur.close() conn.close() messagebox.showinfo("失败", "该账号未注册!") self.password_login_entry.delete(0, END) self.username_login_entry.delete(0, END) else: if result[0] == self.password2: cur.close() conn.close() messagebox.showinfo("成功", "登录成功") self.username_login_entry.delete(0, END) self.password_login_entry.delete(0, END) self.AdLogin() elif result[0] != self.password2: cur.close() conn.close() messagebox.showinfo("失败", "密码错误!") self.password_login_entry.delete(0, END) def Destroy(self): self.register_screen.destroy() gui_start().set_init_window() def Destroy1(self): self.admin_screen.destroy() gui_start().set_init_window() def Destroy2(self): self.user_screen1.destroy() gui_start().set_init_window() def Destroy3(self): self.user_screen1.destroy() go(self.username1)def gui_start(): init_window = Tk() # 实例化出一个父窗口 return My_Gui(init_window) # 设置根窗口默认属性 # ZMJ_PORTAL.set_init_window() # init_window.mainloop() # 父窗口进入事件循环,可以理解为保持窗口运行,否则界面不展示# if __name__ == "__main__":# gui_start().set_init_window()
这就是我自己写的基于python和mysql的飞机大战小游戏,由于代码太长,篇幅有限,如果有需要源码的小伙伴们可以来qq加我:3090677003.(第一次写博客还希望大家点赞,谢谢!!(●"◡"●))
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/123742.html
摘要:今天杭州又是大雨,被淋了个落汤鸡,都怪我家大狼狗非要骑电动车,我昨天吐槽要买的帅气的雨衣还没有买不过大雨和飞机大战小游戏更配哦。微信早已正式发布微信内置飞机大战游戏,目前该游戏已经下线。此时,界面中会显示此次玩家的飞机大战分数。showImg(https://user-gold-cdn.xitu.io/2019/5/15/16ab9377884b99f7); 今天杭州又是大雨,被淋了个落汤鸡...
摘要:今天杭州又是大雨,被淋了个落汤鸡,都怪我家大狼狗非要骑电动车,我昨天吐槽要买的帅气的雨衣还没有买不过大雨和飞机大战小游戏更配哦。微信早已正式发布微信内置飞机大战游戏,目前该游戏已经下线。此时,界面中会显示此次玩家的飞机大战分数。 今天杭州又是大雨,被淋了个落汤鸡,都怪我家大狼狗非要骑电动车,我昨天吐槽要买的帅气的雨衣还没有买,不过大雨和飞机大战小游戏更配哦。 这篇文章来自我司的王老吉同...
摘要:飞机大战这是一款经典飞行射击类游戏,为玩家呈现一场不一样射击体验。简单的触屏操作,触屏按住随意一个地方,左右移动,便可自动攻击敌人,上下移动亦可躲避强敌。玩家在游戏中要做的就是驾驶着最新战机,向敌人发起冲击。 《飞机大战》这是一款经典飞行射击类游戏,为玩家呈现一场不一样射击体验。...
阅读 2637·2021-11-23 09:51
阅读 1623·2021-11-22 13:54
阅读 2757·2021-11-18 10:02
阅读 918·2021-08-16 10:57
阅读 3516·2021-08-03 14:03
阅读 1857·2019-08-30 15:54
阅读 3507·2019-08-23 14:39
阅读 570·2019-08-23 14:26