Я создал свою карту плитки и свой плеер с движением.Tilemap Index за пределами столкновений
Я сейчас пытаюсь создать столкновение, и я чувствую, что нахожусь на правильном пути.
Вот как я создал карту.
List<Texture2D> tileTextures = new List<Texture2D>();
int tileWidth = 60;
int tileHeight = 60;
public int[,] Map = new int[,]
{
{2,2,2,2,2,2,2,2,2,2},
{2,2,2,2,1,2,2,2,2,2},
{2,2,2,2,2,2,2,2,2,2},
{2,2,2,2,2,2,2,2,2,2},
};
public void Draw(SpriteBatch spriteBatch)
{
int tileMapWidth = Map.GetLength(1);
int tileMapHeight = Map.GetLength(0);
for (int x = 0; x < tileMapWidth; x++)
{
for (int y = 0; y < tileMapHeight; y++)
{
int textureIndex = Map[y, x];
Texture2D texture = tileTextures[textureIndex];
spriteBatch.Draw(
texture,
source = new Rectangle(x *myTile.Width,
y * myTile.Height,
tileWidth,
tileHeight),
Color.White);
}
}
}
Я проверка 2d COORDS массива с этим условием и проверять, если конкретная плитка там, где я могу затем установить мое предыдущее место, если это правда.
В настоящее время я тестирую на 1 плиточном атме.
public void Update(GameTime gameTime)
{
prevPosition = position;
input(gameTime);
if(tiles.Map[(int)playerPosition.X/60,(int)playerPosition.Y/60] == 1)
{
position = prevPosition;
}
}
Однако моя позиция игрока продолжает выходить из индекса пределы 2D массива и я полагаю, что нужно масштабировать его вниз так, что он останавливает это, я попытался разделив играть COORDS по ширине но это не сработало.
Если кто-то может помочь мне с правильным масштабированием, я был бы очень благодарен.
Вы проверили, какие ценности вы получаете, когда вы попытаетесь это сделать? Кроме того, ваша карта не 60x60, это 4x10, что может вызвать проблемы, когда вы пытаетесь разместить там своего игрока. –
Нет, я не проверял. Я совершенно новичок в этом и не знаю, как проверить. Я также попытался делить на 10 и 4, и я получаю ту же проблему. Есть идеи? – Spoingen
выполните некоторые поисковые запросы и узнайте, как использовать отладчик для визуальной студии и непосредственного окна. Многие разработчики программного обеспечения пытаются понять, почему что-то неожиданное –