//Vec2 pos = Vec2{ i,j } - dirVector[_map.From[j][i]];で、移動前の位置を逆算できるよ void DrawMovableObject(Map& _map) { 省略 Vec2 dirVector[5] = { { 0, -1 },{ -1, 0 },{ 0, +1 },{ +1, 0 },{ 0, 0 } }; for (int j = 0; j < _map.stage_height; j++) { for (int i = 0; i < _map.stage_width; i++) { OBJNAME objNum = GetObjectNum({ i,j }, _map); //移動前の配列上の座標を求めて Vec2 pos = Vec2{ i,j } - dirVector[_map.From[j][i]]; //キャラクターサイズをかけて、表示座標に変換 pos = pos * CHR_SIZE; //ここから下は変更なし。 switch (objNum) { case HUMAN_ON_GOAL: case LUGG_ON_GOAL: ObjImg[objNum].draw(pos, col); break; case HUMAN: case LUGG: ObjImg[objNum].draw(pos); break; default: continue; break; } } } }