电脑操作用代码解决,那用户操作只有等待玩家来操作了 怎么实现程序暂停等待用户操作。。。 是不是要用多线程 怎么用 以前没用过 麻烦详细点 谢谢
在线等。。。 大大们 给点注意吧
12 个解决方案
#1
Thread.Sleep
#2
怎么用啊 这个没法控制吧 我想要那种 玩家不点击 确定 就一直在那 暂停着 等玩家操作
#3
if (!Flag)
{
while (true)
{
Thread.Sleep(100);
if (Flag)
{
Thread.Sleep(100);
break;
}
}
}
也许不太适用,这是我做遍历磁盘的一个,加了暂停功能,不过这个是用一个线程启动的递归。
要暂停就传个Flag过去,继续的话再传个Flag。如果你那个是主线程的话,可能就不适用了。
{
while (true)
{
Thread.Sleep(100);
if (Flag)
{
Thread.Sleep(100);
break;
}
}
}
也许不太适用,这是我做遍历磁盘的一个,加了暂停功能,不过这个是用一个线程启动的递归。
要暂停就传个Flag过去,继续的话再传个Flag。如果你那个是主线程的话,可能就不适用了。
#4
我这个就是主线程,可不可以用timer控件实现啊
#5
多线程一般啥时候用啊,我做这个棋牌游戏参考的斗地主。里面用线程了,画面可清晰、也不延迟。 而我的那个画面刷新不过来。。。 可卡
#6
IEnumerable<object> Loop()
{
for (int i = 1; i <= 10000; i++)
{
some thing you want to do...
yield return new object();
}
}
bool Continue = true;
void Main()
{
IEnumerator<object> enum = Loop().GetEnumerator();
enum.Reset();
while (enum.MoveNext() && Continue) ;
}
在程序其他地方设置 Continue 为 false 就可以暂停。
#7
能不能详细一点 我看不懂啊
我那个程序给你说一下: while(判断方法返回值)
{
for()
{
电脑自动操作;
用户操作;(怎么在这暂停,等待用户操作呢)
电脑自动操作;
}
}
我那个程序给你说一下: while(判断方法返回值)
{
for()
{
电脑自动操作;
用户操作;(怎么在这暂停,等待用户操作呢)
电脑自动操作;
}
}
#8
用户的操作是选择适合的牌用在适合的对象身上,等于是 选中牌 和 对象 然后点击确认。。。
#9
我觉得要多线程好点,否则界面没反应
#10
多线程原子操作。
不了解多线程。可以补习一下。
不了解多线程。可以补习一下。
#11
楼上的都误解了。
其实,游戏进行暂停状态,并不是意味着应用程序进入休眠!
我的理解是:三国杀玩家操作,要倒计时的,如果超时,就会自动出牌或者PASS。
而暂停其实就是将这个倒计时的钟停止了(比如用户去WC了)。
怎么实现呢:其实显示一个暂停的画面,并且让倒计时钟暂停就可以了(也就是楼主说的那个线程)。然后如果用户点了继续,再回到游戏的画面,让倒计时钟恢复倒计时就可以了!
当然,也可以不用开线程,因为系统本身带有Timer对象!你只需要将Timer对象暂停。
其实,游戏进行暂停状态,并不是意味着应用程序进入休眠!
我的理解是:三国杀玩家操作,要倒计时的,如果超时,就会自动出牌或者PASS。
而暂停其实就是将这个倒计时的钟停止了(比如用户去WC了)。
怎么实现呢:其实显示一个暂停的画面,并且让倒计时钟暂停就可以了(也就是楼主说的那个线程)。然后如果用户点了继续,再回到游戏的画面,让倒计时钟恢复倒计时就可以了!
当然,也可以不用开线程,因为系统本身带有Timer对象!你只需要将Timer对象暂停。
#12
实现定时器功能就是timer
#1
Thread.Sleep
#2
怎么用啊 这个没法控制吧 我想要那种 玩家不点击 确定 就一直在那 暂停着 等玩家操作
#3
if (!Flag)
{
while (true)
{
Thread.Sleep(100);
if (Flag)
{
Thread.Sleep(100);
break;
}
}
}
也许不太适用,这是我做遍历磁盘的一个,加了暂停功能,不过这个是用一个线程启动的递归。
要暂停就传个Flag过去,继续的话再传个Flag。如果你那个是主线程的话,可能就不适用了。
{
while (true)
{
Thread.Sleep(100);
if (Flag)
{
Thread.Sleep(100);
break;
}
}
}
也许不太适用,这是我做遍历磁盘的一个,加了暂停功能,不过这个是用一个线程启动的递归。
要暂停就传个Flag过去,继续的话再传个Flag。如果你那个是主线程的话,可能就不适用了。
#4
我这个就是主线程,可不可以用timer控件实现啊
#5
多线程一般啥时候用啊,我做这个棋牌游戏参考的斗地主。里面用线程了,画面可清晰、也不延迟。 而我的那个画面刷新不过来。。。 可卡
#6
IEnumerable<object> Loop()
{
for (int i = 1; i <= 10000; i++)
{
some thing you want to do...
yield return new object();
}
}
bool Continue = true;
void Main()
{
IEnumerator<object> enum = Loop().GetEnumerator();
enum.Reset();
while (enum.MoveNext() && Continue) ;
}
在程序其他地方设置 Continue 为 false 就可以暂停。
#7
能不能详细一点 我看不懂啊
我那个程序给你说一下: while(判断方法返回值)
{
for()
{
电脑自动操作;
用户操作;(怎么在这暂停,等待用户操作呢)
电脑自动操作;
}
}
我那个程序给你说一下: while(判断方法返回值)
{
for()
{
电脑自动操作;
用户操作;(怎么在这暂停,等待用户操作呢)
电脑自动操作;
}
}
#8
用户的操作是选择适合的牌用在适合的对象身上,等于是 选中牌 和 对象 然后点击确认。。。
#9
我觉得要多线程好点,否则界面没反应
#10
多线程原子操作。
不了解多线程。可以补习一下。
不了解多线程。可以补习一下。
#11
楼上的都误解了。
其实,游戏进行暂停状态,并不是意味着应用程序进入休眠!
我的理解是:三国杀玩家操作,要倒计时的,如果超时,就会自动出牌或者PASS。
而暂停其实就是将这个倒计时的钟停止了(比如用户去WC了)。
怎么实现呢:其实显示一个暂停的画面,并且让倒计时钟暂停就可以了(也就是楼主说的那个线程)。然后如果用户点了继续,再回到游戏的画面,让倒计时钟恢复倒计时就可以了!
当然,也可以不用开线程,因为系统本身带有Timer对象!你只需要将Timer对象暂停。
其实,游戏进行暂停状态,并不是意味着应用程序进入休眠!
我的理解是:三国杀玩家操作,要倒计时的,如果超时,就会自动出牌或者PASS。
而暂停其实就是将这个倒计时的钟停止了(比如用户去WC了)。
怎么实现呢:其实显示一个暂停的画面,并且让倒计时钟暂停就可以了(也就是楼主说的那个线程)。然后如果用户点了继续,再回到游戏的画面,让倒计时钟恢复倒计时就可以了!
当然,也可以不用开线程,因为系统本身带有Timer对象!你只需要将Timer对象暂停。
#12
实现定时器功能就是timer