怎样制作像一些游戏网站游戏启动器制作

微端游戏启动器launcher的制作之下载篇(系列一) - shellxi - 博客园
Powered by:
模板提供:
& & &首先第一篇先讲一讲launcher最核心的功能---下载功能。
& & &这个部分估计得好几篇才能写完,东西比较多也比较杂,慢慢来吧,我的东西也在继续改进中。。。。。。
& & &从web上下载文件需要用到几个类,HttpWebRequest(http请求)、HttpWebResponse(http应答),Stream(文件流),大致流程就是先创建一个请求,然后等待web服务器应答,这时候它会去找这个网址存在不存在,如果不存在就会报错,所以最好是放在try/catch块中防止程序崩掉。然后你就可以创建一个web请求流文件了。注意这里要创建两个流文件,一个是从web上获取应答的,一个是创建一个本地文件用于写入你请求到的数据们~~~然后就等着它获取数据吧。这里一定要注意的是因为是文件操作所以文件打开一次就要关闭一次,一定要关闭一定要关闭一定要关闭重要的事情说三遍,如果你不关闭的话就会出现数据丢失。
& & &具体的就上代码吧,因为我自己也是这样,看人家的博文长篇大论没有代码的话结果就是依旧不会~~~
HttpWebRequest Myrqt = (HttpWebRequest)HttpWebRequest.Create(URL);
HttpWebResponse Myrpe = (HttpWebResponse)Myrqt.GetResponse();
totalBytes = Myrpe.ContentL
//从web响应上得到的总字节数,这个是为了做进度条
Stream st = Myrpe.GetResponseStream();
//从web请求创建流
Stream so = new FileStream(filePath + "\\" + FileName, FileMode.Create);//创建写文件流
byte[] by = new byte[1024];
int osize = st.Read(by, 0, (int)by.Length);
while (osize & 0)
so.Write(by, 0, osize);
osize = st.Read(by, 0, (int)by.Length);
so.Close();
st.Close();
  现在一个文件的下载功能就做好了,但是我们不可能只下载一个文件,总不可能把所有文件的url都写一遍然后请求下载吧,这样如果web服务器上增加了新文件,整个launcher就得重新改了。。。。。。这就涉及到了我们之前所说的配置文件,配置文件有两个字段是必须要的,一个就是文件的路径,加上了你的web服务器的url就能变成下载地址了,一个是MD5码。
& & &所以我们现在要跳到配置文件的生成上了吗?!好像这样有点乱又好像很有逻辑的样子~
& & &好吧,我们先说说配置文件。
& & &我这里所使用的配置文件是xml文件,当然你也可以用txt啊excel表啊,只是写入方法和读取方法不一样而已,我只讲xml文件,其他大家自己去探索吧。(其实是因为其它我也没用过不知道~~~)
& & &我们需要用到两个namespace,System.Xml和System.IO,好吧只要你有文件操作必然要用到System.IO这个namespace的。现在我们假设你所有的要上传到web服务器的文件全部放在一个文件夹下,什么?不在一个文件夹下?那就放到一起吧,何苦为难你自己。。。。。。我们暂时把这个文件叫做总文件夹。
& & &具体怎么创建我就不写了,主要是在写入的过程中你需要遍历文件夹中的所有文件包含其子文件,这需要用到递归,找到文件之后就创建一个节点,然后把它的FileInfo.DirectoryName作为你的节点的一个字段放入你的xml文件中,然后计算出它的MD5码作为另一个字段也放入这个节点下,然后就能看到效果啦。
&file size="309" MD5="ca9e7a2df6c52c9b48b76fb6e232f651" name="D:\myfile\AssetBundleList.txt"& &/file&
& & &但是这样你会发现一个问题,你的路径里面多了一段你的总文件夹的绝对路径,然而我们并不需要,总不会传到web上路径还带个盘目录吧,所以我们需要移除这一段。大家肯定说直接replace成空就好了啊,但是这里还有一个问题,如果你的总文件夹路径是直接写在代码里的话(例如D:\\myfile),在你的xml文件里的路径就会变成D:\myfile,这样你直接移除的话他就会找不到啦,所以你必须先把&\\&替换成@&\&(它是个转意符,要让它变成字符的话就要加@),然后再移除,&//&也一样,要转换成@&\&,不过你也可以试试直接传@&D:\mfile&,我没试过,或许可行?
& & & 这里就不上代码了,如果不会的话可以问我,我是不会告诉你们的~哈哈哈,没有啦,如果你是C#程序员,你一定比我清楚,如果你不是,度娘一定比我清楚~但是如果说你是窗体程序,总文件夹的路径是从窗口输入的话就不存在这个问题啦,它会自己识别成&\&的。。。。。。。
& & &下面就是计算MD5码的方式。
public string CalculateMD5(string fileName)
//计算MD5码,参数为文件名,返回值为MD5码
FileStream file = new FileStream(filePath + "//" + fileName, FileMode.Open);
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] retVal = puteHash(file);
file.Close();
StringBuilder sb = new StringBuilder();
for (int i = 0; i & retVal.L i++)
sb.Append(retVal[i].ToString("x2"));
return sb.ToString();
catch (Exception ex)
throw new Exception("GetMD5HashFromFile() fail,error:" + ex.Message);
  好啦,这一篇就到这了,我们下一篇再继续说~~~
& & &转载请注明出处:/shellxi/p/5553566.html
阅读(...) 评论()我的世界mod,要那种单纯的mod加游戏里的,没有游戏启动器,给我个群什么的,网址啊,一些的,不要_百度知道【3D游戏制作 3D Rad 7.22
下载】_游戏辅助_游戏娱乐_软件下载_新浪科技_新浪网
& 3D游戏制作 3D Rad
3D游戏制作 3D Rad 7.22
发布公司:3D RAD
授权方式:
软件评级:
绿色认证:
操作系统:WindowsAll
软件语言:英文
软件大小:45,182 KB
更新日期:
下载次数:累计/154753 本周/28
关键字项:
  3D电玩制作软件,可制作互动式3D游戏环境,然后编辑成单独的可执行程序可以分发销售。
  3DRad是一个易于使用的3D应用开发系统,尤其适合3D游戏开发之用。 将活动的3D元素放置到拟真的环境中就能建立互动的3D世界。将活动的3D元素放置到拟真的环境中就能建立互动的3D世界。 而生成的3D产品可以输出成一个单独的格式,便于发行和销售。
  软件的3D引擎支持硬件加速,动态色彩多灯光源,半透明纹理,雾化及Gouraud网底等。此外,该3D引擎集成了16位的3D声音系统,可以通过滚动、动态偏转、消声以及Doppler效果来生成环境声效。
  该版本在介面、渲染质量、记忆体管理以及载入资料速度上进行了改进。同时,3D Rad可自选的3D物件生成3D爆炸效果。
Dolphin可以让PC游戏玩家享用GameCube游戏机和任天堂Wii的全高清(1080p)的游戏。
Mac|免费版|星级:&下载次数:10
虚幻引擎4是由游戏开发者制作并供游戏开发者使用的一整套游戏开发工具。
WindowsAll|免费版|星级:&下载次数:1179
虚幻引擎4是由游戏开发者制作并供游戏开发者使用的一整套游戏开发工具。
Mac|免费版|星级:&下载次数:14719
是街机模拟器 MAME(DOS 版本)的前端程序。
Win8/7/Vista/XP/10|免费版|星级:&下载次数:6359
本类周排名
正在加载数据
本类总排名
正在加载数据
欢迎参与投票调查

参考资料

 

随机推荐