连连看.NET v1.4版下载

简介:

2005-6-5 21:38
连连看.NET v1.4版下载

针对声音做了管理,现在可以管理背景音乐了,在我的机器上可以播放"MP3,MIDI,WAV"三种格式均无问题,如果不能播放mp3,建议不添加mp3文件。针对这次更新,我整理了10来个midi音乐,游戏在初始化的时候会读取Music.list 文件,文件是按行保存的音乐路径,可以删除掉,手工改写内容也可以,也可以在“游戏的配置”中设定播放文件。
游戏是要玩过3层地图才算过关,但每次有朋友告诉我图片变暗了,是不是表示被连接了,其实这个暗色的是表示下一层的,但是随机化的时候发生数是一样导致都是同一位置,现在已经修改了这个问题,还有一点,刚玩的人不明白可能点了黑色块也出现标记,现在屏蔽掉了。

个别用户如果出现无法内存地址错误的问题,目前还没办法解决,一、是我测试条件不够,二、发布的时候通过MaxtoCode 1.16混淆过,但我自己通过朋友的测试没有发现这样报指针错误的问题,不过程序中还是用到了指针。

2005-6-5 中午
连连看.net 1.3 (下载)

Loading.gif

解决了初始化速度慢的问题 该版本不需要DirectX9的支持,采用MCI API 播放音乐,所以启动的初始化时间减少到3秒以内。

这次更新的部分有:
1、解决初始化时间过长的问题,因为我采用了DSHOW的方式播放音乐,我原本想播放mp3之类的音乐。
2、现在不需要DirectX的支持,前几个版本,均有非DirectX9平台运行会报错的问题,当前版本已经解决。

未解决的问题:
暂时没有

播放音乐的类,是今天起床写的,昨天喝醉了,如下是MCI 播放音乐的类,支持midi wav
None.gif using System;
None.gif using System.Runtime.InteropServices;
None.gif
None.gif namespace LLK.UI
ExpandedBlockStart.gif ContractedBlock.gif dot.gif {
ExpandedSubBlockStart.gifContractedSubBlock.gif/**//// <summary>
InBlock.gif
/// SoundPlayer 的摘要说明。
InBlock.gif
/// 用MCI 播放音乐
InBlock.gif
/// 作者:萧寒
InBlock.gif
/// http://www.cnblogs.com/chinasf
ExpandedSubBlockEnd.gif
/// </summary>

InBlock.gifpublic class SoundPlayer
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gif [MarshalAs(UnmanagedType.ByValTStr,SizeConst=128)]
InBlock.gifprivate string durLength = "" ;
InBlock.gif [DllImport("winmm.dll",EntryPoint="mciSendString",SetLastError=true, CharSet=CharSet.Auto)]
InBlock.gifprivate static extern long mciSendString(string lpstrCommand, string lpstrReturnString, long uReturnLength, long hwndCallback);
InBlock.gif
InBlock.gifprivate string File;
InBlock.gifprivate string Alias;
InBlock.gifprivate string status = "close";
InBlock.gif
InBlock.gifpublic SoundPlayer(string strFileName,string strAliasName)
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gif
InBlock.gifthis.File = strFileName;
InBlock.gifthis.Alias = strAliasName;
InBlock.gif status = "close";
ExpandedSubBlockEnd.gif }

InBlock.gif
InBlock.gifpublic string FileName
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gif
InBlock.gifget
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifreturn File;
ExpandedSubBlockEnd.gif }

InBlock.gif
ExpandedSubBlockEnd.gif }

InBlock.gif
InBlock.gifpublic string AliasName
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifget
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifreturn Alias;
ExpandedSubBlockEnd.gif }

ExpandedSubBlockEnd.gif }

InBlock.gif
InBlock.gifpublic bool PlaySound()
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifif (PlayFile() == true)
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifreturn true;
ExpandedSubBlockEnd.gif }

InBlock.gifelse
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifreturn false;
ExpandedSubBlockEnd.gif }

ExpandedSubBlockEnd.gif }

InBlock.gif
InBlock.gifpublic bool StopSound()
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gif
InBlock.gif StopFile();
InBlock.gif
InBlock.gifreturn false;
ExpandedSubBlockEnd.gif }

InBlock.gif
InBlock.gifprivate bool PlayFile()
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifbool returnValue;
InBlock.gif
InBlock.giflong lRet;
InBlock.gif
InBlock.giftry
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gif StopFile();
InBlock.gif
InBlock.gif lRet = mciSendString("open " + this.File + " alias " + Alias, "", 0, 0);
InBlock.gif lRet = mciSendString("play "+ Alias, "", 0, 0);
InBlock.gif returnValue = (lRet == 0);
InBlock.gif
InBlock.gif status = "play";
ExpandedSubBlockEnd.gif }

