当前位置: 首页 > news >正文

建设适应连锁行业网站长沙网络营销平台排行

建设适应连锁行业网站,长沙网络营销平台排行,自驾游网站模板,点击网站导语 哈喽#xff0c;我是你们的木木子#x1f478;#xff01; 今天小编要为大家介绍一款小编自己用代码码出来的赛车风格的打字小游戏 取名暂定为《#x1f697;极限车神#x1f697;》打字小游戏。 这款Pygame小游戏在玩法上可以说十分创新#xff0c;不仅能游戏还…导语 哈喽我是你们的木木子 今天小编要为大家介绍一款小编自己用代码码出来的赛车风格的打字小游戏 取名暂定为《极限车神》打字小游戏。 这款Pygame小游戏在玩法上可以说十分创新不仅能游戏还能学到很多不同类型的编程代码 关键字的语言比如我就做了这几款类型Python、Java等。 下面我们就来看一下这款赛车风格打字微信小游戏《极限车神》具体怎么玩吧! 所有文章完整的素材源码都在 粉丝白嫖源码福利请移步至CSDN社区或文末公众hao即可免费。 文章下拉到底部找到最后的文章汇总只有你想不到没有写不了代码编程好游戏 「Python顾木子吖推荐中心」 搜罗了各种Python代码编辑的好玩的小游戏超多类型的哦。关注小编经常写各好玩的小游戏 还有人工智能、爬虫等各方面的知识点等着你来学习啦 放心大胆的开始学习新知识吧gogogo! 正文 让我们先来看看这款Pygame的经典点评吧让大家快速了解一下《极限车神》打字小游戏 关键词休闲、赛车、竞技、竞速、操作、打字、闯关、限时。 氪金指数0氪金。 推荐星数4星❤满星5星 难度星数5星❤满星5星 这是一款有点考验玩家打字速度操作水平的赛车游戏玩起来还有点意思考验大家手速的时 候到啦。平常打字看键盘的小可爱你准备好了嘛 一、环境准备 1运行环境  本文用到的环境如下——  Python3、Pycharm社区版第三方模块Tkinter、Pygame。部分自带的库只要安装完 Python就可以直接使用了需要安装 的库的话看教程下   一般安装pip install 模块名 镜像源安装pip install -i https://pypi.douban.com/simple/模块名之前有说过安装报错的几种方式跟解决方法不会安装的可以去看下还有很多国内镜像源也有文章的 还有准备一些数据源素材等这些大家可以用自己准备的哦 图片文本素材等如下—— 小游戏当然要有音乐更配啦~ 二、代码实现 1导入库 import tkinter as tk import threading,random,time,datetime import inspect import ctypes from tkinter import ttk from pygame import mixer 2主程序 FLAG True # 定义一个信号量用于判断最前面的小车是否到达终点游戏结束变为False CARFLAG True # 定义小车真正在窗口上移动时的信号量,当小车在窗口上静止不动时变为False ROAD # 赛道PythonJavaMySql赛道# 玩家类 class Player:def __init__(self,username):self.username [玩家]username# 创建小车def car_create(self,c,carposy_list):self.car Car(./sucai/car1.png, carposy_list, img1, self.username)self.car_img tk.PhotoImage(fileself.car.filepath)c.create_image(self.car.posx, self.car.posy, imageself.car_img, tagself.car.cartag)c.create_text(self.car.posx-30, self.car.posy, textself.car.username, font(Purisa, 16), fillwhite, tagself.car.username) # 电脑类 class Computer:def __init__(self,username[电脑]):self.username username# 创建小车def car_create(self,c,filepath, posy, cartag, username):self.car Car(filepath, posy, cartag, username)self.car_img tk.PhotoImage(fileself.car.filepath)c.create_image(self.car.posx, self.car.posy, imageself.car_img, tagself.car.cartag)c.create_text(self.car.posx-30, self.car.posy, textself.car.username, font(Purisa, 16), fillwhite,tagself.car.username) # 赛道类 class Road:def __init__(self,roadtype):self.text []with open(f./sucai/{roadtype}关键字.txt, moder, encodingutf-8) as f:for line in f:self.text.append(line.strip().split(\t)[0])self.road_number int(len(self.text)*1.2) if ROAD Python else int(len(self.text)*1.5) # 赛道的数量self.road_length (self.road_number - 3) * 1000 # 需要跑完赛道的长度self.road_s 0.0# 起点线def begin(self,c):c.create_rectangle(100, 50, 150, 352, fill#FFF6EE, tagbegin)c.create_text(135, 200, textR\ne\na\nd\ny\ni\nn\ng\n \nG\nO, font(Purisa, 20), fillblack, tagbegin)# 终点线def destination(self,c):self.c_end c.create_text(self.road_length - 120, 200, text终\n点, font(Purisa, 52), fillwhite,tagend)# 路相对于车移动def roadmove(self,c,tag_road):global FLAG,playerself.tag_road tag_roadif FLAG:self.road_s player.car.speedif self.road_s 1000:self.road_s 0.0if self.tag_road:c.delete(self.tag_road.pop(0))for i in range(1, self.road_number 1):c.move(i, -player.car.speed, 0)c.move(self.c_end, -player.car.speed, 0)# 小树类 class Tree:speed 0def __init__(self, posx,posy,filepath,treetagtree):self.posx posxself.posy posyself.filepath filepathself.treetag treetag# 创建树def tree_create(self,c):self.tree_img tk.PhotoImage(fileself.filepath)c.create_image(self.posx, self.posy, imageself.tree_img, tagself.treetag)# 树相对于车移动def treemove(self, c):global FLAG,playerif FLAG:if self.posx 10:self.speed player.car.speedself.posx - self.speedc.delete(self.treetag)c.create_image(self.posx, self.posy, imageself.tree_img, tagself.treetag)else:self.posx random.randint(550,950)self.speed player.car.speedself.posx - self.speedc.create_image(self.posx, self.posy, imageself.tree_img, tagself.treetag)# 小车类 class Car:speed 2.0 # 初始化小车的移动速度posx 70 # 初始化小车的初始位置x轴方向car_move_distance [] # 记录小车,以初始化速度speed 2.0开始移动的路程def __init__(self, filepath, posy, cartag, username):self.filepath filepathself.posy posyself.cartag cartagself.username username# 小车移动方法def car_move(self,c,car_img):global FLAGprint(self.username,准备就绪...)self.car_img car_imgdef run():if FLAG:if CARFLAG:self.posx self.speedself.car_move_distance []self.car_move_distance.append((self.cartag, self.posx))c.delete(self.cartag)c.create_image(self.posx, self.posy, imageself.car_img, tagself.cartag)c.delete(self.username)c.create_text(self.posx, self.posy, textself.username, font(Purisa, 13), fillwhite,tagself.username)else:c.delete(self.cartag)c.create_image(self.posx, self.posy, imageself.car_img, tagself.cartag)c.delete(self.username)c.create_text(self.posx, self.posy, textself.username, font(Purisa, 13), fillwhite,tagself.username)c.after(10, run)else: print(f{self.username} 小车停止)run()# 小车移动速度随时变化def car_speed_change(self):global FLAG,playertime.sleep(2.3)while FLAG:if player.car.speed 14: self.speed random.uniform(player.car.speed - 0.3, player.car.speed 0.7)elif 14 player.car.speed 18: self.speed random.uniform(player.car.speed - 0.8, player.car.speed 0.5)else: self.speed random.uniform(19 - 1.1, 19 0.3)time.sleep(1) # 打字类 class display_text:def __init__(self, gw):self.gw gwself.l1_oop [] # 存储提示标签对象self.l2_oop [] # 存储玩家打字时的标签对象self.cpm_list [] #用正确的总输入字符次数除以总花费的时间以分钟为单位self.typspeed 0.0 # 记录打字的速度self.anwser # 拼接答案self.text self.gw.road.text # 单词内容self.text2 self.text.copy()self.text.extend(self.text2) # 单词内容翻倍 x 2self.text_number len(self.text) / 2 # 单词个数self.loading_text()# 加载打字内容def loading_text(self):col 1 # 列数number 20 # 每页展示20个字for i, text in enumerate(self.text[:number]):l1 tk.Label(gw.text_frame, texttext, bgwhite, font(微软雅黑, 15))l2 tk.Label(gw.text_frame, text, bgwhite, font(微软雅黑, 15))if i int(number / 2):l1.grid(row1, columncol, )l2.grid(row2, columncol, )elif int(number / 2) i number:l1.grid(row3, columncol - int(number / 2), )l2.grid(row4, columncol - int(number / 2), )col 1l1.focus_set()l1.bind(Key, self.l_bind)self.l1_oop.append(l1)self.l2_oop.append(l2)# 标签绑定键盘事件def l_bind(self, event):# print(f事件触发键盘输入:{event.char},对应的ASCII码:{event.keycode})global FLAGif not FLAG: returnif not self.text: returnif event.keycode 8:self.anwser self.l2_oop[0].configure(text)returnif not 65 event.keycode 90: returnself.anwser event.charself.l2_oop[0].configure(textself.anwser, bg#FFFAE3)result self.text[0]if self.anwser.strip() result:self.cpm_list.append(result)self.l1_oop[0].configure(fgred)self.text.remove(result)self.l1_oop.pop(0)self.l2_oop.pop(0)self.anwser if not self.l1_oop and len(self.text) ! 0:gw.text_frame.destroy()gw.display_text_frame()self.loading_text()returnif len(self.anwser) len(result):self.anwser # 检测打字速度, 每分钟输入了多少字符def typing_speed(self):global FLAGtime_ 0while FLAG:time_ 1try:self.cpm round(len(.join(self.cpm_list)) / time_ * 60)self.wpm round(len(self.cpm_list) / (time_ / 60))# 用来表示打字速度即每分钟打多少个字或单词gw.cpm_label.configure(textfcpm{self.cpm})gw.wpm_label.configure(textfwpm{self.wpm})except:self.cpm 0self.wpm 0self.typspeed self.cpm / 12time.sleep(1) # 游戏窗口类 class GameWindow:bgcolor #68696E # 画布颜色root tk.Tk()root.title(打字小游戏开发)screenwidth root.winfo_screenwidth()screenheight root.winfo_screenheight()def __init__(self):pass# 窗口页面的大小def window_page_size(self,windowsize):rootwidth, rootheight windowsizerootposx int((self.screenwidth - rootwidth) / 2)rootposy int((self.screenheight - rootheight) / 2) - 100self.root.geometry({}x{}{}{}.format(rootwidth, rootheight, rootposx, rootposy))time.sleep(0.1)# 选择赛道def select_road(self):def func(event):global FLAG,CARFLAG,ROADFLAG TrueCARFLAG Trueroad event.widget[text]print(road)ROAD road[:-2]self.select_road_frame.destroy()self.window_page_size((1000, 560))self.create_canvas()configuration_project(ROAD)self.recording_time()self.display_typing_speed()self.replay_button()self.return_button()self.window_page_size((500, 300))self.select_road_frame tk.Frame(self.root)self.select_road_frame.place(x0, y0, width500, height300)for road in [Python赛道,Java赛道,MySql赛道]:b tk.Button(self.select_road_frame, textroad,font(华文行楷, 26),relieftk.RAISED,cursorhand2,width12,height1)b.pack(pady20)b.bind(Button-1, func)# 创建一张画布def create_canvas(self):self.canvas tk.Canvas(self.root, width1000, height400, bgself.bgcolor)self.canvas.place(x0, y0)# 创建一条路——赛道def create_road(self,roadtype):# self.road Road(Java) # 实列化一个路的对象Java类型的路self.road Road(roadtype) # 实列化一个路的对象Python类型的路self.road_img tk.PhotoImage(file./sucai/road.png)self.c_road [self.canvas.create_image(i, 200, imageself.road_img, tagfc_road{i}) for i in range(500, self.road.road_number * 1000, 1000)]self.tag_road [fc_road{i} for i in range(500, (self.road.road_number - 2) * 1000, 1000)]# 创建两棵树def create_tree(self):self.tree1 Tree(posx160, posy350,filepath./sucai/tree1.png,treetagtree1)self.tree1.tree_create(self.canvas)self.tree2 Tree(posx230, posy340,filepath./sucai/tree2.png, treetagtree2)self.tree2.tree_create(self.canvas)# 创建跑程进度条def displayprogressbar(self,caroop_list):maximum self.road.road_lengthself.progressbar_list []for i in range(4):progressbar ttk.Progressbar(self.canvas, length200, maximummaximum)progressbar.place(x10, y 20 if i 0 else i*40 20)tk.Label(self.canvas,textcaroop_list[i].username,fg#191970).place(x215,y20 if i 0 else i*40 20)self.progressbar_list.append(progressbar)# 重新开始按钮def replay_button(self):def function():global FLAG,CARFLAG,end_label_list,dtFLAG FalseCARFLAG Falsefor t in threading.enumerate()[1:]:stop_thread(t)self.canvas.destroy()self.text_frame.destroy()if end_label_list:for i in end_label_list: i.destroy()del dtFLAG TrueCARFLAG Trueself.create_canvas()configuration_project(ROAD)self.recording_time()self.return_button()self.replaybutton_img tk.PhotoImage(file./sucai/replay.png)tk.Label(self.root,text重新开始).place(x920,y480)replaybutton tk.Button(self.root, imageself.replaybutton_img, commandfunction)replaybutton.place(x910,y400)# 返回按钮def return_button(self):def function():global FLAG,CARFLAG,ROAD,end_label_list,dtFLAG FalseCARFLAG FalseROAD for t in threading.enumerate()[2:]:stop_thread(t)self.canvas.destroy()self.text_frame.destroy()self.cpm_label.destroy()self.wpm_label.destroy()if end_label_list:for i in end_label_list: i.destroy()del dtself.select_road()self.returnbutton_img tk.PhotoImage(file./sucai/return.png)returnbutton tk.Button(self.root,text返回,imageself.returnbutton_img,commandfunction)returnbutton.place(x900,y50)# 记录游戏时间def recording_time(self):time_label tk.Label(self.canvas, text时长00:00:00, font(华文行楷, 15), background#DAEFE6)time_label.place(x870, y20)start_time datetime.datetime.now()def run():global FLAGif FLAG:time_label.after(1000, run)update_time datetime.datetime.now() - start_timeself.time_ f时长{update_time}.split(.)[0]time_label.configure(textself.time_) # 不显示时长的毫秒值run()# 展示文本def display_text_frame(self):self.text_frame tk.Frame(self.root, bgwhite)self.text_frame.place(x100, y400, width800, height150)# 显示打字速度def display_typing_speed(self):self.cpm_label tk.Label(self.root,textcpm0, font(微软雅黑, 13),fg#A52A2A)self.cpm_label.place(x8,y410)self.wpm_label tk.Label(self.root, textwpm0, font(微软雅黑, 13),fg#A52A2A)self.wpm_label.place(x8, y440)# 播放背景音乐函数def playmusic(self,):global FLAGmixer.init()mixer.music.load(./sucai/bgmusic.mp3)mixer.music.play()while FLAG:time.sleep(2)mixer.music.stop()# 显示窗口def displaywindow(self):self.root.resizable(False, False)self.root.mainloop()def _async_raise(tid, exctype):tid ctypes.c_long(tid)if not inspect.isclass(exctype):exctype type(exctype)res ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, ctypes.py_object(exctype))if res 0:raise ValueError(invalid thread id)elif res ! 1:ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, None)raise SystemError(PyThreadState_SetAsyncExc failed) # 停止正在运行中的线程 def stop_thread(thread):_async_raise(thread.ident, SystemExit)# 监测小车移动时的数据变化 def monitoring_data(gw,caroop_list,dt):global FLAG,CARFLAG,end_label_listtime.sleep(2.5) # 休眠2.5秒后才开始gw.displayprogressbar(caroop_list) #显示完成跑道的进度条gw.canvas.delete(begin) # 删除起点线gw.road.destination(gw.canvas) # 创建终点线player_car_s player.car.car_move_distance[0][1]timesleep3_posx_s_list {}for i in caroop_list:timesleep3_posx_s_list[i.username] i.car.car_move_distance[0][1]print(i.username,已跑起来)while FLAG:CARFLAG Falsefor idx,p in enumerate(gw.progressbar_list):p[value] timesleep3_posx_s_list[caroop_list[idx].username]if max(timesleep3_posx_s_list.values()) gw.road.road_length:FLAG Falseranking sorted(timesleep3_posx_s_list.items(), keylambda x: x[1]) # 排名for idx,username in enumerate(ranking[::-1]):l tk.Label(gw.root, textusername[0] f 第{idx 1}名, font(微软雅黑, 28), bgwhite)l.pack(pady30)end_label_list.append(l)print(游戏结束)return# player.car.speed 30player.car.speed dt.typspeed #使小车速度 打字速度player_car_s player.car.speed #让小车此时已移动的路程加上小车速度timesleep3_posx_s_list[player.username] player_car_sfor i, caroop in enumerate(caroop_list[1:]):caroop.car.posx caroop.car.speed - player.car.speedtimesleep3_posx_s_list[caroop.username] timesleep3_posx_s_list[caroop.username] caroop.car.speedgw.road.roadmove(gw.canvas, gw.tag_road) # 赛道相对小车的速度开始移动gw.tree1.treemove(gw.canvas) # 树1相对小车的速度开始移动gw.tree2.treemove(gw.canvas) # 树2相对小车的速度开始移动time.sleep(0.0095)# 配置运行流程 def configuration_project(roadtype):print(游戏开始)global player,gw,dt,end_label_listtplaymusic threading.Thread(targetgw.playmusic) # 开启一个播放背景音乐的线程tplaymusic.setDaemon(True)tplaymusic.start()gw.create_road(roadtype) # 创建赛道gw.create_tree() # 创建树gw.road.begin(gw.canvas) #创建一条起点线gw.display_text_frame() # 创建展示文本的frameend_label_list [] # 游戏结束时存放显示名次的标签列表caroop_list [] # 添加所有玩家小车对象carposy_list [90, 147, 250, 309] # 定义四个小车初始化的y轴坐标player Player(yyds) # 创建一个真人玩家对象player.car_create(gw.canvas, carposy_list[0]) # 生成一个属于真人玩家的小车caroop_list.append(player)for i in range(3): #创建三个电脑玩家computer Computer(f[电脑]{i1})computer.car_create(gw.canvas,f./sucai/car{i2}.png, carposy_list[i1], fimg{i2}, computer.username)# 生成属于电脑玩家的小车caroop_list.append(computer)for caroop in caroop_list:tcm threading.Thread(targetcaroop.car.car_move,args(gw.canvas,caroop.car_img)) # 为每一个玩家开启一个线程用来启动各自的小车tcm.setDaemon(True)tcm.start()tcsc threading.Thread(targetcaroop.car.car_speed_change) #为每一辆小车定时随机改变小车的移动速度tcsc.setDaemon(True)tcsc.start()dt display_text(gw) # 实例化一个打字所用的文本内容对象tdt threading.Thread(targetdt.typing_speed) # 开启线程来记录打字的速度tdt.setDaemon(True)tdt.start()tmd threading.Thread(targetmonitoring_data, args(gw, caroop_list, dt)) # 开启线程来记录每一辆小车移动时的数据变化tmd.setDaemon(True)tmd.start() def start():global gwgw GameWindow() # 实例化一个游戏窗口对象gw.select_road() # 选择赛道gw.displaywindow()if __name__ __main__:start() 三、效果实现 这款《极限车神打字小游戏》顾名思义就是一个打字的游戏只有打字速度快你的赛车才能 跑起来哦。游戏分为三个赛道都是关于不同编程的关键字英文边玩游戏还能提升自己哦 两全其美哦 1游戏界面 ​ ​2Python赛道游戏界面 3赛道起飞 其他的赛道以及后续的就给大家留点儿悬念啦。嘿嘿我们下期再见~ 总结 小编目前最远跑了昂几十个单词倔强没有认真跑我发四前面很好跑后面的地形是 真的不容易要不要看看你能跑多远呢 关注小编即可马上找我拿完整的素材源码开始游戏哦。来来来~ 完整的免费源码领取处找我吖文末公众hao可自行领取滴滴我也可 项目1.0  超级玛丽 程序员自制游戏超级玛丽100%真实版能把你玩哭了~【附源码】 项目1.1   扫雷 Pygame实战据说这是史上最难扫雷游戏没有之一你们感受下...... 项目1.4  水果忍者  【Pygame实战】风靡全球的切水果游戏升级版“水果忍者”上线啦你敢来PK嘛 项目7.0  赛车游戏 【Pygame实战】如果你是赛车爱好者这款新赛车游戏分分钟让你上瘾超跑又是谁的梦想 项目7.1  虐单身狗游戏 ​​​​​​Pygame实战慎点虐单身狗的最高境界是…【附源码】 文章汇总—— 汇总合集 Python—2022 |已有文章汇总 | 持续更新直接看这篇就够了 更多内容源码都在✨文章汇总哦欢迎阅读喜欢的文章~
http://www.w-s-a.com/news/373312/

