本文目录索引 1,求fxtz早苗连段 2,FXTZ里升龙是什么意思 3,FXTZ CH什么意思 4,如何用Directshow访问存储在内存中的资源? 5,东方非想天则各种辅助卡的作用 6,求东方非想天则的所有卡片效果 7,关于东方绯想天则卡组的问题 1,求fxtz早苗连段 小沙包表示
本文目录索引
- 1,求fxtz早苗连段
- 2,FXTZ里升龙是什么意思
- 3,FXTZ CH什么意思
- 4,如何用Directshow访问存储在内存中的资源?
- 5,东方非想天则各种辅助卡的作用
- 6,求东方非想天则的所有卡片效果
- 7,关于东方绯想天则卡组的问题
1,求fxtz早苗连段
小沙包表示,目前自己最常用的连段有:
1、2A 3A 4C 9D J2C
2、AAAA
3、版边AAAA 6A 6C
4、近版AAAA JA J2A JB
5、DC 2卡抽签/4卡客星/5卡开海
6、版边AAAA 2卡五星 J8A
7、AAA 2B (最速)623B突
8、空中JA J8A JC 66 JA J8A
附:按键及方向说明
123456789代表方向键,可以和数字键盘的位置对应,2就是下8就是上,6就是前4就是后,1就是后斜下等等
A代表普通攻击,默认键位Z
B代表弱弹幕,默认键位X
C代表强弹幕,默认键位C
D代表冲刺/飞行,默认键位A
J代表跳,J**也就是指空中动作
另,这么恶的名字居然LZ都能抢到= =
2,FXTZ里升龙是什么意思
是一类技能的俗称,从地面由下向上的攻击。通常按键都是623,往往有无敌、擦弹或者上半身无敌属性,启动快,用来反击(俗称“凹”)对手的攻击。一般硬直都非常大,打空基本都会被确反。
从动作上讲,魔理沙、灵梦、妖梦、大小姐等几个角色有最传统的升龙技能(因为升龙类技能的来源是街霸里一些角色的623升龙拳,这几个角色的623动作比较“经典”,可以说是狭义的升龙),但是也有其他角色有作用跟升龙类似的有无敌的623系技能,即使动作看上去不像(例如帕秋莉的623改绿石、铃仙的623改电眼、幽幽子的623改逆屏等等),还有咲夜的623虽然没有无敌但是是擦弹的,可以用来反击弹幕。绝大多数角色都有类似的反击性技能,这些也可以看作是广义的升龙。
3,FXTZ CH什么意思
CH就是counter,我们通称康。
指的是用自己的招数打断对手的出招产生的效果。
会有一声非常响的音效。
大致效果为对方命中硬直时间增长,在空中的话,浮空效果增强。后续追击时间增强。
并不是所有的招数都有康性能,大部分人物的大部分物理技、C系弹幕、一些必杀技有康性能,其余的即使只打断了对手的出招,也没有康的效果。
黄沙天里,所有具有康性能的技能命中对手,无论对手是否有动作,都会有康效果。
康确认对于连段的运用以及SC的连接有重要作用、
比如,UU的JA(ch) SC4卡死枪
再比如,16的2A(ch) 6A 后续。此处若是2A不康,后续的6A是接不上的,对手是可以防住。
4,如何用Directshow访问存储在内存中的资源?
Introduction (序)
这一章我们学习怎样用DX来播放声音和音乐。我们将会使用DirectX Audio来播放WAV和MIDI文件,使用DirectShow来播放MP3文件。此章我们仍然有一个简单的程序作例子,它会播放MP3的背景音乐,当用户用鼠标点击某个数字时它会播放一些音效。
DirectX Audio and DirectShow (DirectX Audio和 DirectShow)
我们已经学习过Direct3D和DirectInput了,现在,我要介绍另外两个DirectX组件:DirectX Audio和DirectShow。我们用DirectX Audio来播放WAV和MIDI文件;用DirectShow来播放媒体流,例如AVI和MP3。在此教程中,我们只学习一下用DirectShow播放MP3的方法。
Wav, Midi and Mp3 - When should I use what?
(WAV,MIDI和MP3——什么时候该用什么?)
那末,什么时候用什么格式好呢?嗯,这基本上取决于你的个人爱好。下面是这些格式的简介,过后我会说一下我的选择:
Wav files (WAV文件)
WAV是一种未经压缩的数字音频,CD音质,但是体积非常庞大。
Midi files (MIDI文件)
MIDI文件并没有保存音频记录,它实际上更像是一套演奏指令,所以,它的体积是非常小的。MIDI的音质完全取决于演奏设备(如我们的声卡),它在高端的设备上能表现出色,而在低端设备上则表现较差。
Mp3 files (MP3文件)
同WAV文件一样,MP3也是一种数字音频格式。不同的是,MP3文件是经过压缩的,而且是有损压缩,这意味着它的体积将大大地减小,而音质上将会有一些失真(实际上接近CD音质,基本听不出失真)。而且,MP3是一种媒体流,这意味着在播放它的时候不会将它整个的读入,取而代之的是分期的做部分读入。
My preference (我的选择)
你大概会选择MP3或MIDI来作背景音乐,特别是当你希望用户能从网上下载你的程序时。MP3和MIDI格式文件的体积都比较小,它们适合做长时间的背景音乐播放。而当需要播放简短的声效时,例如爆炸声等,我更趋向于使用WAV文件,品质能稍好一些。如果文件的体积不是问题的话,实际上我们可以使用WAV文件来播放所有的声音和音乐。
Include and Library files (头文件与库文件)
我们的项目需要增加以下的头文件和库文件:
o dmusici.h
o dsound.h
o dshow.h
o dsound.lib
o strmiids.lib
Setting up DirectX Audio (设置DirectX Audio)
要使用Direct Audio我们需要创建两个对象:演奏对象(Performance Object,有些资料翻译为执行对象)和加载器(Loader)。演奏对象是Direct Audio中的最高级对象,用于处理从源到合成器的数据流。加载器用于把文件(WAV或MIDI)加载到声音段以待播放。这两个对象在整个应用程序中我们每样只需要一个,所以,我们已经把它们创建为CGame的成员变量了。下面是它们的定义:
IDirectMusicPerformance8* m_pDirectAudioPerformance;
IDirectMusicLoader8* m_pDirectAudioLoader;
由于Direct Audio是一个纯COM,所以我们需要初始化COM。其实很简单,我们只需要在CGame的构造函数中调用CoInitialize函数即可:
CoInitialize(NULL);
初始化COM后,我们就可以创建上述的那两个DirectX Audio对象了。为此,我们给CGame做了一个新的函数InitialiseDirectAudio,它将会在Initialise函数中被调用。代码如下:
bool CGame::InitialiseDirectAudio(HWND hWnd)
{
LogInfo("<br>Initialise DirectAudio:");
//Create the DirectAudio performance object
if(CoCreateInstance(CLSID_DirectMusicPerformance, NULL, CLSCTX_INPROC,
IID_IDirectMusicPerformance8,
(void**) &m_pDirectAudioPerformance) != S_OK)
{
LogError("<li>Failed to create the DirectAudio perfomance object.");
return false;
}
else
{
LogInfo("<li>DirectAudio perfomance object created OK.");
}
//Create the DirectAudio loader object
if(CoCreateInstance(CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC,
IID_IDirectMusicLoader8,
(void**) &m_pDirectAudioLoader) != S_OK)
{
LogError("<li>Failed to create the DirectAudio loader object.");
return false;
}
else
{
LogInfo("<li>DirectAudio loader object created OK.");
}
//Initialise the performance object
if(FAILED(m_pDirectAudioPerformance->InitAudio(NULL, NULL, hWnd,
DMUS_APATH_SHARED_STEREOPLUSREVERB,
64, DMUS_AUDIOF_ALL, NULL)))
{
LogError("<li>Failed to initialise the DirectAudio perfomance object.");
return false;
}
else
{
LogInfo("<li>Initialised the DirectAudio perfomance object OK.");
}
//Get the our applications "sounds" directory.
CHAR strSoundPath[MAX_PATH];
GetCurrentDirectory(MAX_PATH, strSoundPath);
strcat(strSoundPath, "\\Sounds");
//Convert the path to unicode.
WCHAR wstrSoundPath[MAX_PATH];
MultiByteToWideChar(CP_ACP, 0, strSoundPath, -1, wstrSoundPath, MAX_PATH);
//Set the search directory.
if(FAILED(m_pDirectAudioLoader->SetSearchDirectory(GUID_DirectMusicAllTypes,
wstrSoundPath, FALSE)))
{
LogError("<li>Failed to set the search directory '%s'.", strSoundPath);
return false;
}
else
{
LogInfo("<li>Search directory '%s' set OK.", strSoundPath);
}
return true;
}
我们用CoCreateInstance函数创建了演奏对象和加载器,然后调用了InitAudio模块来初始化演奏对象。上面代码中给InitAudio的参数是很典型的,所以你可以沿用它(查看一下SDK中的关于InitAudio函数以及它的参数的内容以获得更多的了解)。最后,我们设置了搜索目录。搜索目录应该被设置为存放声音文件的目录,以便加载器可以正确的加载声音文件。在本例中,搜索目录被设置为“Sounds”文件夹,它应该在本例的项目文件夹当中。
A new class - CSound (一个新的类——CSound)
我们已经为使用DirectX Audio作了必要的准备工作,现在,我们就可以加载、播放声音和音乐了。为此,我们做了一个新的类CSound,下面是它的代码,稍后我会解释它是怎样工作的:
CSound::CSound()
{
m_pDirectAudioPerformance = NULL;
m_pDirectAudioLoader = NULL;
m_pSegment = NULL;
m_pGraph = NULL;
m_pMediaControl = NULL;
m_pMediaPosition = NULL;
m_enumFormat = Unknown;
LogInfo("<li>Sound created OK");
}
void CSound::InitialiseForWavMidi(IDirectMusicPerformance8* pDirectAudioPerformance, IDirectMusicLoader8* pDirectAudioLoader)
{
m_pDirectAudioPerformance = pDirectAudioPerformance;
m_pDirectAudioLoader = pDirectAudioLoader;
m_enumFormat = WavMidi;
}
void CSound::InitialiseForMP3()
{
CoCreateInstance(CLSID_FilterGraph, NULL,
CLSCTX_INPROC, IID_IGraphBuilder, (void**)&m_pGraph);
m_pGraph->QueryInterface(IID_IMediaControl, (void**)&m_pMediaControl);
m_pGraph->QueryInterface(IID_IMediaPosition, (void**)&m_pMediaPosition);
m_enumFormat = MP3;
}
CSound::~CSound()
{
Stop();
SafeRelease(m_pSegment);
SafeRelease(m_pGraph);
SafeRelease(m_pMediaControl);
SafeRelease(m_pMediaPosition);
LogInfo("<li>Sound destroyed OK");
}
bool CSound::LoadSound(const char* szSoundFileName)
{
WCHAR wstrSoundPath[MAX_PATH];
CHAR strSoundPath[MAX_PATH];
switch(m_enumFormat)
{
case MP3:
//Get the our applications "sounds" directory.
GetCurrentDirectory(MAX_PATH, strSoundPath);
strcat(strSoundPath, "\\Sounds\\");
strcat(strSoundPath, szSoundFileName);
//Convert the path to unicode.
MultiByteToWideChar(CP_ACP, 0, strSoundPath, -1,
wstrSoundPath, MAX_PATH);
m_pGraph->RenderFile(wstrSoundPath, NULL);
break;
case WavMidi:
//Convert the filename to unicode.
MultiByteToWideChar(CP_ACP, 0, szSoundFileName, -1,
wstrSoundPath, MAX_PATH);
//Load a sound
m_pDirectAudioLoader->LoadObjectFromFile(CLSID_DirectMusicSegment,
IID_IDirectMusicSegment8,
wstrSoundPath,
(void**) &m_pSegment);
m_pSegment->Download(m_pDirectAudioPerformance);
break;
default:
return false;
}
return true;
}
bool CSound::Play(DWORD dwNumOfRepeats)
{
switch(m_enumFormat)
{
case MP3:
//Make sure that we are at the start of the stream
m_pMediaPosition->put_CurrentPosition(0);
//Play mp3
m_pMediaControl->Run();
break;
case WavMidi:
//Set the number of times the sound repeats
m_pSegment->SetRepeats(dwNumOfRepeats); //To loop the sound forever, pass
//in DMUS_SEG_REPEAT_INFINITE
//Play the loaded sound
m_pDirectAudioPerformance->PlaySegmentEx(m_pSegment, NULL, NULL, 0, 0,
NULL, NULL, NULL);
break;
default:
return false;
}
return true;
}
bool CSound::Stop()
{
switch(m_enumFormat)
{
case MP3:
m_pMediaControl->Stop();
break;
case WavMidi:
//Stop the loaded sound
m_pDirectAudioPerformance->StopEx(m_pSegment, 0, 0);
break;
default:
return false;
}
return true;
}
bool CSound::IsPlaying()
{
switch(m_enumFormat)
{
case MP3:
REFTIME refPosition;
REFTIME refDuration;
m_pMediaPosition->get_CurrentPosition(&refPosition);
m_pMediaPosition->get_Duration(&refDuration);
if(refPosition < refDuration)
{
return true;
}
else
{
return false;
}
break;
case WavMidi:
if(m_pDirectAudioPerformance->IsPlaying(m_pSegment, NULL) == S_OK)
{
return true;
}
else
{
return false;
}
break;
default:
return false;
}
}
那末,怎样用CSound来播放音乐呢?这很简单。首先,创建一个CSound对象,然后根据你想播放的声音类型来调用InitialiseForWavMidi或是InitialiseForMP3,二者选其一。接着,调用LoadSound读取声音文件。最后,调用Play模块来播放声音即可。很简单,不是吗?嗯,还有两个模块:Stop模块用来停止播放;IsPlaying模块用来检测声音是否正在播放。下面介绍了各个模块是怎样工作的:
InitialiseForWavMidi
InitialiseForWavMidi模块用于初始化CSound对象以待播放WAV或MIDI文件。它的两个输入参数是我们在CGame中创建好的演奏对象和加载器的接口指针,然后这两个指针会被保存为它的成员变量以备用。我们会把CSound的格式设置为WavMidi。
InitialiseForMP3
InitialiseForMP3模块用于初始化CSound对象以待播放MP3文件,它没有输入参数。InitialiseForMP3调用CoCreateInstance函数创建了一个DirectShow过滤器图管理器对象。我们能使用CoCreateInstance是因为我们在CGame的构造函数中已经调用过CoInitialize函数了。有了过滤器图管理器对象之后,我们调用它的模块QueryInterface来创建另外两个对象:一个媒体控制对象和一个媒体定位对象。这三个对象的指针将会被保存为CSound对象的成员变量。同理,我们把CSound的格式设置为MP3;
LoadSound
初始化好CSound对象后,我们就可以调用LoadSound来读取声音文件了。LoadSound只有一个参数,就是声音文件的文件名。这里不是一个路径而是一个文件名是因为所有的声音文件都应该在我们的项目的“Sounds”目录中。
如果这个CSound对象的格式为MP3,我们首先会构造出一个完整的文件路径,然后把它转换为Unicode字符集的字符串。接着,我们只需要调用过滤器图管理器对象的RenderFile模块并构造一个用于播放指定文件的过滤器图即可。
如果这个CSound对象的格式为WavMidi,我们首先会把文件名转换成Unicode字符集的字符串。接着我们会调用LoadObjectFromFile,它会载入文件并返回一个段(segment)指针。最后,我们调用段的Download模块下载波段到演奏对象里。
现在我们已经准备好来播放声音了。
Play
当文件载入后,我们就能播放它了。Play模块唯一的可选参数(默认为0)就是重复播放次数,只在播放WAV或MIDI时有效。
如果这个CSound对象的格式为MP3,我们首先会调用媒体定位对象的put_CurrentPosition模块来确认一下我们是否在媒体流的开始处。然后,我们调用媒体控制对象的Run模块来播放MP3。
如果这个CSound对象的格式为WavMidi,我们首先会设置重复次数。然后我们调用PlaySegmentEx来播放已经载入的段。如果你想让声音永远重复,输入DMUS_SEG_REPEAT_INFINITE恒量。
Stop
这能简单地停止正在播放的声音。如果是MP3,就调用媒体控制对象的Stop模块。如果是WAV或MIDI,就调用演奏对象的StopEx模块并输入要停止的段。
IsPlaying
最后,IsPlaying模块用于检测当前是否正在播放。是就返回true,不是则返回false。如果是MP3,我们会根据当前的媒体流定位与整个媒体流的长度做对比,以得知我们是否正在播放(看是否在流的终点)。如果是WAV,我们就调用演奏对象的IsPlaying模块并输入要检测的段以测试。
Cleaning up (清理)
在Csound的析构函数中我们会停止声音的播放并释放对象。在CGame中有一个新的函数CleanUpDirectAudio代码如下:
void CGame::CleanUpDirectAudio()
{
//Stop all sounds.
m_pDirectAudioPerformance->Stop(NULL, NULL, 0, 0);
//CleanUp
m_pDirectAudioPerformance->CloseDown();
SafeRelease(m_pDirectAudioLoader);
SafeRelease(m_pDirectAudioPerformance);
LogInfo("<li>CleanUpDirectAudio finished.");
}
Here we first stop all sounds from playing (just in case), then we close down the performance object before releasing it and the loader object. Also, in the CGame deconstructor we need to call CoUninitialize to close down the COM library (shown below).
这里我们首先停止所有声音的播放,然后关闭演奏对象,释放演奏对象和加载器。而且,在CGame的析构函数中我们会调用CoUninitialize来关掉COM:
CoUninitialize();
那末现在我们能在程序中播放音乐和声音了。当程序开始时,MP3的背景音乐就会开始播放。移动鼠标并点击不同的数字我们对听到不同的声音。这里的背景MP3只是一个小片断的循环,愿意的话你可以替换成你喜欢的音乐。(译者:我把我的MP3都放了一遍爽)
Summary (摘要)
In this tutorial we learnt how to play sounds and music using two new DirectX components, DirectX Audio and DirectShow. In the next tutorial we will use all of the skills we have seen so far to create our first game: 3D Pong. This game will be simple, but will have all of the key features that you would expect from any game.
5,东方非想天则各种辅助卡的作用
灵击:恢复灵力
16的时表.时间停止约3秒..对方行动,攻击,SC卡不能..己方能移动但不能进行一切攻击
白楼剑:动作中断...瞬间取消硬直,并想前方移动一定距离(可取消) 人形:可以累积的卡...一共4次(最高等级4)..防御力永久性增加 魔法术:可累积的卡....一共4次(最高等级4)..灵力恢复速度永久性增加 蕾米的洋伞:在你前方放一个防御盾,可以抵挡弹幕,但对幽幽子的C无效,持约3秒
人魂灯:放出3个追踪性鬼魂,有攻击判定,防御每个扣0.5灵,自身被打不消失
左扇:发出一招近战技(发生判定慢),对方防御的话必破灵..如不防御的话,无伤害直接出圈
西瓜的酒:同FXT的吃卡一样.....增加卡槽
天狗的扇子:可累积的卡....一共4次(最高等级4)..移动速度永久性增加 符蚀药:进战攻击一次,成功击中,对方卡槽当前卡消失←人人都可以像兔子一样打掉别人的卡了
小町的铜钱:可无限使用...防御时可发动,消耗1格灵力,自身位置向后移动约1个身位....版边时将对手推远1个身位
19的羽衣:FXT里的反击卡
天子的剑:FXT里的天气卡
那个五角星的啥:FXT里的恢复HP卡
笨蛋的冰冻卡:在前面地面前释放冰块...对方走过来时会被弹飞...自己走过去也会被弹飞 ..效果持续2秒左右
龙星:霸体状态...能抵挡一两次物理攻击...持续2秒
啊空的棒子:可累积的卡....一共4次(最高等级4)..每一张使自机攻击力增加10%,防御力减少7%
三滴那啥水:可累积的卡,一共3次..前两次没效果...第3次发动时...无敌5秒左右
好大的一条鱼:发动2秒后...原地砸下一条大鱼....双方都会中招...一次攻击判定..伤害约600
6,求东方非想天则的所有卡片效果
绯想天:
【气质发现】发动预报中的天气,没有预报则效果不明,也能强行中止现在的天气。
【灵击】吹飞+无敌(暂时)
【防御反击】防御中Only,在攻击完之前无敌。
【魔法增幅】+2张符卡(可被打断),使用中行动自由。
【体力恢复】+一定量生命值,注意使用时自己僵直,可被打断。
【灵力恢复】灵力完全恢复,也能恢复一颗被打破(变红)的灵珠。
非想天则:
【灵击】(象征:灵梦)同绯想天。
【Magic Potion】(象征:魔理沙)同绯想天【灵力恢复】。
【Stop Watch】(象征:咲夜)停止时间(短),此时停内对方不动(若是早苗在御风则继续沿着风飞……OTL……),自己只能移动不能攻击……
【白楼剑】(象征:妖梦)强制中断自己当前动作,向前Dash。
【替身人偶】(象征:爱丽丝)+防御,可叠加4张。
【魔道书Grimoire】(象征:帕秋莉)+灵力恢复速度,可叠加4张。(话说……我咋记得小爱拿的是这本书涅……)
【阳伞】(象征:蕾米莉亚)在身前开护盾抵消普通弹(贯通系无力……)。还有一个作用……(就是用大小姐时如果卡组中有这张就能选户外场地……)
【人魂灯】(象征:幽幽子)追踪弹……自己被打也不会消失……
【左扇】(象征:八云紫)进行一次无伤害的普通打击,若对手防御则击碎一颗灵珠,若对手没防御则击倒……
【伊吹瓢】(象征:伊吹萃香)同绯想天【魔法增幅】。
【天狗团扇】(象征:清廉正直射命丸!)+地上移动速度,可叠加4张。
【符蚀药】(象征:玲仙)进行一次普通打击,击中则击破对手卡组中列在最前的一张……
【过夜的铜钱】(象征:小町)使用时不消耗此张符卡!但要耗费一颗灵珠的灵力量……让自己和对手分开一段距离,和香草的623B/C有异曲同工之妙……
【龙鱼的羽衣】(象征:衣玖)同绯想天【防御反击】。
【绯想之剑】(象征:天子)同绯想天【气质发现】。
【病气平愈守】(象征:早苗)同绯想天【体力恢复】。
【冻青蛙】(象征:⑨)在身前制造一小片冰面,踩到上面会滑倒……(无敌我判定,自己踩也一样……囧……)
【龙星】(象征:红美玲)霸体!一段时间无硬直!
【制御棒】(象征:⑥)+攻-防,可叠加4张……
【三滴的天水】(象征:青蛙子)1、2滴都没用……3滴无敌状态(虽然只有一段时间……)!,4滴又变成Level 1了……
【鲶鱼的大地震】(象征:红美玲线BOSS鲶鱼)掉落鲶鱼无差别攻击……
希望有帮助!
7,关于东方绯想天则卡组的问题
1,第一个问题你已经回答了自己了…在之前的版本里面是没有心情系统的,所以每个人物在联机对战的时候只能用一套卡片,被克制的话就泪目了…后来就有了“喜怒哀乐”四个卡组,遇到不同对手就灵活很多。
2,就是在Profile中(或者战斗准备阶段按键盘上的“C”)有“卡组构筑”一项,进入之后会看见人物选项,选好人物之后就进入改卡。在最上面写着心情的一行左右切换四个编辑的卡组;左下是卡片目录,上下选不同卡,左右切换卡片类型;按Z确定卡片后(按X就是返回),左右或者上下都可以调节持有该卡片的数量,同一张卡最多持有4张(当然,前提是已经在战斗里面收集了4张);右下是当前的卡片总数,结束编辑时不能多于或者少于20张;右上是卡片的用途说明,可以看到SC的效果和一些技能的释放键位。
红色卡片:特殊物品卡,单独使用,其中一些可以叠加,效果各异,都附有说明(日文的请自行寻找汉化包)。
灰色卡片:技能卡,单独使用,可叠加,效果是提升技能等级并立即使用技能(如果条件和灵力允许)。
战斗中不使用技能卡也是可以释放技能的,使用技能卡的话会加强或者改变技能。
技能卡的说明里面是有释放键位的(比如↓→↘射击什么的,按顺序操作就可以释放技能),释放键位相同的技能通过使用卡片可以切换,不用卡片的话使用默认技能。
同一张技能卡重复使用会增强效果,但是使用同键位的其他技能卡会中止增强效果。
因为释放技能需要特定状态(如跳跃中,防御中等)以及一定的灵力,所以很多时候使用卡片不能立即释放技能。
SC卡片:超必杀卡片,需要消耗多张卡片,具体数目在卡片上写着。使用方式和效果都在说明上面。
下一篇:没有了