游戏开发论坛

 找回密码
 立即注册
搜索
楼主: fsfool

mir3 源代码研究

[复制链接]

4

主题

106

帖子

115

积分

注册会员

Rank: 2

积分
115
 楼主| 发表于 2007-2-6 15:26:00 | 显示全部楼层

第二十四讲:公布本人开发的一段核心代码

1、不论是2D还是3D模型,最终计算机屏幕上是2D显示,这个问题没有意义,重要的是理解D3D场景和流水线上的矩阵转换,粗略的说,mir3基本上使用的是DD和D3D中的2D编程技术,很难说是什么2D还是3D模型。
2、为回报论友的拥戴,这里公布本人开发的一段核心代码,应该对解决mir3中的AVI片头动画的API编程问题有关键的提示!
ICINFO icinfo_in,icinfo_out;
HIC              hic = NULL;
ZeroMemory(&icinfo_in,sizeof(BITMAPINFOHEADER));
ZeroMemory(&icinfo_out,sizeof(BITMAPINFOHEADER));
icinfo_in.fccType = m_StreamInfo.fccType;//ICTYPE_VIDEO输入流的类型,
//十进制 1935960438 是16进制的73646976,是网络字节顺序的'v' 'i' 'd' 's'
icinfo_in.fccHandler = m_InputFormat->biCompression;        //avi文件压缩类型,输入

int i;

int n = ICInfo(icinfo_in.fccType, 0, &icinfo_in);

//寻找系统安装的能将m_InputFormat格式解压为m_TargetFormat格式的codeco。
//按i递增枚举系统所有的fccType类型的压缩解压器索引,获取其信息。
//注意ICInfo在这种情况下返回用于指定类型fccType的codeco的数量。
for (i=0; ICInfo(icinfo_in.fccType, i, &icinfo_in); i++)
{
//获取该号码的CODECO柄,返回0失败,i递增枚举系统下一个CODECO号。
    hic = ICOpen(icinfo_in.fccType, icinfo_in.fccHandler, ICMODE_QUERY);
    if (hic)
    {
        // Skip this compressor if it can't handle the format.
                //icinfo_in.fccType == ICTYPE_VIDEO && m_InputFormat != NULL 是必须的,
                //ICDecompressQuery(hic, m_InputFormat, NULL) != ICERR_OK
                //说明这个i号码的压缩器不支持这种输入格式,就关闭该压缩器测试下一个。
        if (icinfo_in.fccType == ICTYPE_VIDEO && m_InputFormat != NULL &&
            ICDecompressQuery(hic, m_InputFormat, (LPBITMAPINFOHEADER)m_TargetFormat) != ICERR_OK)
        {
            ICClose(hic);
            continue;
        }

        // Find out the compressor name.
                //找出这个压缩器的名字
                //从icinfo_out.szName里可以看到压缩解压器驱动程序的名字MS-RLE
                //从icinfo_out.szDriverl里可以看到压缩解压器驱动程序长名字:C:\WINDOWS\system32\srme32.dll
                //接下来应该安装这个驱动程序才能正常工作。
        ICGetInfo(hic, &icinfo_out, sizeof(icinfo_out));
                ICClose(hic);
        //        break;        //找到支持这种格式的压缩器应该退出,如果没有这一句,找到的是最新的CODECO
    } //if (hic)
} //for

6

主题

27

帖子

33

积分

注册会员

Rank: 2

积分
33
发表于 2007-2-6 17:20:00 | 显示全部楼层

Re:mir3 源代码研究

什么年代了还DDraw?

4

主题

106

帖子

115

积分

注册会员

Rank: 2

积分
115
 楼主| 发表于 2007-2-6 19:15:00 | 显示全部楼层

第二十五讲:我们总是可以使用DD的

实在的告诉你,我们总是可以使用DD的,这在进化论上称为著名的“勿为近利丧祖德”定理,何况MIR3源码大量使用DD、D3D混合编程,这在速度上有优势!那么多的优秀有效的DD代码,我们拿来用用总可以吧?

3

主题

26

帖子

26

积分

注册会员

Rank: 2

积分
26
发表于 2007-2-15 02:15:00 | 显示全部楼层

Re:mir3 源代码研究

