У меня есть игра на основе плитки. Каждая текстура плитки загружается, а затем я рисую каждый рядом друг с другом, образуя непрерывный фон. Я действительно следовал этому руководству для xml-файлов.XNA - Рисование увеличенных 2D спрайтов
http://www.xnadevelopment.com/tutorials/looksleveltome/looksleveltome.shtml
Источники текстуры являются 50x50.
Тем не менее, он работает только его масштаб 1 (или ниже), если масштаб больше
Результаты: Нормальный размер (50 пикселей и масштаб 1) http://imageshack.us/photo/my-images/525/smallzp.jpg/
большего размера (Увеличенный или 100 пикселей в xml-файле) http://imageshack.us/photo/my-images/577/largeki.jpg/
Мы можем видеть, что между плитами существуют линии, которые не находятся в текстуре. Это на самом деле не так плохо, но в моей игре набора фишек, это то, что он делает: http://imageshack.us/photo/my-images/687/zoomedsize.png/
Тот же эффект присутствует ли увеличение I размер плитки в файле XML, изменить масштаб при рисовании или использовать мою камеру масштабирования.
//zoom code
public Matrix GetTransformation()
{
return
Matrix.CreateTranslation(new Vector3(-_pos.X, -_pos.Y, 0)) *
Matrix.CreateRotationZ(Rotation) *
Matrix.CreateScale(new Vector3(Zoom, Zoom, 1)) *
Matrix.CreateTranslation(new Vector3(_device.Viewport.Width * 0.5f, _device.Viewport.Height * 0.5f, 0));
}
//draw
_spriteBatch.Begin(SpriteSortMode.Immediate,
BlendState.AlphaBlend, null, null, null, null,
_camera.GetTransformation());
//for each tile
theSpriteBatch.Draw(mSpriteTexture, Position, Source,
Color.Lerp(Color.White, Color.Transparent, mAlphaValue),
mRotation, new Vector2(mSource.Width/2, mSource.Height/2),
Scale, SpriteEffects.None, mDepth);
Есть ли причина для этого? Способ исправить его, чтобы иметь непрерывную текстуру при увеличении?
Это гений, он работает! Благодаря! – Amaranth