解决方案 »

  1.   

    这个是我的小游戏地址 因为代码比较多 所以我打包了  麻烦您了 http://download.csdn.net/detail/theshadowbehindyou/8380007
      

  2.   

    我试过了  但是不懂 我是新手 所以才来这里请教各位 这是我的代码地址 因为代码有点多 我就打包了 http://download.csdn.net/detail/theshadowbehindyou/8380007  相比来说可能麻烦您了  希望您能帮助我 多谢
      

  3.   

    学会调试代码也是个提高的过程
    我不觉得我帮你把bug都调出来给你成品有任何意义
      

  4.   

    先说音乐的问题
    你双击checkbox,后台出现checkbox的checkedchanged事件,在事件里写代码
    if(checkbox.Checked)
    {
    mciSendString(@"close temp_alias", null, 0, 0);
    }
    else
    {
    mciSendString(@"open ""C:\音乐名称.wma"" alias temp_alias",
     
                    null, 0, 0);
     
                mciSendString("play temp_alias repeat", null, 0, 0);
    }
      

  5.   

    pictureBox1.Image == pictureBox10.Image
    这不对
    Image是引用类型,你这样比较永远不可能相等的
    你应该给每个图片编号,最后看编号一致就行了,而不是图像是否一样
      

  6.   


    多谢您的解答 昨天我已经想到了是这个image出了问题,但是我不知道您所说的编号是指什么?
      

  7.   

    多谢您的解答 昨天我已经想到了是这个image出了问题,但是我不知道您所说的编号是指什么?
    比如你一共9个格子,你给格子编号,1-9,然后将编号也放到数组里去,随机分配图像的同时,编号也跟图像对应起来,移动图像的同时,编号也在数组里移动
    最后判断每个编号的顺序是否是1-9的顺序就行了
    或者Image应该有Tag属性吧,试试给它赋值成1-9,或者给picturebox的Tag属性赋值
    总之这个编号到底用什么来存是无所谓的,最终去判断编号就好
    而且只需要判断其中8个一样,第9个也保证是一样的,不需要9个都判断一遍
      

  8.   

    我前面说话也有点重,也怪我.
    其实如果你自己能够调试到pictureBox1.Image == pictureBox10.Image这一句发现它怎么也无法相等,再来问它为什么不会相等,那么早就得到答案了
      

  9.   

    这个代码其实是调用系统API,后台是MideaPlayer.试过如果在不安装MideaPlayer的机器上运行是没有声音的.
    这个代码应该是没有问题,我自己做的一个定时提醒的功能(类似闹钟)也是用的这段代码,停下后是可以再次播放的
    当然不能从中断的地方继续,只能从头播放你先把if和else里的代码分别放到俩按钮里测试,看到底是播放的代码有问题,还是判断的代码有问题
      

  10.   

    或者你引用MideaPlayer(添加引用),然后工具箱里可以拖出来MideaPlayer的控件,这样用法就比较多了,可以快进后退,可以暂停继续,不用每次都从头来
    或者也可以找找第三方的播放器,那样支持的格式也会比较多
    否则MideaPlayer不支持的格式保证都是播放不了了
      

  11.   


       好的  这些方法我都会逐一去试试的  麻烦您了  另外  您教我的方法:  我给 每个picturebox的tag属性都给了值(就是picturebox1控件的属性里面找到tag属性 之后我在里面给了它值:1 再它相对的picturebox10控件的属性里面找到tag属性 也给了1 以此类推 ) 之后再 判断(If(picturebox1.Image.tag == picturebox10.image.tag) ) 
        还是没有反应    是不是我哪里做错了?
      

  12.   

    既然你放到了picturebox1里,你应该直接用picturebox1.Tag,而不是picturebox1.Image.tag
    而且tag是个object类型,你应该先把它转int型,然后就直接去判断它是否分别是1,2,3就行了,而不要再跟picturebox10去比较了
    当然你挪动图片的时候,也要相应的修改picturebox1.Tag值,否则一开始就判断它已经完成了
      

  13.   

    if((int)picturebox1.Tag==1)这样就好
    反正你规定好了是1-9,也不可能是其他数,不要再跟picturebox10去比了
      

  14.   

    断点跟,看你拼图完成的时候Tag值都分别是什么.
    是否你移动图像的时候没把Tag重新赋值
      

  15.   


    我断点跟着拼好了图 没反应 下面的代码好像没有什么tag值(看不懂)  
      

  16.   

    先看你的Form3_Activated事件方法到底走没走,把断点直接放到函数的第一行
    如果没走,那么你写啥都白写
    如果走了,你再F10单步执行,看picturebox1.Tag到底是什么
      

  17.   

    或者如果它根本不执行,你就别用这个事件了,干脆封装个方法,然后在你点击9个PictureBox之后都调用一下
      

  18.   

    我就是F10单步执行的  但是没有看到您说的picturebcx1.Tag  而且 它根本没有执行我在激活窗口事件里面的代码(里面写了提示游戏成功的代码) 
      

  19.   

    那么是谁告诉你一定要用Form3_Activated事件的呢
    既然这个事件不执行,你也不知道它应该什么时候执行,怎么样才能让他执行
    那么就干脆放弃它,反正拼图完成只可能是在点击了PictureBox之后,总不可能没人点它自己就完成了吧
    等你每次点完判断是否完整了不就得了
      

  20.   

    那是因为你一开始是判断Image对象是否相等,这永远不会相等
    你胡乱的改代码放的位置,放哪里它也是不会相等的
    而现在既然里面的已经改过来了,你就应该再考虑到底应该把代码写在哪里
    而不是已经改成正确的代码却永远也不会执行
      

  21.   


    我现在做了label标签 现在就是能够提示拼图成功 但是就是不知道放在哪里好 现在就是放在图片事件里面还是激活窗体事件里面都是会弹出窗口,您能指导 我么