fsfool大哥
你的话是比较狂
但确实有技术
我相信技术
我是一个对游戏开发有着你想象不到的热情的大学生
如你所言  国内的书籍确实都是垃圾
我从来没在那些书上学到什么
遗憾的是英语却并未与我的努力明显的成正比
我很希望有人能指点我一番   做一个完整的RPG游戏是我在计算机领域最大的梦想
我一定要完成它

我的QQ是50181976 希望您能加我
或者我加你QQ也行
我有许多不懂的地方想向您请教

0

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
QQ
发表于 2007-2-23 18:32:00 | 显示全部楼层

Re:mir3 源代码研究

一点也看不懂

15

主题

368

帖子

406

积分

中级会员

Rank: 3Rank: 3

积分
406
发表于 2007-2-26 01:22:00 | 显示全部楼层

Re:mir3 源代码研究

太长。看不下去。

4

主题

106

帖子

115

积分

注册会员

Rank: 2

积分
115
 楼主| 发表于 2007-3-10 17:22:00 | 显示全部楼层

第二十六讲: 引起黑屏问题的解决方案之一

为让论友解决编译Mir2ei黑屏的问题,我再公布一段SQL代码,你要小心细看了,这不是Mir2ei中自带的SQL代码,是2003年的,注意微妙的差别,这就是引起黑屏问题的一个重要的原因!
/* **************************************************************************
       
        Create Database for Legend of Mir 3

        All written by fsfool.your's orZ
        Copyright (C) 2003 Wemade Entertainment. All rights reserved.

   *************************************************************************** */

USE LEGENDOFMIR3
GO

DROP TABLE TBL_CHARACTER
GO

/*
        User Character Table
*/

CREATE TABLE TBL_CHARACTER
(
        FLD_LOGINID                CHAR(10)                NOT NULL,
        FLD_CHARNAME                CHAR(20)                NOT NULL,

        FLD_JOB                        CHAR(1)                        NOT NULL,
        FLD_GENDER                CHAR(1)                        NOT NULL,
        FLD_ISADMIN                CHAR(1)                        NOT NULL,
        FLD_LEVEL                TINYINT                        NOT NULL,
       
        FLD_DIRECTION                INT                        NOT NULL,
        FLD_CX                        INT                        NOT NULL,
        FLD_CY                        INT                        NOT NULL,
        FLD_ATTACKMODE                INT                        NOT NULL,
        FLD_HAIR                INT                        NOT NULL,
        FLD_EXP                        INT                        NOT NULL,
        FLD_MAPNAME                CHAR(16)                NOT NULL,
       
        FLD_GOLD                INT                        NOT NULL,
       
        FLD_DRESS_ID                CHAR(11)                NOT NULL,
        FLD_WEAPON_ID                CHAR(11)                NOT NULL,
        FLD_LEFTHAND_ID                CHAR(11)                NOT NULL,
        FLD_RIGHTHAND_ID        CHAR(11)                NOT NULL,
        FLD_HELMET_ID                CHAR(11)                NOT NULL,
        FLD_NECKLACE_ID                CHAR(11)                NOT NULL,
        FLD_ARMRINGL_ID                CHAR(11)                NOT NULL,
        FLD_ARMRINGR_ID                CHAR (11)                NOT NULL,
        FLD_RINGL_ID                CHAR(11)                NOT NULL,
        FLD_RINGR_ID                CHAR(11)                NOT NULL,
)
GO

ALTER TABLE TBL_CHARACTER ADD CONSTRAINT PK_CHARACTER  PRIMARY KEY (FLD_LOGINID, FLD_CHARNAME)
GO

多说一句:客户机进入游戏黑屏我发现有21处是由SQL数据库中的表域引起的,或者导致登陆服务器访问出界,或者由于缺少某个域而引起代码不能正常运行。

75

主题

385

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
发表于 2007-3-10 20:53:00 | 显示全部楼层

Re:mir3 源代码研究

very good 我在看,请继续啊!!!!!!!!!!!!

75

主题

385

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
发表于 2007-3-11 09:40:00 | 显示全部楼层

Re: mir3 源代码研究

能把Interfacec2.wil放上来么?????????

4

主题

106

帖子

115

积分

注册会员

Rank: 2

积分
115
 楼主| 发表于 2007-3-14 11:19:00 | 显示全部楼层

第二十七讲:如果想要深刻的理解程序设计的精髓,你们

