Я хочу нарисовать нескольких игроков на клиенте. Он отлично работает без поворотов foreach, но когда я добавляю вращение foreach, он обновляет оба игрока с вращением друг от друга вместо игрока, для которого предназначен поворот.foreach внутри foreach с 2 различными словарями
foreach (var kvp in positions)
{
foreach (var kvr in rotations)
{
// draw player
spriteBatch.Draw(texture, kvp.Value, null, Color.White,
kvr.Value, new Vector2(texture.Width/2, texture.Height/2), 1f,
SpriteEffects.None, 1f);
}
}
У каждого игрока есть уникальный идентификатор, который я храню как ключ в словарях BOTH. Есть ли способ, чтобы я мог объединить эти словари для достижения правильного результата?
Прямо сейчас позиции диктатуры содержат (long, Vector2 (x, y)), где long - уникальный идентификатор пользователя , а вращения содержат (long, float), где long - это тот же идентификатор пользователя, что и в позициях, а float - вращение.
Редактировать: Это прекрасно работает, но не обновляет вращение, поскольку оно установлено.
foreach (var kvp in positions)
{
// draw player
spriteBatch.Draw(texture, kvp.Value, null, Color.White, 1f,
new Vector2(texture.Width/2, texture.Height/2), 1f,
SpriteEffects.None, 1f);
}
Пожалуйста, отсканируйте свой код правильно, это значительно упростит чтение. –
У меня нет прямого опыта, но я слышал, что время выполнения xbox может иметь проблемы с производительностью сборки мусора, используя foreach в циклах рендеринга из итераторов. – asawyer
Извините, позвольте мне изменить его. И это только для Windows, поскольку я использую Lidgren Network. Но это нелогично. –