连连看.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
using System;
using System.Runtime.InteropServices;

namespace LLK.UI
{
    
/// <summary>
    
/// SoundPlayer 的摘要说明。
    
/// 用MCI 播放音乐
    
/// 作者:萧寒
    
/// http://www.cnblogs.com/chinasf
    
/// </summary>

    public class SoundPlayer
    
{
        [MarshalAs(UnmanagedType.ByValTStr,SizeConst
=128)] 
        
private string durLength = "" ; 
        [DllImport(
"winmm.dll",EntryPoint="mciSendString",SetLastError=true, CharSet=CharSet.Auto)]
        
private static extern long mciSendString(string lpstrCommand, string lpstrReturnString, long uReturnLength, long hwndCallback);
    
        
private string File;
        
private string Alias;
        
private string status = "close";
    
        
public SoundPlayer(string strFileName,string strAliasName) 
        
{
        
            
this.File = strFileName;
            
this.Alias = strAliasName;
            status 
= "close";
        }

    
        
public string FileName
        
{
        
            
get
            
{
                
return File;
            }

        
        }


        
public string AliasName
        
{
            
get
            
{
                
return Alias;
            }

        }

    
        
public bool PlaySound()
        
{
            
if (PlayFile() == true)
            
{
                
return true;
            }

            
else
            
{
                
return false;
            }
        
        }

    
        
public bool StopSound()
        
{
        
            StopFile();
        
            
return false;
        }

    
        
private bool PlayFile()
        
{
            
bool returnValue;
        
            
long lRet;
        
            
try
            
{
                StopFile();
            
                lRet 
= mciSendString("open " + this.File + " alias " + Alias, ""00);
                lRet 
= mciSendString("play "+ Alias, ""00);
                returnValue 
= (lRet == 0);
            
                status 
= "play";
            }

            
catch (Exception)
            
{
                
return false;
            }

        
            
return true;
        
        }

    
        
public void CloseAudio()
        
{
        
            mciSendString(
"close all",""00);
            status 
= "close";
    
        }

    
        
private bool StopFile()
        
{
        
            
long lRet;
        
            
try
            
{
                lRet 
= mciSendString("stop "+Alias, ""00);
                lRet 
= mciSendString("close "+Alias, ""00);
                status 
= "stop";
                
return true;
            }

            
catch (Exception)
            
{
                
return false;
            }

        
        }


        
public bool IsPlaying
        
{
            
get
            
{
                
if(status!="play")
                    
return false;

                durLength 
= "";
                durLength 
= durLength.PadLeft(128,Convert.ToChar(" "));
                mciSendString(
"status " + this.Alias + " mode",durLength,128,0);
                
return durLength.Substring(0,7).ToLower() == "playing".ToLower();
            }

        }


    }

}


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

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

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


2005-6-5
posted @ 2005-06-05 13:06  suifei  阅读(4268)  评论(26编辑  收藏  举报