科学家惊爆宇宙秘密:宇宙其实有两个!!!

    美英几位物理学家日前提出的关于宇宙起源的新学说一鸣惊人:在“五维空间”中存在我们的宇宙和另外一个“隐藏”的宇宙。这一理论立刻引起宇宙学家的普遍关注。
  
    中国科学院北京天文台原台长李启斌教授昨天从新闻媒体上看到这一消息后,马上登录美国普林斯顿大学物理系网站查找到相关论文。经过仔细阅读之后,李教授认为,这一学说将为宇宙起源的研究开创一个新的局面,因此受到科学界的普遍关注是必然的。

    李教授说,由于被多年来不断发现的实际天文观察证据所支持,“宇宙大爆炸”学说如今已被科学界普遍接受。目前大爆炸发生1秒之后的宇宙膨胀历史都符合这一学说,但是如果追溯到150亿年之前宇宙年龄为10的负35次方秒的时候,宇宙应该被压缩到一个直径3毫米的区域中,但是在这么早的时候,速度最快的光线只能行进大约10的负25次方厘米。因此这一时间段宇宙究竟发生了什么人类一直不得而知。

     李教授认为,新理论不仅解释了这一问题,而且运用了物理学的新理论“超弦”,这些都是开创性的。此前“宇宙大爆炸”理论运用的是爱因斯坦的量子理论。


    新理论是由美国普林斯顿大学、宾夕法尼亚大学和英国剑桥大学的物理学家们共同提出的。他们认为,我们的宇宙和一个“隐藏的”宇宙共同“镶嵌”在“五维空间”中。在我们的宇宙早期,这两个宇宙发生了一次相撞事故,相撞产生的能量生成了我们宇宙中的物质和能量。

    有趣的是,当有人提问,如果这一学说是正确的,那么会不会有另外一个宇宙从“五维空间”中出来将我们毁灭?提出这一学说的普林斯顿大学天文物理学家斯坦哈特教授回答说,这是可能的。“过程总是会重复它们自己”。

    李启斌教授说,在人类不断寻找的物质世界各种规律中,宇宙的起源将是其中的提纲挈领。当他给中小学生作报告的时候,最常被提到的6个问题中排在第二位的就是宇宙的起源,仅次于“外星人”。这一难题的最终破解不仅有科学意义,还有哲学意义.

    有科学家坦言:当物理学进入高能物理和相关宇宙时间与空间的前沿研究时,科学与幻想的界限也就开始模糊了。

众人:宇宙就是这样的?




fsfool:开始时,那存在的就是过去所有的一切,而过去没有任何其他东西。但所有的存在并不能了解自己,因为所有存在的就是过去所有的一切,而过去没有任何其他东西。所以,所有的存在……过去不存在。在没有其他东西时,所有的存在,就是不存在。

众人: 这就是创世纪以来神秘主义者所说的伟大的“存在与不存在”论。

fsfool:    现在,所有的存在已经知道,它是过去所有的一切——但这是有不够的,因为它只能通过概念而不是通过体验了解它的神奇。但体验自己是它所渴望的,因为它想了解成为那样神奇会是怎样的感觉。但这是不可能的,因为“神奇”这个词是个相对的词。所有“存在的”无法了解神奇会是怎样一种感觉,除非“不存在的”展现出来。如果没有不存在,所谓存在就不存在。

    你们明白这一点吗?

众人:我们觉得是的。请继续讲。

fsool:   好。

    所有的存在了解的一件事情是,过去没有其他东西,所以,它不能并将永远无法从自己之外的一个参照点来了解自己。不存在这样一个点。只存在一个参照点,这就是其内部惟一的位置。“它存在——不存在”。“我存在——不存在”。

    每件事物都想通过体验了解自己。

    这种能量——这种纯粹的、看不见、听不到、观察不到、因之任何其他人都不了解的能量,要体验自己过去是多么神奇。为做到这一点,它认识到,需要有一个内在的参照点。

    它非常正确地认识到,它自己任何一部分将少于全部,这样,如果把它自己简单地分为若干部分,少于全部的每一部分,都可以看到它自己的其他部分,看到神奇。

    所以,“所有的存在”将自己分割,在某一光荣的时刻,变成了此与彼。此与彼就这样首次存在了,分开了。二者同时存在。二者同时不存在。

    这样,突然出现了三个要素:这里,那里,既非这里又非那里——为了这里和那里的存在,它必须存在。

    无物拥有万物。非空间包含着空间。整体包含着部分。

   众人互问: 你理解这一点吗?

    众人互问:你听得懂这一点吗?


