本人新手 最近做了一个拼图游戏 但是出了一些小问题 希望能有人帮我解答一下 游戏音乐c# 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个是我的小游戏地址 因为代码比较多 所以我打包了 麻烦您了 http://download.csdn.net/detail/theshadowbehindyou/8380007 我试过了 但是不懂 我是新手 所以才来这里请教各位 这是我的代码地址 因为代码有点多 我就打包了 http://download.csdn.net/detail/theshadowbehindyou/8380007 相比来说可能麻烦您了 希望您能帮助我 多谢 学会调试代码也是个提高的过程我不觉得我帮你把bug都调出来给你成品有任何意义 先说音乐的问题你双击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);} pictureBox1.Image == pictureBox10.Image这不对Image是引用类型,你这样比较永远不可能相等的你应该给每个图片编号,最后看编号一致就行了,而不是图像是否一样 多谢您的解答 昨天我已经想到了是这个image出了问题,但是我不知道您所说的编号是指什么? 多谢您的解答 昨天我已经想到了是这个image出了问题,但是我不知道您所说的编号是指什么?比如你一共9个格子,你给格子编号,1-9,然后将编号也放到数组里去,随机分配图像的同时,编号也跟图像对应起来,移动图像的同时,编号也在数组里移动最后判断每个编号的顺序是否是1-9的顺序就行了或者Image应该有Tag属性吧,试试给它赋值成1-9,或者给picturebox的Tag属性赋值总之这个编号到底用什么来存是无所谓的,最终去判断编号就好而且只需要判断其中8个一样,第9个也保证是一样的,不需要9个都判断一遍 我前面说话也有点重,也怪我.其实如果你自己能够调试到pictureBox1.Image == pictureBox10.Image这一句发现它怎么也无法相等,再来问它为什么不会相等,那么早就得到答案了 这个代码其实是调用系统API,后台是MideaPlayer.试过如果在不安装MideaPlayer的机器上运行是没有声音的.这个代码应该是没有问题,我自己做的一个定时提醒的功能(类似闹钟)也是用的这段代码,停下后是可以再次播放的当然不能从中断的地方继续,只能从头播放你先把if和else里的代码分别放到俩按钮里测试,看到底是播放的代码有问题,还是判断的代码有问题 或者你引用MideaPlayer(添加引用),然后工具箱里可以拖出来MideaPlayer的控件,这样用法就比较多了,可以快进后退,可以暂停继续,不用每次都从头来或者也可以找找第三方的播放器,那样支持的格式也会比较多否则MideaPlayer不支持的格式保证都是播放不了了 好的 这些方法我都会逐一去试试的 麻烦您了 另外 您教我的方法: 我给 每个picturebox的tag属性都给了值(就是picturebox1控件的属性里面找到tag属性 之后我在里面给了它值:1 再它相对的picturebox10控件的属性里面找到tag属性 也给了1 以此类推 ) 之后再 判断(If(picturebox1.Image.tag == picturebox10.image.tag) ) 还是没有反应 是不是我哪里做错了? 既然你放到了picturebox1里,你应该直接用picturebox1.Tag,而不是picturebox1.Image.tag而且tag是个object类型,你应该先把它转int型,然后就直接去判断它是否分别是1,2,3就行了,而不要再跟picturebox10去比较了当然你挪动图片的时候,也要相应的修改picturebox1.Tag值,否则一开始就判断它已经完成了 if((int)picturebox1.Tag==1)这样就好反正你规定好了是1-9,也不可能是其他数,不要再跟picturebox10去比了 断点跟,看你拼图完成的时候Tag值都分别是什么.是否你移动图像的时候没把Tag重新赋值 我断点跟着拼好了图 没反应 下面的代码好像没有什么tag值(看不懂) 先看你的Form3_Activated事件方法到底走没走,把断点直接放到函数的第一行如果没走,那么你写啥都白写如果走了,你再F10单步执行,看picturebox1.Tag到底是什么 或者如果它根本不执行,你就别用这个事件了,干脆封装个方法,然后在你点击9个PictureBox之后都调用一下 我就是F10单步执行的 但是没有看到您说的picturebcx1.Tag 而且 它根本没有执行我在激活窗口事件里面的代码(里面写了提示游戏成功的代码) 那么是谁告诉你一定要用Form3_Activated事件的呢既然这个事件不执行,你也不知道它应该什么时候执行,怎么样才能让他执行那么就干脆放弃它,反正拼图完成只可能是在点击了PictureBox之后,总不可能没人点它自己就完成了吧等你每次点完判断是否完整了不就得了 那是因为你一开始是判断Image对象是否相等,这永远不会相等你胡乱的改代码放的位置,放哪里它也是不会相等的而现在既然里面的已经改过来了,你就应该再考虑到底应该把代码写在哪里而不是已经改成正确的代码却永远也不会执行 我现在做了label标签 现在就是能够提示拼图成功 但是就是不知道放在哪里好 现在就是放在图片事件里面还是激活窗体事件里面都是会弹出窗口,您能指导 我么 WPF中DataGrid能不能不绑定 可以动态去除控件的某个事件吗? 定义了两个对象Form y = new Form(); TextBox tb = new TextBox();,如何将文本框对象tb添加到y窗体对象中呢? 利用IrisSkin2换肤控件,在使用通用对话框时出现的问题 关于界面设计和程序分离的问题 (100分)求 C# 如何通过代理服务器发邮件 拜师贴 100分的问题 C#从哪个版本开始,会自动给没有赋初始值的类成员一个默认值? 请教程序发布的问题 问个切割bmp的问题 求C#大神来。
我不觉得我帮你把bug都调出来给你成品有任何意义
你双击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);
}
这不对
Image是引用类型,你这样比较永远不可能相等的
你应该给每个图片编号,最后看编号一致就行了,而不是图像是否一样
多谢您的解答 昨天我已经想到了是这个image出了问题,但是我不知道您所说的编号是指什么?
比如你一共9个格子,你给格子编号,1-9,然后将编号也放到数组里去,随机分配图像的同时,编号也跟图像对应起来,移动图像的同时,编号也在数组里移动
最后判断每个编号的顺序是否是1-9的顺序就行了
或者Image应该有Tag属性吧,试试给它赋值成1-9,或者给picturebox的Tag属性赋值
总之这个编号到底用什么来存是无所谓的,最终去判断编号就好
而且只需要判断其中8个一样,第9个也保证是一样的,不需要9个都判断一遍
其实如果你自己能够调试到pictureBox1.Image == pictureBox10.Image这一句发现它怎么也无法相等,再来问它为什么不会相等,那么早就得到答案了
这个代码应该是没有问题,我自己做的一个定时提醒的功能(类似闹钟)也是用的这段代码,停下后是可以再次播放的
当然不能从中断的地方继续,只能从头播放你先把if和else里的代码分别放到俩按钮里测试,看到底是播放的代码有问题,还是判断的代码有问题
或者也可以找找第三方的播放器,那样支持的格式也会比较多
否则MideaPlayer不支持的格式保证都是播放不了了
好的 这些方法我都会逐一去试试的 麻烦您了 另外 您教我的方法: 我给 每个picturebox的tag属性都给了值(就是picturebox1控件的属性里面找到tag属性 之后我在里面给了它值:1 再它相对的picturebox10控件的属性里面找到tag属性 也给了1 以此类推 ) 之后再 判断(If(picturebox1.Image.tag == picturebox10.image.tag) )
还是没有反应 是不是我哪里做错了?
而且tag是个object类型,你应该先把它转int型,然后就直接去判断它是否分别是1,2,3就行了,而不要再跟picturebox10去比较了
当然你挪动图片的时候,也要相应的修改picturebox1.Tag值,否则一开始就判断它已经完成了
反正你规定好了是1-9,也不可能是其他数,不要再跟picturebox10去比了
是否你移动图像的时候没把Tag重新赋值
我断点跟着拼好了图 没反应 下面的代码好像没有什么tag值(看不懂)
如果没走,那么你写啥都白写
如果走了,你再F10单步执行,看picturebox1.Tag到底是什么
既然这个事件不执行,你也不知道它应该什么时候执行,怎么样才能让他执行
那么就干脆放弃它,反正拼图完成只可能是在点击了PictureBox之后,总不可能没人点它自己就完成了吧
等你每次点完判断是否完整了不就得了
你胡乱的改代码放的位置,放哪里它也是不会相等的
而现在既然里面的已经改过来了,你就应该再考虑到底应该把代码写在哪里
而不是已经改成正确的代码却永远也不会执行
我现在做了label标签 现在就是能够提示拼图成功 但是就是不知道放在哪里好 现在就是放在图片事件里面还是激活窗体事件里面都是会弹出窗口,您能指导 我么