王者荣耀达摩英雄双大代码推测
今天中午吃饭时,由于室友煜哥问我王者荣耀游戏中达摩的双大可能是怎样的代码,我由于毕业论文的事很苦恼,便不耐烦的敷衍了几句。事后再回想颇为羞愧,一点都没有耐心去听别人讲话。心情不好便不想说话,自我封闭,这点需要改正。多希望能泰山崩于前而面不改色。胸有激雷而面如平湖者,可拜上将军!
当时我说只要敌人上墙就会触发刷新,所以有双打。之后又说第二段大招不属于刷新,属于第一段上墙后触发。很显然是自相矛盾,当时还不以为意,觉得自己很在理,无视煜哥反驳。
以下是自我猜测的可以实现双大的代码,花费了一下午,毫无意义,游戏设计感觉应该是面向对象的,仅作个人纪念罢了
虽说于他人而言毫无意义,但在自我思考过程中对代码的逻辑性有了些许深入的思考,对自己以后写代码或许有所帮助。
flag = 1 冷却时间 = 0 def button_on(): # 判断是第一段还是第二段 用flag=1或2判断 if flag == 1: 击退() cd = 30 else: 自己位移() flag = 1 cd = 30 # 假定击退是给敌人一个速度,然后技能有个持续时间,在这个时间内敌人会以这个速度移动 # 当然抵抗鞋或许会影响速度和时间,此处不做讨论 def 击退(): 敌人们 = 获取判定范围内敌人() for 敌人 in 敌人们: if 敌人的状态可被击退: 计算路径() 强制位移() if 能上墙: 计算上墙时间() #计算出n毫秒后后上墙 flag = 2 计时器() #在n毫秒后触发 def 计时器(): cd = 0 倒计时() #二段大招倒计时