qq6928233 发表于 2013-2-3 23:55
多媒体引擎(图像+音乐) + 文件管理系统 + 游戏逻辑 + 交互式界面 ≈ 游戏引擎
文件管理系统?实在是太 ...
…………我已经说过了!RM是序列化文件,不是数据库!
再者,我从来没有说过数据库 = 文件管理系统,你非要画等号,是在秀下限还是要自黑啊?
而且数据库是数据管理的高级阶段,它是本来就是由文件管理系统发展起来的,大学的课本你可以回去好好翻翻。
数据库具有数据共享的特点,数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。
这是是序列化文件不能满足的,RM没有办法让远程的用户输入账户密码,然后登入自己游戏工程数据库;为什么说是文件管理系统,就是因为RM是管理序列化文件、图像文件、音乐文件的文件管理系统,并没有数据库。RM的数据库,充其量是个序列化文件编辑器。
另外第二点……说明了LZ确实没有认真学好功课,希望你能谦虚学习,等你真正有点学识就会发现自己现在争论笑点很多……
交互式是指,人机交互是指人与计算机之间使用某种对话语言,以一定的交互方式,为完成确定任务的人与机器之间的信息交换过程。基于此,为达到人机交互目的而为机器所编写的程序称为交互式。
所以即使是DOS界面也是拥有交互式的,你输入一条DIR指令(交给DOS),DOS系统返回给你当前路径的文件结构打印在屏幕上(电脑交给人信息),就像你说的记事本一样,你在那里敲字,如果不是交互式的(记事本完全不理你,不在窗口活动范围刷新文字),你根本就看不到电脑屏幕上的字。
另外IDE(Integrated Development Environment)是指集成开发环境,并不是LZ所说的“代码编辑器”
可详细参见百度百科 http://baike.baidu.com/view/14867.htm
你说你Flex能播放wav和ogg是吧~呵呵,那你建立一个flex工程,把下面的地址改成你自己电脑上面有的wav文件试试,看看能不能播放。- var sound:Sound = new Sound();
- var url:URLRequest = new URLRequest("ftp://xxx:[email protected]/aaa/test.wav");
- sound.load(url);
- sound.play();
复制代码 好吧~我来告诉你要怎么播
var sampleRate:int=0; if (waveReader.sampleRate == 44100) { sampleRate=3; } else if (waveReader.sampleRate == 22050) { sampleRate=2; } else if (waveReader.sampleRate == 11025) { sampleRate=1; } // WRITE SOUNDSTREAMHEADER2 TAG writeRecordHeader(defineSound, 45, 4); writeUBits(defineSound, 4, 0); writeUBits(defineSound, 2, sampleRate); writeUBits(defineSound, 1, sampleSize); writeUBits(defineSound, 1, waveReader.channels - 1); writeUBits(defineSound, 4, 0); writeUBits(defineSound, 2, sampleRate); writeUBits(defineSound, 1, sampleSize); writeUBits(defineSound, 1, waveReader.channels - 1); defineSound.writeShort(0); // Write The linkage Class for (var m:int=0; m < linkageClass.length; m++) { defineSound.writeByte(linkageClass[m]); } // WRITE DEFINESOUND TAG writeRecordHeader(defineSound, 14, waveReader.bytes.length - 44 + 7); defineSound.writeShort(1); // Sound Id var compression:int=0; // only raw sound for now defineSound.writeByte((compression << 4) + (sampleRate << 2) + (sampleSize << 1) + waveReader.channels - 1); //Sound Format + Sample Rate + SampleSize + Channels
var sampleRate:int=0;
if (waveReader.sampleRate == 44100)
{
sampleRate=3;
}
else if (waveReader.sampleRate == 22050)
{
sampleRate=2;
}
else if (waveReader.sampleRate == 11025)
{
sampleRate=1;
}
// WRITE SOUNDSTREAMHEADER2 TAG
writeRecordHeader(defineSound, 45, 4);
writeUBits(defineSound, 4, 0);
writeUBits(defineSound, 2, sampleRate);
writeUBits(defineSound, 1, sampleSize);
writeUBits(defineSound, 1, waveReader.channels - 1);
writeUBits(defineSound, 4, 0);
writeUBits(defineSound, 2, sampleRate);
writeUBits(defineSound, 1, sampleSize);
writeUBits(defineSound, 1, waveReader.channels - 1);
defineSound.writeShort(0);
// Write The linkage Class
for (var m:int=0; m < linkageClass.length; m++)
{
defineSound.writeByte(linkageClass[m]);
}
// WRITE DEFINESOUND TAG
writeRecordHeader(defineSound, 14, waveReader.bytes.length - 44 + 7);
defineSound.writeShort(1); // Sound Id
var compression:int=0; // only raw sound for now
defineSound.writeByte((compression << 4) + (sampleRate << 2) + (sampleSize << 1) + waveReader.channels - 1); //Sound Format + Sample Rate + SampleSize + Channels
呵呵为什么一句Audio.BGM_Play就可以播放的wav,为什么非要用二进制流来解码?
另外,我可以告诉你根据ADOBE官方swf文件格式对SoundRate的描述:
也就是说,只能标识5.5khz、11khz、22khz、44khz的rate速率。
也就是说~当你的音频是不是5.5khz、11khz、22khz、44khz 根本无法写入SWF,也无法生成EXE- 1、flash可以做2D,还可以做3D并且不需要插件
- 你想实现什么功能就能实现什么功能。就算有这些杂七杂八的异步同步也一样可以实现我们想要的功能。
- 现在已经有几款3D的flash页游了,flash公司也说为了不跟html5正面冲击,以后flash的方向专门转向为游戏制作提供服务了。
- 2、flash可以直接编译为安卓、苹果、黑莓系统这三个平台上运行的版本,并且不需要客户额外安装flash插件,程序运行后自动布置好环境并启动。
- 3、SQLlite是一个内存型数据库,就是数据存储在内存中的数据库。不需要启动额外的服务,不需要添加额外的文件,不需要TCP连接。更新数据库就是更新内存。也就是说根本就不用客户安装什么数据库服务什么的东东,更不用说效率的问题,操作这个数据库=读写内存。这是一个[开源]的轻量级数据库,支持嵌入任何开发环境,这个数据库存活在你的软件的内存中。可以直接嵌入你的exe程序中。安卓默认支持SQLlite,大部分安卓软件使用的数据库都是SQLlite。
复制代码 1、我在给你说的IOS和RM的底层是如何实现2D图像算法与脚本交互的,并没有和你讨论具体的图像功能
2、我没有说过FLASH不能夸平台
3、window并没有默认支持的SQLite,window版本你的SQLlite部署较麻烦,即使用eclipse作为编译环境,也需要虚拟机支持,当然你想用手机做游戏我也没什么好说的。
另外,你怎么不和我扯脚本的事情了?
flash图形引擎+SQLlite内存数据库+Lua脚本+RM的IDE界面的加强版=新RM(手机开发版)
你的引擎等式还有Lua脚本呢啊,少一项就不成立了啊。
另外,我也没有和你非要争FLEX好还是不好,FLEX是针对WEB开发极其强大引擎,但是它确实不适合做单机游戏的引擎,我也对LZ说了,他到底可行不可行,你自己做做就知道了,我想有LZ想法的也不止一个人,但是却没有用FLASH作为多媒体引擎来做单机游戏开发引擎使用的例子,为什么呢?FLASH开发成本低廉,学习速度快,封装性强,但是目前也只有网页游戏和SNS社区用它来开发,为什么使命召唤、生化危机、鬼泣不使用FLASH引擎开发?因为它并不是适合,由于FLEX是针对WEB平台制作的,所以本身就没有粒子系统,3D光影追踪,雾化贴图,等高端渲染功能。手机端也是一样,高级图像渲染都是使用OpenGL渲染完成,使用NDK编码,可以将画面、图像效率优化到极致。所以为什么手机端极品飞车、地牢猎人等不适用FLASH作为游戏开发引擎呢?也一样拥有3D渲染的FLASH为什么不被选择?因为FLASH本身对手机的硬件支持也没有任何接口可以实现,比如重力感应,陀螺仪,多点触控。最后还是要说,FLASH改变了世界,几乎现在上网离不开FLASH的,但是凡事都有适合不适合的问题,就好比一只猴子,喜欢香蕉,只要给它香蕉就会开心的跳起来,但是你一直给它苹果,最后它也没跳。我相信很多人也是尝试过FLASH作为单机游戏开发引擎的,但是就和上面的例子一样,给它(单机游戏引擎)一个苹果(FLASH)发现不跳,然后就不给了,换一个香蕉试试(OpenGL或DX)咦跳了,然后就把这种事情作为解决方案保留了下来。
最后,我们只是在讨论解决方案的可行性,何必这么激动? |