这个游戏是用贴图方式完成的,但是如何才能够使游戏暂停下来?我想在暂停的时候,屏幕变灰,中间打印“PAUSE”,但是后面的图片还是当前的游戏场景,恢复游戏时,也能够继续进行。我想了很久,实现不了,请大家帮帮忙!

解决方案 »

  1.   

    用什么技术? WinForm? 控制台的?如果是WinForm,你做个步进器,所有的动作都由步进器来驱动,当pause了,步进就不动了呗!
    最简单的实现,timer
     {
    if(!pause) gotoNextstep();

    gotoNextStep()
    {
    ////游戏本身的控制,调用,逻辑 等等
    }
      

  2.   

    呵呵,同意。暂停时就是 _tmr.Stop();而点击开始,就是 _tmr.Start();
      

  3.   


    是WinForm的,图片的不可能是Console的吧。。
    游戏本身就是一直在实例化敌人的类,在DrawImage的。。
    不太好控制,这个Timer放哪里?怎能设置不让他一直DrawImage的?
    在讲讲好吗。。我不太明白。。
      

  4.   

    暂停的时候,还是继续绘制的,只是所有数据(如坐标等)不更新,并给每个像素加上一定的灰度值,使它看上去变灰,外加再绘制上pause字样。所以你需要的就是一个标志 暂停的变量,绘图线程一直在工作,发现pause变量=true时,就照上面的描述处理
      

  5.   

    同意5楼的,
    楼主可能就不是通过timer来控制敌人的生成的。
    应该设置一个标志性的变量,比如:bool IsPause = true;
    在生成敌人之前,判断下这个变量,如果是true就生成,不是就不生成了。
    暂停的时候,把这个变量设置成false也就可以了。