�V�˃Q�[���v���O���}�{���M�v�X �܂��̖��� �@�����āA�u�L�ɂ́v�Ƃ��Ăт��������i�j
��˂��炨�̍l���ł́A�Q�[���v���O���~���O�ɕK�v�ȃe�N�j�b�N�Ƃ́A�����悻�W�O�O�ʂ�ɕ��ނ���܂��B�i�W�O�O�����ɉR�W�O�O�ł��B����܂���:p�j�@���̂����̏d�v�ȂP�Q�p�^�[�������N��N�����ĉ�����悤�Ǝv���Ă��܂��B
���e�͂ȁ[����l���Ă��܂���B�P�Q�p�^�[���̍���������܂���B�����������P�Q�����łP�Q�p�^�[�����ȁ[�Ƃ��c����܂���i�j
�v���E�A�}�₢�܂���B���e�ɑ���A���ӌ��E�����z�Ȃǂ��҂����Ă���܂��B�G���ւ̌f�ڂ����}�ł��B�Ƃ��������e�������Ă��������ȁi�j
�Ƃ肠�����A���炭�̓Q�[���v���O���~���O�ɕK�{�Ȏ��H�e�N�j�b�N���ǂ����������Ȃ�ɁA�N�������������ɉ�����悤���Ȃ��āc�i���ꂶ��_�������c�j
�֘A����(New '01/02/25)
��14�́D�R�[���o�b�N�͎g���₷�����H 2001/04/15
��P�P�͂ŏ������ʂ�AListener�N���X��mediator�p�^�[�����̂�A�R�[���o�b�N����d�g�݂͊����ł��B���Ƃ́A����Lisener��smart_ptr�Ƃ��ēn���Ă��A�����Ă��邱�Ƃ͂���܂���B�\���I�ɃC�x���g��ʒm���Ă����R�[���o�b�N�������ł��܂��B
�Ƃ��낪�A�����łf�t�h�̃{�^�����G�~�����[�g����悤�ȃ{�^���N���X������Ă݂��̂ł����A���ꂪ�܂��g���h���̂ł��B�{�^���������ꂽ���ǂ������肷�邽�߂ɁA��������Listener�N���X�����Ȃ���Ȃ�Ȃ��Ƃ����̂��A�Ȃ�Ƃ��T�������ł��B
�{�^�������ꂽ���ǂ����ׂ邽�߂����ɂȂ�ŁA�N���X�����Ƃ�����˂�[�A�݂����ȁBC++��mediator�I�ȊT�O������@�\�Ƃ��Ĕ�����Ă��Ȃ��i��Java�̓����N���X�̂悤�Ȃ��̂����������j�Ƃ����̂��A���̗��R�Ɋ܂܂�܂��B
�Ȃ�A���悻�W���I�ȃ{�^���@�\�����ׂĎ�������Listener�N���X������Ă����āA�i�{�^���N���X����āj����Listener�N���X�ɑ��āA�{�^���������ꂽ���ǂ�����₢�����������̂ł͂Ȃ����H�Ƃ����̂��v�����܂��B
����́A�g�I�h�ȃC�x���g�ʒm�i�����̃N���X���g���l�ԂɂƂ��Ắg�\���I�h�ɃC�x���g���擾���Ȃ���Ȃ�Ȃ��j�ł��B���Ȃ��Ƃ��Q�[���ł͖��t���[���`�揈�������Ă���̂����ʂł����āA���Ƃ���A��҂̂ق����g���₷���̂ł��B
�ƂȂ�ƁA���t���[���A�`�悷��悤�ȃ^�C�v�̃A�v���P�[�V�����i���P�j�ɂ����āA�O�҂̂悤�ȃC�x���g�ʒm�̎d�g�݂͂Ȃ���|���肷����Ƃ��v���Ă���̂ł��B
����Ƃ͕ʂɁAListener�N���X�ɂ���āA�A���S���Y���u���i�炵�����Ɓj���o���邱�ƂɋC�Â��ꂽ�ł��傤���H���͂ł́A��������������N���[�Y�A�b�v���Ă݂܂��B
���P�D�u���t���[���`�揈�������邩��ACPU�ғ��������āA�m�[�p�\�œ��������Ƃ��o�b�e���[�H����I�v�ƌ����ӌ����������܂��傤�B����ɂ��ẮA���C���̃X���b�h���[�v�ŁAIdle���i�������Ă��Ȃ��Ƃ��j��::WaitMessage���Ăяo���悤�ȃt���[�����[�N�ɂ����CPU�ғ����͌y�������ƍl���܂��B
��15�́D�N���X�u�� 2001/04/16
�m�x���Q�[���ŁA���b�Z�[�W��\�������ʃG�t�F�N�g�P�C�Q�C�R�C�S�C�T�D�D�Ƃ����̂�����Ƃ��܂��傤�B��ʃG�t�F�N�g�N���X���A���b�Z�[�W��\������N���X�Ɉˑ�����ƁA��ʃG�t�F�N�g��lj����悤�Ƃ��邲�ƂɁA���b�Z�[�W�\���N���X�Ɏ�����Ȃ��Ƃ����Ȃ����ƂɂȂ��āA��������̂ł��B
��ʃG�t�F�N�g�Ȃ�Ă��̂́A���̃Q�[���ŗL�̂��̂��܂܂��ł��傤���A��ʃG�t�F�N�g�̓��b�Z�[�W�\���N���X����͓Ɨ����������̂ł��B
�ƂȂ�A��ʃG�t�F�N�^�[�́A�g�N���X�u���h�ł���悤�ɂ��Ȃ���Ȃ�܂���B����́A��U�͂ł��܂����B�i����Aprototype�p�^�[���Ə����Ă܂����Aprototype�ł͂Ȃ��ł��ˁO�O�G�j�@�v����ɁAfactory��smart_ptr��n���Ă��܂��B
���̂Ƃ�factory���A��ʃG�t�F�N�^�[��ɂ��A�ЂƂp�ӂ��邩�A����Ƃ��A�G�t�F�N�g�ԍ����w�肷��A���̃G�t�F�N�^�[�̃C���X�^���X������悤��factory�i��parameterized factory�j��p�ӂ��邩�́A�ǂ���ł������Ǝv���̂ł����A�O�҂̏ꍇ�Ȃ�A
vector < smart_ptr< IEffectorFactory > > m_vEffectFactory;
���Ăȃ����o�����b�Z�[�W�\���N���X�ɗp�ӂ��āAIEffectFactory��ݒ肵�Ă��܂��B��҂Ȃ�A
smart_ptr < IEffectorFactory> m_vEffectFactory;
���ĂȊ����ŁA�K�v�ɉ����āA���b�Z�[�W�\���N���X�̃����o
vector < smart_ptr < IEffector > > m_avEffector;�@�ɑ���
m_avEffector[ nEffectLayer ] . Add ( m_vEffectFactory->CreateInstance( nEffectNo ) );
�Ƃ����悤�ɂ��Ďg���܂��B( Add�́Aauto_ptr���Ɍ�����j��I�R�s�[�̃Z�}���e�B�N�X���ƍl���Ă��������j
�ǂ�����A�f�U�C���p�^�[���Ƃ��Ă̕��ނ́A�A���S���Y���u���Ƃ������ƂŁA�����炭strategy�p�^�[���ɂȂ�܂��B�����A���̓����́A�A���S���Y���u���Ƃ������A�N���X�u���A���邢�́AFactory�u���Ƃ��������ł��ˁB
����Factory�u���͕p�o�e�N�Ȃ̂Ŋo���Ă����đ��͖����ł��傤�B
��16�́D�m�x���n�Q�[���̍�肩�� 2001/04/26
�ȂA�f�U�C���p�^�[���n�̘b���������̂ŁA�O���C�����āA��������Ŏ��H�I�Șb���������悤�Ǝv�����̂ł��B
�����ɁA�r�W���A���m�x������邱�Ƃ��l���Ă݂܂��傤�B
�e�V�[���́A�V�[���Ǘ����܂��B���[�J�[���S�A�I�[�v�j���O���͂��߂Ƃ��āA�V�i���I�\���V�[���A���[�U�[�I���V�[���A���[�h��ʁA�Z�[�u��ʁD�D�D�B�܂��A�����܂ł͗ǂ��ł��傤�B
�V�i���I�́A�V�i���I�i���o�[�ŊǗ����邱�Ƃɂ��܂��傤�B�V�i���I�i���o�[���ƂɃt�@�C����p�ӂ��܂��傤�B�t�@�C����������ƁA�V�i���I�Ǘ��������ʓ|���ۂ��ł����A������Perl�ŊȒP�ȃ}�N���ł��g��őΉ�����Ƃ��܂��傤�B
���݂̃Q�[����̃t���O�́A�Q�[���t���O�N���X���ێ����Ă���Ƃ��܂��傤�B�܂��A��ʂ̐ݒ��A��x�����V�i���I���X�L�b�v���邽�߂ɁA�����̓V�X�e���t���O�N���X���ێ����Ă���Ƃ��܂��傤�B
���̃Q�[���t���O�N���X�ƃV�X�e���t���O�́ATips1024��9�̋Z�@�ɂ���āA�ЂƂ̘A�������z��̂悤�ɂ݂Ȃ��܂��B
�����ŁA�������܂Ƃ߂āA�P���t���O�ƌĂт܂��B
���ɁA�Q�[���̃t�F�[�Y��p�ӂ��܂��B�v����ɁA���݂̃Q�[�����ԁA�i�s�x��\���p�����[�^�ł��B���ɉ��Ԃ̃V�i���I����������̂��́A�P�D���̃t�F�[�Y�J�E���^�@�D�@�Q�D�t���O�@�ɂ���Č��܂�܂��B
���ɔ�������V�[�������肷��A���S���Y���́A�����ł��B
int GetEvent( ) { �@while (true) { �@�@�@int nEvent = ���݂̃t�F�[�Y�ɍ��v����C�x���g���擾( ); �@�@�@�t�F�[�Y�����̃t�F�[�Y��( ); �@�@�@if (nEvent != ����) { �@�@�@�@�@return nEvent; �@�@�@} �@} } |
��G�c�ł����A������������Ȋ����ł��傤�B�t�F�[�Y�̌o�߂̂��������́A�Q�[���ɂ��قȂ�܂����c�B
�v���O�����Ƃ��ẮA�ȉ��̂悤�ɂȂ��Ă��܂��B�i����́A�w������n�x�̃v���O�����̈ꕔ�j
DWORD* CEventFlag::GetFlag(int nNo){ �@if (nNo<=44 || nNo>=70) { �@�@return &GetGameFlag()->GetFlag()[1000+nNo]; �@} �@return &GetSystemFlag()->GetFlag()[1300+(nNo-45)]; } // �����������`�F�b�N #define f(v) (*GetFlag(v)) int CEventFlag::IsQualified(int nSceneNo){ �@switch (nSceneNo) { �@case 14 : return f(1); �@case 18 : return f(73); �@case 19 : return f(21); �@//���� } // �����������Ƃ��̃t���O�X�V void CEventFlag::DoQualify(int nSceneNo){ �@switch (nSceneNo) { �@case 1: f(47)=1; return ; �@case 2: f(52)=1; return ; �@case 8: f(73)=1; return ; �@//���� |
���̏��������� IsQualified�@�����[�v�ŌĂяo���A���݂̃t���O���������C�x���g��T���܂��B�����āA���̃C�x���g�����s���ꂽ���Ƃɂ́ADoQualify�ɂ���āA���̃C�x���g�ɑ�������t���O���X�V���܂��B���̑��ݍ�p�ɂ���āA�Q�[�����i�s���čs���A�Ƃ����킯�ł��B
�v���O�����I�ɓ���Ƃ���͖����Ǝv���܂����A���������̂�������o���������ƁAIsQualified��DoQualify������Ƃ������z�������Ȃ������m��܂���B
�܂��A���ۂɂ́A�V�i���I�S���̐l��Excel�ō쐬���ꂽ�t���O�\��CSV�`���i�J���}���̃x�^�e�L�X�g�j�ɕϊ����āA�����Perl�ŊȒP�ȕ����u�����s�Ȃ����̂��쐬���A���case���������������Ă��܂��B�i�ʂɎ�ł��ł��\���܂���j
�e�C�x���g�̔�������t�F�[�Y�����A����CSV�`���Ńf�[�^��f���o���āA�����C�x���g�������ł́AIsQualified�ƃt�F�[�Y���`�F�b�N���Ă��܂��BIsQualified�́A�t���O�����̃C�x���g�������������������̃`�F�b�N�ɂ��āA�t�F�[�Y�͂��̂悤�ɕ������Ă������ق����Ǘ����₷���ł��B
�Ƃ���ŁAyaneSDK2nd�̌f���̂ق��ŁAsige���玿�₪�������̂ł����A
�킩��Ȃ����������ł����A�Q�[���ɑI������t��������ł��� ��˂��炨�搶�̃T���v��23�̗l�ɕʂ̃E�B���h�E�ŕ\�������� ��j�𓊂��� �@�@���R�� �I�I�����ɂ���ăV�i���I�i���e�j���ς��čs���l�ɂ�������ł��� �ǂ��������ǂ��̂��킩��Ȃ��̂ŋ����Ă��������B |
����ł��B�u�I�������o���āA����̂ǂ��炩�����[�U�[�ɑI��������v�悤�ȃV�[���́A�T���v��23�Ɠ������@�ō�邱�Ƃ��o����Ǝv���܂��B�����炭�Asige���킩��Ȃ��̂́A���������̕������Ǝv���̂ł��B
���[�U�[�̑I�������I�����ɂ���ăV�i���I�������������@�͂��������肻���ł��B
�P���D�܂��A�I�����̕\���V�[���ŁA���[�U�[���ǂ����I�����ǂ����̃t���O�r�ɏ����Ă����܂��B
�i���Ƃ��P�ڂ̑I�������I���P�C�Q�ڂȂ�Q�D�D�j
�P���D�����āAIsQualify��case�u���b�N�ŁA�t���O�r���l���ɓ��ꂽ�����������܂��B
���邢�́A
�Q���D�I�����̕\���V�[���ɂ��A�V�i���I�ԍ����[�Ă܂��B
�Q���D���̃V�i���I�ԍ��ɑ���DoQualify�ɁA�t���O�r�̒l�ɉ����āA���̃t���O�ɔ��f���鏈���������܂��B
�܂��A���낢��l����ꂻ���ł��B���̃Q�[���ɉ����āA�킩��₷�����Ȃ��̂�I�ׂΗǂ��Ǝv���܂��B
��17�́D���ׂẴQ�[���ɃV���A���C�Y�@�\����� 2001/10/07
�m�x���^�C�v�̃Q�[���ɂ���A�V���[�e�B���O�Q�[���ɂ���A�Q�[���̓r���ŁA���[�h�^�Z�[�u�������Ƃ����~���́A���[�U�[�Ȃ�ΒN�����������Ă��܂��B
�������A���̓r���̏�Ԃ�ۑ����A��������Ƃ����A������V���A���C�Y�@�\����������̂́A���\�߂�ǂ��Ȃ̂ł��B
yaneSDK2nd��CSerialize/CArchive�́A������菕�����܂��B���̃N���X�́A���������
class CHoge : public CArchive { �@�@vector<bool> aFlag; �@�@virtual OnSerialize(CSerialize& s) { �@�@�@�@s << aFlag; �@�@} } |
CArchive�N���X����h�������AOnSerialize���I�[�o�[���C�h���āA���z�X�g���[��(CSerialize)�ɕۑ����Ă��������f�[�^���� operator <<�ŏ����o���܂��B
��������A�ȍ~�A
CSerialize s; CHoge h; s << h; // �i�[ s.SetStoring(false); s << h; // ���� |
�ƁA�i�[�`�������o���܂��B
�ʔ����̂́ASetStoring�ŕ��������ɃX�C�b�`���O����As << h�Ƃ��������\�L�Ȃ̂ɁA���ꂪ�������Ӗ����邱�ƂɂȂ�A�Ƃ����_�ł��B����ɂ��ACArchive�h���N���X�́AOnSerialize����x�I�[�o�[���C�h���邾���ŁA�i�[�^�����̗�������C�ɋL�q�ł���Ƃ����̂��A���̂�����Ƃ����H�v�ł��BMFC�̂悤�ɁAar.IsStoring( )�Ŕ��肵�āA�i�[�^�����̗����̃��[�`���������Ȃ��Ƃ����Ȃ��̂́A�ʓ|�Ȃ̂ł��B
���āB����ŁA�i�[�^�������邽�߂̎d�g�݂͏o���܂����B
������炵���̂́A�|�C���^���ǂ�����ăV���A���C�Y����̂��A�Ƃ��������ł��B�|�C���^�́A�����ߒ��ɂ����Č��̒l�ɖ߂����Ƃ���ŁA���̃I�u�W�F�N�g�͂��łɏ������đ��݂��܂���B���ɖ߂������ł͕s���Ȃ̂ł��B�I�u�W�F�N�g���Đ������Ȃ���Ȃ�܂���B����āA�V���A���C�Y����Ƃ��ɁA���̃I�u�W�F�N�g��ID�I�Ȃ��̂�ۑ����Ă����A��������Ƃ��́A���̃I�u�W�F�N�g��ID����A���̃I�u�W�F�N�g�� new ����悤��factory���g�����ƂɂȂ�܂��B
���̂ւ�AJava�̃V���A���C�Y�@�\�Ɣ�r���Ę_����A�ʔ����̂ł����A����̎�|�Ƃ͊O���̂ŁA���̂ւ�͕ʂ̂Ƃ���ŏڂ��������Ƃ��āA�|�C���^�g�������Ƃ��́A���̃|�C���g���Ă���I�u�W�F�N�g�̕������Ȃ�Ƃ������I�ƊȒP�Ɍ��_���������āA��˂��炨�́A�Ƃ��ƂƓ����Ă��܂��̂ł���܂����B�O�O�G
�Q�[���S�̂́A�V�[���Ǘ��i���̍u���̑�V�́`���Q�Ƃ̂��Ɓj���Ă�����̂Ƃ��܂��B�Ƃ������ƂŁA�V�[���̊Ǘ��N���X�I�Ȃ��̂����݂���킯�ł����A�������A�V���A���C�Y�@�\����܂��B
�Ǘ��N���X�́A���ݐ����i�ێ��j���Ă���T�u�V�[���ɑ��āA���̃V�[�����V���A���C�Y����悤�ɗv�����܂��B���ꂼ��̃V�[���́ACArchive�h���N���X�Ƃ��āA�V���A���C�Y�@�\����܂��B
�Ƃ���ŁA�T�u�V�[�����I�u�W�F�N�g�Ȃ킯�ŁA��������Ƃ��͂��̃I�u�W�F�N�g���̂��p�ӂ��Ă��Ȃ���Ȃ�܂���B�܂�A�Ǘ��N���X���A�i�[����Ƃ��ɂ́A�V�[��ID���ꏏ�Ɋi�[���Ă����A��������Ƃ��́i���̊i�[���Ă������jID����ASceneFactory���g���āA�O�����Ă����I�u�W�F�N�g���A���̂��ƁA���̃T�u�V�[���ɑ��āA������v�����܂��B
����ŁA�ǂ�ȃ^�C�~���O�ł��A�r�����[�h�^�Z�[�u���\�ɂ��邽�߂̔ėp�I�ȃt���[���������܂����B
��18�́DUndo��Redo�̎��� 2001/10/09
�e�L�X�g�G�f�B�^���ŁA�ЂƂO�̏�Ԃɖ߂����Ƃ��A���h�D�A�߂����������ς�L�����Z�����邱�Ƃ����h�D�ƌ����܂��B�������������v���O�����͂ǂ̂悤�ɂȂ�̂ł��傤���H�Q�[���v���O���~���O�ɂ����Ă��A���������A�A���h�D�E���h�D�@�\���~�����ꍇ������܂��B����́A���̎������@�ɂ��čl���Ă݂܂��B
���ʁA�v���O���}�̒N���ɕ�������uUndo�ARedo�̎����ɂ́A�i�f�U�C���p�^�[���́jCommand�p�^�[�����g�����v�ƌ����邱�Ƃł��傤�B�������ACommand�p�^�[���Ŗ{�����Y��Ɏ����ł���̂��Ƃ����ƁA�����ł������C�����܂��B
������ƁA���ۂɃ}�b�v�G�f�B�^����邱�Ƃ��l���Ă݂܂��傤�B�@�\�́A�`�b�v��u���@�\�ƁA�`�b�v�������@�\�ƁA������A���h�D�^���h�D����@�\���������Ƃ��܂��傤�B�u�`�b�v��u���v�Ɓu�`�b�v�������v�́A�R�}���h�ł�����A�ȉ��̂悤��CMapEditCommand�N���X����h�������ď����Ηǂ��̂ł��傤���H
class CMapEditCommand { public: �@CMapEditCommand(CMapEdit* pvMapEdit):_pvMapEdit(pvMapEdit){} �@virtual bool execute(�p�����[�^) = 0; // ���̃R�}���h�����s �@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@// ���s�ɐ��������true �@virtual bool undo(�p�����[�^) = 0;�@�@ // undo�̂��߂̊� �@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@// ���s�ɐ��������true protected: �@CMapEdit* _pvMapEdit; }; |
�Ⴂ�܂��B�悭�l���Ă݂Ă��������B�u�`�b�v��u���v�Ƃ���������A���h�D���邽�߂ɂ́A�u�`�b�v��u���v�Ƃ����s�ׂ��s�Ȃ��O�ɁA�ǂ�ȏ�Ԃł��������܂ŐӔC�������Ė߂��Ă��K�v������܂��B�����ł́A���Ȃ킿�A�`�b�v��u���O�ɑ��݂��Ă����`�b�v�ɂ��Ăǂ����ɏ����o���Ă��Ȃ���Ȃ�܂���B�N�����̍�Ƃ�����ł��傤���H�v���ɁA�u�`�b�v��u���v�Ƃ����R�}���h�����s����A���CMapEditCommand�h���N���X�ł���CMapEditCommandPutChip�Ƃ����Ƃ������N���X���S��Ȃ���Ȃ�܂���B���̃f�[�^���ǂ�����ď����o���̂��A�Ƃ��������ł����A����͂ЂƂ܂����Ƃ܂킵�ɂ��܂��B
�܂��A����p�����[�^�Ƃ��āA�����g�����Ƃ������������߂Ă��܂����Ƃ��̗v�ł��B�ėp�I�ȃN���X�Ȃ̂�void*�ɂ���ׂ��ł��傤���H���邢�́A�e���v���[�g�ʼn����ł���̂ł��傤���H���́A�����͎v���܂���B���������߂���̂́Aconst CSerialize& �ł��iCSerialize�́A��16�͂ŏo�Ă��܂����j�B����Ȃ�A�̂��̂��A�A���h�D�E���h�D�f�[�^��ۑ�����̂ɂ�����܂��A�ǂ�ȃf�[�^�ł��낤��(CSerialize���V���A���C�Y�ł�������)�n���܂��B�]���A�f�U�C���p�^�[����Command�p�^�[���Ƃ��āA���̕����̎����������Ƃ��A�������ǂ����̂����ɕs���m�ŁA���͋^��Ɏv���Ă��܂����B
�f�U�C���p�^�[���̊��K�ɏ]���ACMapEditCommand�h���N���X�̂��Ƃ�ConcreteCommand(��ۉ����ꂽCommand)�ƌĂԂ��Ƃɂ��܂����A�P�́u�A�N�V�����v�́A���s�����R�}���h�̂h�c�i���̂h�c����A�R�}���hfactory���g���āAConcreteCommand�����܂��j�ƁAConcreteCommand::execute�ɓn�����p�����[�^�Ƃ��Ē�`�ł��܂��B
�p�����[�^��const CSerialize&�œn�����Ƃ����܂�A���[�U�[�̃A�N�V�����́Astd::vector <smart_ptr<CSerialize> >�Ƃ��Ċi�[���Ă����܂��B�ismart_ptr �ɂ��Ă���̂́Avector::push_back�Ń��T�C�Y�����������Ƃ��A�I�u�W�F�N�g�R�s�[�̃I�[�o�[�w�b�h�����炷���߁j
���ɁA�A���h�D���ǂ����邩�ł����A�u�`�b�v��u���v�Ƃ����A�N�V�����̃A���h�D��������́A�u�i���Ƃ������j�`�b�v��u���v�Ƃ����A�A�N�V�����Ȃ̂ł��B���̂悤�ɁA���鑀��̃A���h�D������A�قƂ�ǂ̏ꍇ�A�N�V�����Ȃ̂ł��B�����ŁAexecute�����s����Ƃ��ɁA�A���h�D�̂��߂̃A�N�V���������A������Ԃ����߂̋@�\��p�ӂ��Ă����Ηǂ��̂ł��B��������Aundo�Ƃ������͕s�v�ɂȂ�܂��B
�܂�ACommand�̊��N���X�͎��̂悤�Ȑv�ɂȂ�܂��B
class CMapEditCommand { public: �@CMapEditCommand(CMapEdit* pvMapEdit):_pvMapEdit(pvMapEdit){} �@virtual bool execute(const CSerialize&stream) = 0; �@�@// ���̃R�}���h�����s�B���s�ɐ��������true �@smart_ptr<CSerialize> getUndoAction( ) { retunr _vUndoAction; } �@�@//�@execute��A�A���h�D�̂��߂̃A�N�V�������擾�ł��� protected: �@CMapEdit* _pvMapEdit; �@smart_ptr<CSerialize> _vUndoAction; }; |
����ŁA���N���X�͊������܂����B�G�f�B�b�g���́A�����قǐ��������悤�ɁAstd::vector<CSerialize>�ɁA���[�U�[�̃A�N�V�����ƁA�A���h�D�̂��߂̃A�N�V�����i����getUndoAction�Ŏ擾�ł�����́j�����݂ɐς�ł����Ηǂ��킯�ł��B
�܂��A���h�D�͊ȒP�Ȃ̂ŏh��Ƃ��܂��傤�B�istack�łȂ�vector���g�����̂́A���h�D���������邽�߂Ȃ̂ł����j�@���ǁA���h�D�����Ȃ���A�R���e�i�ɑ��ė~��������́A�Ō�ɒlj�����push_back�ƁA�Ōォ����o��pop_back�����ŗǂ��̂ł��B���h�D���T�|�[�g���邽�߂ɁAvector�ł͂Ȃ��Avector���͂����e���v���[�g�N���X��p�ӂ��Ă��ǂ������m��܂���B
��19�́D�Ǘ��N���X�͉����Ǘ����Ȃ� 2001/10/10
�ȂA10��8����10��10�������X�V���Ă����肷��A��˂��炨�̃z�[���y�[�W�́A�C���^�[�l�b�g�E�̏T���W�����v�ƌĂ�Ă��܂����A�x��Ĉ����̕����X�V���Ă�����L�y�[�W�̋C�������킩��Ȃ��ł͂Ȃ��������̂���ł��B�i�Ȃ�̂�������j
�m�x���Q�[�����A�V�[���Ǘ��N���X�����ɔ������ׂ��C�x���g���A�C�x���g�����N���X�ɐq�˂�˃V�[���\�z�Ƃ����ߒ������ǂ�ƂȂ�ƁA�}�b�v�G�f�B�^�����ɔ������ׂ��R�}���h���A���[�U�[�ɐq�˂��ConcreteCommand�\�z�Ƃ�������ł�����A���́A�܂����������l���������K���ł���̂ł��B
�����Ō����C�x���g�Ƃ́A�u�V�i���I��ʂ��\�z���A�V�i���I�i���o�[�T�P�Q���Đ��v���Ƃ��A�u�G���f�B���O��ʂ��\�z���A�o�b�h�G���f�B���O��ʂ��Đ��v���Ƃ��A�������������̂��̂ł��B
�Ƃ������ƂŁA�V�[���N���X�́ACScene�̔h���N���X�ł����A���������������邽�߂̃p�����[�^�́Asmart_ptr<CSerialize>�ɂ��āA�n���Ă��Ɨǂ��Ƃ����̂́A��P�V�͂̌��_���炷��Ύ��ɓ��R�ƌ����܂��B�������Ă�邱�Ƃɂ��A�V�[���Ǘ��N���X�́A���̃Q�[���ˑ��̏���ێ����Ȃ��čς݂܂��B���Ȃ킿�A���ɍ\�z���ׂ��V�[���́A�C�x���g�N���X�ɂ���ė^�����܂����A���̍\�z�͊O���ɂ���V�[��factory���S�����܂����A���̊Ԃ̃p�����[�^��smart_ptr<CSerialize>�Ŏn�����܂�����A�V�[���Ǘ��N���X�͂��̃Q�[���ŗL�̏��������Ǘ����Ȃ��A�Ƃ������ƂɂȂ�܂��B���ꂪ�V�[���Ǘ��̐������p�ł��B
���̉�Ђł͎���Ƃ̕��S�Ƃ��āA�C���^�[�t�F�[�X�i���s�ƊE�p��t�@���[�U�[�C���^�[�t�F�[�X�̂��ƁB���Ȃ킿��ʂ܂��j�̃v���O�����S���ƁA���C���̃v���O�����S�����Ă����肵�܂��B�C���^�[�t�F�[�X�S���́A�D���Ȃ悤�ɃV�[���N���X�����܂��B�A�o�E�g�Ɍ����AOnDraw(CDrawContext*)�̂悤�ȕ`����ȊO�ɂ��ẮA�K�肹���A�D���Ȃ悤�ɍ�点�܂��B�����̂��߁A���̃N���X��CInterface�ƌĂт܂��B
���C���v���O�����S���́A����CInterface�N���X���͂����V�[���N���X��p�ӂ��܂��B���̃N���X�́ACScene�h���N���X�ł���AOnInit(const CSerialize&)�Ƃ��������������I�[�o�[���C�h���Ă���A�C�x���g�����N���X����n���ꂽ�i�C�x���g�����N���X�Ő������ꂽ�j�p�����[�^���V�[���Ǘ��N���X�����̂܂܂����ɓ�����Ƃ����`�ɂȂ�܂��BOnInit���̂Ȃ��ł́A����CSerialize�̃p�����[�^�Ɋ�Â��āACInterface�N���X�̐ݒ�n�̊��ɈϏ����Ă����܂��B
���̂悤�ɁA�C���^�[�t�F�[�X�S���ɁACScene�h���N���X�ڏ������Ȃ����R�́A�C���^�[�t�F�[�X�̃v���O����(h / cpp)���Ȃ�ׂ����C���v���O�����S����������Ȃ��čςނ悤�ɂ��邽�߂̍H�v�ł��B�܂��A���̂悤�ɂ��邱�Ƃɂ���āA���C���v���O�����S���́A�C���^�[�t�F�[�X�̃v���O�����S���̍�Ƃ�҂������āA�Q�[���t���[����уt���O�\�Ɋ�Â��A�Q�[�����쐬���Ă������Ƃ��o���܂��B
��20�́DUndo��Redo�̎������̂Q 2001/12/02
�f���̂ق��ŁA���邷�l����A
Undo,Redo���Ĉ����܂�ƌÂ��z����j�����邶��Ȃ��ł��� �����l�����List��Deque�Ŏ�������̂������̂��Ȃ��Ȃ�Ďv������ł��� �ǂ��Ȃ�ł����˂��B |
�Ƃ�����������������܂����B�m���ɂ����ł��B�Â����̂�j������̂Ȃ�ADeque�Ŏ�������ق����ǂ��ł��B���̏ꍇ�ARedo����Ƃ��́Adeque<smart_ptr<CSerialize> >::iterator �ŁA����Redo���ꂽ�A�N�V�������|�C���g����悤�ɂȂ�܂��B�i���܂��j
�ǂ��ł�������ł����A�C�e���[�^���āAC++�ł͕���++,--���I�[�o�[���[�h���Ă��邩��A���̂i�߂�ɂ́A++���āA�߂��ɂ�--����ł͂Ȃ��ł����B����p�ꂪ������ł�����I�p�ꂪ���I�I�i��˂��炨�́A�r�b�N���}�[�N����������t����ƁA�h���S���{�[���ł��߂͂ߔg���o���Ƃ����v���o���܂��B���̗p�ꂪ���I�I�̂Ƃ���ŁA��̂Ђ炩��o�Ă��邩�߂͂ߔg��z�����Ȃ���ǂ�ł��������O�O�G�j
next���邾�Ƃ��Aprev���邾�Ƃ��œ`���悤�ȋC�͂���̂ł����Anext���ē����ł͖����ł����A�u�`����v���Ă̂́A�ǂ��Ȃ��H�Ǝv���킯�ł��B
�����l����ƁA�C�e���[�^���g�C���N�������g�h����ƌĂԂق����A�܂��}�V�Ȃ悤�ȋC�����āD�D�B�ł�����������ƁA�d���̋���˂����̂���D���Ȑl����A�u�C�e���[�^�Ƃ����T�O�ɁA�C���N�������g�Ƃ����͉̂]�X����ʂ�c�v�Ƃ����˂����݂��K������܂��B��Ȃ������A�킩���Ƃ�킢�I�{�P���I�I�Ȃ߂Ƃ�̂����I�I�I�I�I�I�i����Ȃ�A�����ł��߂͂ߔg���o�Ă���j�Ƃ������Ȃ��V���C�{�[�C�i�����Ō����ĂĂ͂������Ȃ�����������j�Ȏ��́A�����A�����ł����[�A�A�ӂނӂށA�A�Ƃ����U���������Ƃ�����܂������A�ŋ߂͂��̎�̓˂����݂��������̂ŁA�uiterator��++����v�Ə����Ă܂��B����++�́Aiterator::opertor ++�̂��ƂȂ̂ŁA�˂����܂�Ă����v�ł��B�i�������Ȃ��D�D�j�@�݂Ȃ�����A�g���Ă݂Ă͂������H�i�Ƃ������Ă݂�j
���ƁA������A�ʂ̕�����Ȃ̂ł����Aconcrete command��const CSerialize&�Ƃ��ēn���Ă���͉̂����H�Ƃ�����������������܂����B�i���̐�����������������Ȃ̂ł����j
getUndoAction�ŕԂ����CSerialize�́A�R�}���h�ł��B�R�}���h�̒�`�́A�����ɏ����Ă��܂����A�R�}���h==�u�R�}���h�����̉����邽�߂̎���ID(������p�����[�^�ɂ���command factory��concrete command�����̉�����)�{����concrete command�ɓn�����߂̃p�����[�^�v�ł��B
�����concrete command�ɓn���Ă���̂́A��L�R�}���h�́A�u�R�}���h�����̉����邽�߂̎���ID�v���������̂ł��B����Ȑ����ł킩���Ă���������ł��傤���D�D�D�B
�Ƃ肠�����A����ŃA���h�D�E���h�D�͎����ł��Ă��܂��B�����͂܂����x�����܂��B
��21�́D�`��t���[�����[�N�ɂ��� 2001/12/03
���������Q�[���̐���̂��߂̃R�[�i�[�Ȃ̂ŁA����́A�`��t���[�����[�N�ɂ��ď������Ƃɂ��܂��B
�b�Ԃ̕`��t���[�������U�O�Ƃ��R�O�ɌŒ肷��̂́A���܂�Sleep�ő҂ĂΗǂ��̂ł��BIDirectDrawSurface::Flip�ȂŃ^�C�~���O�����̂͌��ꓹ�f�ł��B�i���t���b�V�����[�g��60Hz�Ƃ͌���Ȃ����߁j
�������AWindows�}�V���͒x�����̂��瑬�����̂܂ŁA���܂��܂ȃ��[�U�[�����l�����܂��B
���������ŁA�x���}�V���ŁA30FPS(FPS = Frames Per Second : �b�ԃt���[�����j���Ƃ�60FPS�o��Ɖ��肵�ăv���O�������ėǂ����̂ł��傤���H
�����͂����炭�m�[�ł��傤�B��˂��炨�́A�܂��A���܂ǂ��̃}�V���Ȃ�A16bpp���[�h�ɂ�����30FPS�͏o�邾�낤�A�Ƃ�������Ńv���O�������Ă��܂����A����ł��A���܂肢���X�^�C���Ƃ͌����������Ӗ�������܂��B
�ł́A�ǂ�����̂��ǂ��̂ł��傤���H
����ɂ́A�t���[���X�L�b�v�Ƃ����l�����������邱�Ƃł��B���������ƁA�悭�A�P�t���[���X�L�b�v����Ȃ�A�e�L�����N�^�[���Q�{�������������悤�Ɏv���l�����邩���m��܂��A�����ł͂���܂���B����Ȃ��Ƃ����Ă��܂��ƁA�{���Ȃ�ΏՓ˂���͂��̃L�����N�^�[���m���A�ʂ�ʂ��Ă��܂��܂��B
�������Ԃ̂X���߂��͕`��W�Ɏ��Ԃ��H���Ă��܂��B�����ŁA�t���[���X�L�b�v�Ƃ����̂́A�{���`�悷�ׂ���������x���Ȃ��Ă���A���̃t���[���̕`������Ȃ��ł����A�Ƃ������ƂŃX�s�[�h�A�b�v��}��܂��B
��̓I�ɂ́A�U�O�e�o�r�ŕ`�悵�����̂Ȃ�A�P�t���[���̕`�掞�Ԃ͂P�^�U�O�B�Ƃ��낪�O�t���[���`���A�Q�^�U�O�b�ȏ�o�߂��Ă���̂Ȃ�A���̃t���[�����v���C�}���T�[�t�F�[�X�֓]�����邱�Ƃ��ȗ����܂��B�{���͂��ׂĂ̕`����u���b�N�i�ȗ��j�����ق������s���x�ʂł͗ǂ��̂ł����A��������ƁA��ʏ�ɕ`�悵�ĐڐG���蓙�����Ă���ꍇ�A���܂������Ȃ��Ȃ��Ă��܂��܂��̂ŁA�����܂ł���K�v�͖����Ǝv���܂��B�Ƃ肠�����A�v���C�}���T�[�t�F�[�X�֓]�����镔�������ȗ�����A�����Ă��̏ꍇ�A����炵�������͂��ł��B
�������悭�l����Ɓu�Q�^�U�O�b�ȏ�o�߂��Ă���v�Ƃ��������ł́A����P�b�ԂɁA
�`�悵���t���[�����@�{�@�X�L�b�v�����t���[�����@���@�U�O |
�Ƃ͂Ȃ�܂���B�����Ȃ�Ȃ��ƁA�U�O�e�o�r�����肵�āi�U�O�t���[���`�悷��P�b�o�߂��Ă���Ɖ��肵�āj�v���O�������Ă���킯�ŁA�܂����̂ł��B
���̂��߂ɂ́A���������Ⴄ�T�O�����Ȃ���Ȃ�܂���B
�܂��A��P�t���[���͌o�ߎ��Ԃ����O�b�̂Ƃ���ŕ`�悵�A��Q�t���[���͂����P�^�U�O�b�C�ȉ��A�悎�t���[���́A�����i���|�P�j�^�U�O�b�̒i�K�ŕ`�悵�Ȃ���Ȃ�܂���B���܉��ɁA�悍�t���[���ڂ̕`�������Ƃ��A�o�ߎ��Ԃ��f���i���|�P�j�^�U�O�b�@�{�@�P�^�U�O�b���傫���Ȃ�A���̃t���[���͕`����X�L�b�v����悤�ɂ��܂��B
����ŁA�����Ă��̏ꍇ�͂��܂������܂��B�������A�v���C�}���T�[�t�F�[�X�֓]������̂��ȗ����Ă��邾���Ȃ̂ŁA���܂ł����Ă��`������������A�`�悪�X�L�b�v���ꑱ���A��ʂɂ͉����\������Ȃ��A�Ƃ������Ƃɂ��Ȃ肩�˂܂���B�����ŁA�o�ߎ��Ԃ��f���i���|�P�j�^�U�O�b�@�{�@�P�^�S�b���傫���̂Ȃ�A���̃t���[���͂Ƃ肠�����`�悷�邾�Ƃ��A�����������ɏ������āA�b�ԍŒ�A�S�e�o�r�i���������̂Ƃ��́A��́u�`�悵���t���[�����{�X�L�b�v�����t���[�������U�O�v�Ƃ��������͖������Ȃ��j��ۏ���悤�ɂ����ق����ǂ��ł��B
yaneSDK2nd1.54�ȍ~�ł́A���̂悤��FPS�ێ��N���X���ACFPSTimer���Ƃ��Ď��������̂ŁA����������Ă��������B
��22�́D�Q�[���ɂ�����^�X�N�Ǘ��ɂ��� 2001/12/29
�u�t�i��˂��炨�̂��Ƃˁj���Z�ɂ��A�e���A���K���Ă������ƁB
���K�f�ށF
http://www.hh.iij4u.or.jp/~peto/Games/games_top.html
����W�����AC++��p�����Q�[���^�X�N�̌��ʓI�ȃR�[�f�B���O�ɂ��čl���Ă݂邱�ƁB���ɁA�e�q�W���������^�X�N�i��F��ԂƖC��j�̂悤�Ȃ��̂̓Q�[���ŕK�{�ɂȂ��Ă��邪�A���̕��������܂��Ǘ�����i�Ǘ��ł���j�^�X�N�}�l�[�W���N���X��v���Ă݂邱�ƁB
��23�́Dreal smart pointer 2002/03/05
�u�t�i��˂��炨�̂��Ƃˁj���Z�ɂ��A�e���A���K���Ă������ƁB�i���̃R�s�y�O�O�G�j
���K�f�ށF
http://www.tomozo.ne.jp/yamazaki/download/doc_design_pattern.htm
�f�U�C���p�^�[���̃R�[�h�W�B�{��������A���������R�[�h�Ō����Ă�������ق����͂邩�ɂ킩��₷���B
http://member.nifty.ne.jp/yamazaki/doc_interface.html
C++�ɂ�����C���^�[�t�F�[�X�ɂ��Ă̏Љ�L��������܂��B
�Ƃ���ŁA���ɁAMore Effective C++�ł��s�\�ƌ��_�t�����Ă����|�����[�t�B�b�N�Ȕz������������A���A���ʂ̔z��Ɣ�z��ȒP��̃I�u�W�F�N�g���Ɉ����āA���A�͈͊O�ւ̃A�N�Z�X�ɑ��ė�O�𓊂���悤�Ȉ��S�ȃX�}�[�g�|�C���^���J��������ŁA�\�[�X���f�ڂ��Ă����܂��B��realsmartptr
�ڂ������e�͏t�ɏo���{�̌��e�Ƃ��ď����Ă���̂ŁA�����ł͂���ȏ㏑���܂�����i�j
��24�́Dclass export 2002/03/20
�u�t�i��˂��炨�̂��Ƃˁj���Z�ɂ��A�e���A���K���Ă������ƁB�i�܂��܂����̃R�s�y�O�O�G�j
DLL����factory��o�^���āAMain����A����DLL����A���̃I�u�W�F�N�g���g����悤�ɂ��邽�߂̃I�u�W�F�N�g�}�l�[�W���N���X(CoCreateInstance�Ɠ����悤�Ȃ���)������Ă݂܂����B�\�[�X���f�ڂ��Ă����܂��B��chap24
�ڂ������e�͏t�ɏo���{�̌��e�Ƃ��ď����Ă���̂ŁA�����ł͂���ȏ㏑���܂�����i�j�@���@��������̃R�s�y
��Q�S�͂܂ł̋L�����e���x�[�X�ɁA�wWindows
�v���t�F�b�V���i���Q�[���v���O���~���O�x�������܂����B
���������́A����̖{�ɏ�������Ȃ��������Ƃ�A���̖{�i�o��̂���I�j�ɏ������e�̃x�[�X�ɂ��悤�Ǝv���Ă���A�C�f�A�ł��B
��25�́D�_��̂���V���A���C�[�[�V���� 2002/12/08
����N���X���V���A���C�Y����@�\��p�ӂ����Ƃ��āA�f�[�^�����o����lj����ꂽ���炢�ŁA�O�̃V���A���C�Y�f�[�^�ƌ݊������Ȃ��Ȃ�Ƃ����̂́A��������҂ł��B
�����ŁA�f�[�^�����o�̓ǂݏ������A���O�ōs�Ȃ��ǂ����Ǝv���܂����B
CStringMap�Ƃ����A������ɂ��A�z�N���X(��yaneSDK2nd)��p�ӂ��āA�����Ƀf�[�^�����o����荞�݁A�ŏI�I�ɁACStringMap���V���A���C�Y���Ă��܂��Ƃ������@�ł��B
�i�ȉ��l�@�r�������������B��˖{�Q�ɏ����܂��i�O�O�G�j
��26�́D�}�C�N���X���b�h 2002/12/08
��Q�Q�͂ŏЉ���悤�ȃ^�X�N�x�[�X�̃Q�[���v���O�������ƁA�^�X�N�͖��t���[���Ăяo����邽�߁A�Ăяo�����^�C�v�̃v���O���~���O���f���ɂȂ��Ă��܂��܂��B�����Ƃ���Ă��Ɍ����e�r�l�i�L����ԃ}�V���j�ɂȂ�B�������݂̏�Ԃ��ǂ��Ƃ�����ȃ����o�ϐ��p�ӂ������Ȃ��˂�I�Ƃ����ӌ���������ł��傤�B
�����ŁAC++�Ń}�C�N���X���b�h���������Ă݂܂��B�}�C�N���X���b�h�Ƃ�Python�̃}�C�N���X���b�h�ł��F
http://www-6.ibm.com/jp/developerworks/linux/020809/j_l-pythrd.html
C++�Ŏ�������W��Astackless�ł͂Ȃ����O�m�ۂ���stack context�̐�ւ��ɂȂ��ł����B����ɂ��A�V�[���N���X�����ދ���FSM�ɂȂ邱�ƂȂ��v���O�����ł��܂��B�}�C�N���X���b�h�̃\�[�X�R�[�h�́A�����ByaneSDK3rd1.02�̂Ȃ��Ɋ܂܂�Ă���̂ōŐV�ł͂����炩��DL���Ă��������B
�i�ۑ�j�}�C�N���X���b�h��p���āA��Q�Q�͂Ɠ����v���O�����������āA���̈Ⴂ���������Ă݂邱�ƁB
�i�ȉ��l�@�r�������������B��˖{�Q�ɏ����܂��i�O�O�G�j
�Q�l�����F�uGame Programming Gems 2 �vpp.258-264�C������Ѓ{�[���f�W�^��,ISBN4-939007-33-2,�艿12,000+��
��27�́DC++�I�ȃ^�X�N�V�X�e�� 2003/06/15
�u�t�i��˂��炨�̂��Ƃˁj��˖{�Q�̒ǂ����ݒ��Ȃ̂ŁA�e���A���K���Ă������ƁB
��22�͂̃^�X�N�V�X�e����C++�Ŏ��������ႪyaneSDK3rd�̃T���v��10�ł���B
������Q�l�ɁA�����Ȃ�̃^�X�N�V�X�e���ɔ��W������B
���@�ڂ����͂�˖{�Q�ɁB
��28�́D�Q�[���̃��v���C���������� 2004/02/03
�ŋ߂̃Q�[���ɂ����āA���v���C���L�^���Ȃ���Ȃ�Ȃ����Ƃ͑��X���邾�낤�B
���`��t���[�����ׂẴf�[�^���V���A���C�Y���Ă��ǂ����A����ł͂��܂�ɂ��f�[�^����剻��������B
�܂��A�t���[���X�L�b�v���Ă�����ŋL�^���A�t���[���X�L�b�v���Ă�����ōČ������ꍇ�A�������Č�����邩�ɂ��Ă��q�ׂɌ������Ă����K�v������B
�L�[���݂͂̂��L�^���āA���̋L�^���ꂽ�L�[���̓f�[�^�Ɋ�Â��Č����邱�Ƃ��l����B�L�[���݂͂̂Ȃ�A�����������ʂł͂Ȃ����炾�B
�������A���̂Ƃ��A�Q�[���ɂ͕K���Č������Ȃ���Ȃ�Ȃ��B�G�̓������ɗ����I�ȗv�f����������Ă��Ă͂����Ȃ��B�����������g�������Ȃ�A�Č����̂��闐����p���āA���̗����̎�(rand seed)�����v���C�f�[�^�Ƃ��ċL�^���Ă����K�v������B
���Ƀt���[���X�L�b�v�̂��Ƃ��l���Ă������B
�P�D�`����X�L�b�v�������Ƃ��Ă��A�G�̈ړ��̓X�L�b�v���Ă��Ȃ����Ƃ�����ł���ꍇ���l����B
���Ȃ킿�A1�b���ƂɌ��߂�ꂽ�̈ړ��Ɠ��͂̃X�L�����͍s�Ȃ��Ă���B�������������Ȃ�A���͂̃X�L�������݂̂����v���C�f�[�^�Ƃ��ċL�^���Ă��������ŗǂ��B����������߂���B
�Q�D�t���[���X�L�b�v������������ƍs�Ȃ��Ă��Ȃ��v���O�����Ń��v���C�L�^���Ƃ邽�߂ɂ́A�������̃e�N�j�b�N���K�v�ƂȂ�B
���̂悤�ȃQ�[���ł́A�P�t���[�����ƂɃ^�C�}�[���Q�Ƃ��āA���̃^�C�}�[�̒l�Ɋ�Â��ēG�������肵�Ă���͂��ł���B���ɁA�����������������Ă���Ƃ��悤�B�������A�^�C�}�[�͂P�t���[���̕`�悪��������܂ł͍X�V����Ȃ����̂Ƃ���B����́AyaneSDK2nd/3rd/4th��FixTimer�N���X�����������d�l�ɂȂ��Ă���B
����FixTimer�N���X�œ�����^�C�}�[�l�����v���C�f�[�^�Ƃ��ċL�^���Ă����B���v���C�Č����ɂ́A���̃^�C�}�[�l�Ǝ��^�C�}�[�Ƃ��r���āA���^�C�}�[�̂ق�����ɐi��ł���Ε`��t���[�����X�L�b�v�A���^�C�}�[�̂ق����x��Ă���Await����悤�ɂ��ē������Ƃ�B
����Ń��v���C�L�^���ƍČ����œ������x�ŃQ�[�����i�s���邱�Ƃ͕ۏ����B�Ƃ��낪�A���͂̃X�L����������L�^���Ă������悤�ɍČ��ł���Ƃ͌���Ȃ��B����̓Q�[���̎d�l�ɂ��B�n�������ɋL�^��������Ɩc��ȗʂɂȂ�̂ŁA�G�̍��W�����V���A���C�Y�������̂�O�t���[���Ƃ̍������L�^���Ă����̂���{�ƂȂ�B
�j���L�j���L�����Q�[�F
http://d.hatena.ne.jp/yaneurao/20040128#p1
�ł��A���v���C�L�^�`�Đ����������Ă���̂ŁA�Q�l�ɂ���Ɨǂ����낤�B