OSDN Git Service

開始時に一部モーションが崩れる問題を修正
authorh2so5 <h2so5@git.sourceforge.jp>
Sun, 16 Sep 2012 19:14:27 +0000 (04:14 +0900)
committerh2so5 <h2so5@git.sourceforge.jp>
Sun, 16 Sep 2012 19:14:27 +0000 (04:14 +0900)
client/3d/FieldPlayer.cpp
client/3d/FieldPlayer.hpp
client/scene/Connect.cpp

index 450408c..fd9dac3 100644 (file)
@@ -40,6 +40,7 @@ FieldPlayer::FieldPlayer(CharacterDataProvider& data_provider, const StagePtr& s
         model_handle_(),
         stage_(stage),
         any_move_(),
+               dummy_move_count_(0),
         data_provider_(data_provider),
         camera_roty_(nullptr)
 {
@@ -117,7 +118,7 @@ void FieldPlayer::SetModel(const ModelHandle& model)
     motion.run_ = MV1GetAnimIndex(model_handle_.handle(), _T("run"));
 
     motion_player_.reset(new MotionPlayer(model_handle_.handle()));
-    motion_player_->Play(motion.stand_, false, 0, -1, FALSE);
+       dummy_move_count_ = 2;
 }
 
 void FieldPlayer::Update()
@@ -386,14 +387,22 @@ void FieldPlayer::InputFromUser()
        */
 
     int move_dir = 0;
-    if (input.GetKeyCount(InputManager::KEYBIND_FORWARD) > 0)
-    {
-        ++move_dir;
-    }
-    if (input.GetKeyCount(InputManager::KEYBIND_BACK) > 0)
-    {
-        --move_dir;
-    }
+
+       if (dummy_move_count_ > 0) {
+               dummy_move_count_--;
+               if (dummy_move_count_ == 1) {
+                       ++move_dir;
+               }
+       } else {
+               if (input.GetKeyCount(InputManager::KEYBIND_FORWARD) > 0)
+               {
+                       ++move_dir;
+               }
+               if (input.GetKeyCount(InputManager::KEYBIND_BACK) > 0)
+               {
+                       --move_dir;
+               }
+       }
 
     if(input.GetGamepadAnalogY() > 0) {
         --move_dir;
index 34a70ec..09ef07d 100644 (file)
Binary files a/client/3d/FieldPlayer.hpp and b/client/3d/FieldPlayer.hpp differ
index 8e11660..11e080a 100644 (file)
@@ -84,7 +84,8 @@ void Connect::Update()
                command_manager_->set_client(ClientUniqPtr());
                break;
        case CommandManager::STATUS_ERROR_NOSTAGE:
-               message_.set_text(_T("\83G\83\89\81[\81F\83T\81[\83o\81[\82ª\8ew\92è\82·\82é\83X\83e\81[\83W\83\82\83f\83\8b\82ð\8e\9d\82Á\82Ä\82¢\82Ü\82¹\82ñ"));
+               message_.set_text((tformat(_T("\83G\83\89\81[\81F\90Ú\91±\82·\82é\82É\82Í\83X\83e\81[\83W\83f\81[\83^\81u%s\81v\82ª\95K\97v\82Å\82·")) % 
+                       unicode::ToTString(command_manager_->stage())).str());
                command_manager_->set_client(ClientUniqPtr());
                break;
        }