众人中的佼佼者:我觉得是。不管相信与否,先生讲得很清楚,我觉得我正在理解这一点。

众人中的佼佼者:请先生继续往下讲。
fsfool:这一拥有任何事物的无物,就是一些人所称的上帝。但这也是不准确的,因为这意味着有些事物并不是上帝,也就是说,任何事物不是无物。但我是所有事物,包括看得见和看不见的所有事物 ,所以,按照东方对上帝神秘的定义,把我描述成大的看不见的神、无物、或者中间的空间,比西方式的把上帝描述为看得见的一切,并不见得准确。有些人认为上帝既是所有的存在又是所有的不存在,他们的理解是对的。

    现在,在创造出“这里”和“那里”的过程中,上帝使自己能够了解自己。在内在的爆炸这一伟大时刻,上帝创造了相对性——这是上帝曾经给自己的最大礼物。这样,关系就成了上帝曾经给你的最大礼物,后面我们将详细探讨这一点。

    从无物这样产生万物,这一精神事件与科学家所说的大爆炸理论恰巧完全相吻合。
    鉴于所有的要素向前奔跑,时间就被创造出来了,因为一个事物开始在此处 ,后来在彼处,从此处去彼处的时间是可以测量的。

    就像看得见的事物的各个部分开始确定自己——彼此“相对”,所以看不见的部分也是这样。

    上帝知道,爱如要存在——如要了解自己是纯粹的爱,它的对立面也要存在。所以,上帝自动创造了另一极——爱的绝对的对立面——任何不是爱的事物——现在称之为恐惧。在存在恐惧的时候,爱才能作为一种能被体验的事物而存在。

    这就是在爱和它的对立面之间的二元论的创造,人们在各种宗教中把爱的对立面称为幽灵的诞生,亚当的堕落,撒旦的反叛,等等。

    就像你把纯粹的爱人格化,称作上帝一样,你也把恐惧人格化,称为魔鬼。
    对这一事件,世界上有些人建立了相当精细的教义,补充了一些天使般的战士和残忍的士兵、善与恶、光明与黑暗的力量进行战斗和战争的场景。

    这一理论是人类早期理解世界,并以一种人们能够理解的方式告诉其他人的一种尝试,这是人类的灵魂深深了解但人不能想象的宇宙事件。

    通过把宇宙变成分开的自我的体现,上帝从纯粹的能量创造了现在存在的一切,包括看得见和看不见的一切。

    换句话说,不仅物质宇宙是这样创造的,而且精神宇宙也是这样创造的。构成“我是/或不是”这一关系式的上帝的第二部分,也爆炸成为无限的比整体小的单元。这些能量单元,你们称之为精灵。

    在你们一些宗教理论里是这样说的:“圣父”有许多精灵孩子。用人类生活中生命倍增的体验做这种类比,这好像是大众能够理解为什么在“天国”里突然出现或存在数不清的精灵的惟一方法。

    在这方面,你们这些神秘的故事离最终现实并太远,因为这些构成我的整体的数不清的精灵,在宇宙的意义上,是我的子孙。

   我把自己分开的神圣目的是,创造出许多自我的部分,这样我就能够通过体验认识我自己。对创造者来说,只有一种方式能够使他通过体验认识自我,那就是创造。所以,对我这些数不清的部分(我的精灵孩子),我给予了他们与我相同的创造能力。

    你们的宗教说,你是按照“上帝的形象和相似”创造的,他们所说的就是这个意思。这并不意味着,像有的人说的那样,我们的身体看起来相似(虽然上帝能够为了某个特定目的选择某种身体形象)。它意味着我们的本质是相同的。我们都是用同样的材料作成的。我们是同样的材料!有同样的性质和能力,包括用稀薄的空气创造物质现实的能力。

    我创造你——我的精神后代,目的在于使我了解我是上帝。除了通过你,我没有其他方法来这样做。所以,可以说(已经说过很多次),我对你的目的是,你应该像我一样了解你自己。

    这好像简单得令人吃惊,但它变得很复杂——因为只有一种方式你能了解像我,那就是你得首先了解你自己不是我。
众人中的佼佼者:先生,我开始觉悟到心跳了!

fsfool:众人中那能感觉到心跳的,跟着我,努力跟上我,因为我即将引领你们的灵魂穿越地狱,你们准备好了吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-25 05:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表