TC官方合作论坛
标题:
求大神帮忙分析一下
[打印本页]
作者:
smile14174
时间:
2013-12-1 20:33
标题:
求大神帮忙分析一下
我做的游戏,1键是可以持续释放的技能(一直按下),没有冷却时间,2键和3键有冷却是间,但是我就是不会做选怪那一块儿,就是想如果没有选到怪物的情况下暂停攻击(暂停线程),选到怪物的时候再继续攻击(继续线程)。怎么加个判断是不是已经开启了线程,还是没有开启线程呢?
下面的源码是调用的大漠, dzs.delay(500,1000)这个是延时的一个功能。
功能 选怪()
//选怪
A1:
变量 X=0,Y=0
dm.FindPic(0,0,1024,768,"怪物.bmp","000000",0.9,0,X,Y)
如果(X > 0 && Y > 0)
//help.messagebox("找到")
调试输出("找到,调用打怪")
dzs.打怪()
否则
调试输出("没有找到")
dzs.delay(500,1000)
dm.KeyPress(9)
跳转 A1
如果结束
功能结束
功能 打怪()
//打怪
dm.KeyDown(49)//持续技能
临界区=线程.创建临界区()
线程.开启("dzs.技能2",null)
线程.开启("dzs.技能3",null)
功能结束
功能 技能2()
循环(真)
线程.进入临界区(临界区)
调试输出("进入临界区")
dm.KeyUp(49)
dzs.delay(700,800)//技能不释放可以微调
dm.KeyPress(50)
dzs.delay(200,300)
dm.KeyDown(49)
线程.离开临界区(临界区)
dzs.delay(15000,17000)
循环结束
功能结束
功能 技能3()
循环(真)
线程.进入临界区(临界区)
调试输出("进入临界区")
dm.KeyUp(49)
dzs.delay(700,800)//技能不释放可以微调
dm.KeyPress(51)
dzs.delay(200,300)
dm.KeyDown(49)
线程.离开临界区(临界区)
dzs.delay(30000,31000)
循环结束
功能结束
作者:
smile14174
时间:
2013-12-1 20:38
没有人
作者:
kaixindexifan
时间:
2013-12-2 12:09
smile14174 发表于 2013-12-1 20:38
没有人
空间 打怪
线程句柄
打怪开关=0 //打怪开关初始化为0
功能 打怪()
如果("找到怪物")//这里找到了怪物
如果(打怪开关==0)//判断当前开关状态
如果(线程句柄==null)//先判断线程是否已经开启,当然你可以在其他地方把线程先开启,这里就不需要再判断线程句柄了.
线程句柄=线程.开启("打怪.按键","")
打怪开关=1//将打怪开关设置为1
否则//说明线程已经开启,而开关为0,那么我们就恢复线程.
线程.恢复(线程句柄)
打怪开关=1//将打怪开关设置为1
如果结束
如果结束
否则//这里没有找到怪物
如果(打怪开关==1)//判断当前开关状态
线程.暂停(线程句柄)
打怪开关=0
如果结束
如果结束
功能结束
功能 按键()//打怪按键
循环(真)
辅助.等待(500)
//这里是按键代码
循环结束
功能结束
空间结束
复制代码
参考下,希望对你有帮助。
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1