InBlock.gifcatch (Exception)
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifreturn false;
ExpandedSubBlockEnd.gif }

InBlock.gif
InBlock.gifreturn true;
InBlock.gif
ExpandedSubBlockEnd.gif }

InBlock.gif
InBlock.gifpublic void CloseAudio()
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gif
InBlock.gif mciSendString("close all","", 0, 0);
InBlock.gif status = "close";
InBlock.gif
ExpandedSubBlockEnd.gif }

InBlock.gif
InBlock.gifprivate bool StopFile()
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gif
InBlock.giflong lRet;
InBlock.gif
InBlock.giftry
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gif lRet = mciSendString("stop "+Alias, "", 0, 0);
InBlock.gif lRet = mciSendString("close "+Alias, "", 0, 0);
InBlock.gif status = "stop";
InBlock.gifreturn true;
ExpandedSubBlockEnd.gif }

InBlock.gifcatch (Exception)
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifreturn false;
ExpandedSubBlockEnd.gif }

InBlock.gif
ExpandedSubBlockEnd.gif }

InBlock.gif
InBlock.gifpublic bool IsPlaying
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifget
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifif(status!="play")
InBlock.gifreturn false;
InBlock.gif
InBlock.gif durLength = "";
InBlock.gif durLength = durLength.PadLeft(128,Convert.ToChar(" "));
InBlock.gif mciSendString("status " + this.Alias + " mode",durLength,128,0);
InBlock.gifreturn durLength.Substring(0,7).ToLower() == "playing".ToLower();
ExpandedSubBlockEnd.gif }

ExpandedSubBlockEnd.gif }

InBlock.gif
ExpandedSubBlockEnd.gif }

ExpandedBlockEnd.gif}

None.gif

调用代码:
SoundPlayer sp = new SoundPlayer("C:\1.wav","别名"); //每个音乐都指定别名

sp.PlaySound(); //播放
sp.IsPlaying; //检查是否在播放中
sp.StopSound(); //停止

另外,文件名称不能太长,长文件名要采用 8.3 命名规则,可以通过api 转换。



本文转自suifei博客园博客,原文链接:http://www.cnblogs.com/Chinasf/archive/2005/06/05/168253.html,如需转载请自行联系原作者
相关文章
|
3月前
|
SQL 开发框架 前端开发
分享24个上传下载 和32个社区论坛ASP.NET源码,总有一款适合您
分享24个上传下载 和32个社区论坛ASP.NET源码,总有一款适合您
20 0
|
9月前
|
存储 前端开发 API
30分钟玩转Net MVC 基于WebUploader的大文件分片上传、断网续传、秒传(文末附带demo下载)
30分钟玩转Net MVC 基于WebUploader的大文件分片上传、断网续传、秒传(文末附带demo下载)
30分钟玩转Net MVC 基于WebUploader的大文件分片上传、断网续传、秒传(文末附带demo下载)
|
8天前
|
存储 移动开发 前端开发
对象存储oss使用问题之OSS SDK .net 使用下载例程报错如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
23 0
|
6月前
|
Windows
​史上最详细的Windows10系统离线安装.NET Framework 3.5的方法(附离线安装包下载)
​史上最详细的Windows10系统离线安装.NET Framework 3.5的方法(附离线安装包下载)
569 0
|
2月前
|
安全 C# 开发者
.NET开源的一键自动化下载、安装、激活Microsoft Office利器
.NET开源的一键自动化下载、安装、激活Microsoft Office利器
|
7月前
|
Apache
基于commons-net实现ftp创建文件夹、上传、下载功能.
基于commons-net实现ftp创建文件夹、上传、下载功能.
106 0
|
9月前
|
移动开发 监控 网络协议
基于Socket通讯(C#)和WebSocket协议(net)编写的两种聊天功能(文末附源码下载地址)
基于Socket通讯(C#)和WebSocket协议(net)编写的两种聊天功能(文末附源码下载地址)
|
9月前
|
API
.NET指定图片地址下载并转换Base64字符串
.NET指定图片地址下载并转换Base64字符串
|
9月前
|
数据库 C#
C#,.net,winform导入Excel功能以及下载Excel文件到本地,并使用SqlBulkCopy把DataTable类型的数据写入到sqlserver数据库中
C#,.net,winform导入Excel功能以及下载Excel文件到本地,并使用SqlBulkCopy把DataTable类型的数据写入到sqlserver数据库中
219 0
|
9月前
|
前端开发 C#
C# Net MVC 大文件下载几种方式、支持速度限制、资源占用小
C# Net MVC 大文件下载几种方式、支持速度限制、资源占用小