相关文章:

  • 做网站的优势公司网站怎么做站外链接
  • 海城网站制作建设精准营销的营销方式
  • 北京短视频拍摄公司重庆网站seo推广公司
  • 广州免费推广网站建设4399网页游戏大全
  • 网站的构架与组成建站公司兴田德润
  • php网站部署步骤邯郸哪有做网站的
  • 做设计什么设计比较好的网站南充市住房和城乡建设局考试网站
  • 郑州做系统集成的公司网站龙岩
  • 厦门SEO_厦门网站建设网络营销课程视频
  • vs 2015 网站开发开网店在线咨询
  • 前端如何优化网站性能大学学校类网站设计
  • 中国铁路建设投资公司网站熊学军中国it外包公司排名前50
  • 房产网站的建设广州推广排名
  • 湟源县网站建设wordpress删除未分类
  • 营销型网站开发推广厦门百度seo公司
  • 遵义网站开发培训上海中高风险地区名单最新
  • 禹州市门户网站建设做网站可以申请个体户么
  • 大良营销网站建设效果彩票网站搭建 做网站
  • 做网站的公司为什么人少了在中国如何推广外贸平台
  • 盘锦网站制作工业电商网站怎么配色
  • 白云企业网站建设seo排名点击软件
  • wordpress跨站脚本攻击漏洞国外注册的域名国内能用吗
  • 西部数码网站管理助手2工信部资质查询网站
  • 公司网站哪个建的好吉林网站制作
  • 视频网站怎么引流wordpress私人玩物
  • 我的家乡湛江网站设计新钥匙网站建设
  • 辽宁网站推广爱前端wordpress5.0.3主题
  • python怎么做网站贵阳网站制作
  • 深圳网站的优化seo网络推广有哪些
  • 网站建设实习报告范文荆州市城市建设档案馆网站