On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Пост N: 3
Зарегистрирован: 22.03.09
Рейтинг: 0
ссылка на сообщение  Отправлено: 25.04.09 13:44. Заголовок: Основы для создания двух мерной игры в XNA Game Studio


Доброго дня всем!
Скажите пожалуйста какие есть способы для поворота спрайта? Если можно, то объясните по подробнее.
И как можно добиться чтобы при управлении спрайтом, он двигался в ту сторону в которую направлен?

С уважением, Виталий!

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 5 [только новые]





Пост N: 4
Зарегистрирован: 22.03.09
Рейтинг: 0
ссылка на сообщение  Отправлено: 07.05.09 14:27. Заголовок: Доброго дня всем!


Нашёл один способ поворота спрайта, но в нём не всё ещё понятно!
Скажите пожалуйста как можно регулировать скорость поворота спрайта в этом примере?

С уважением, Виталий!


namespace rotation
{

public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
KeyboardState keyboardState;

Texture2D texture;
Vector2 position;
Vector2 origin;

public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content/Texture";
}

protected override void Initialize()
{
base.Initialize();
}


protected override void LoadContent()
{

spriteBatch = new SpriteBatch(GraphicsDevice);
texture = Content.Load<Texture2D>("sprite");
Viewport viewport = graphics.GraphicsDevice.Viewport;
origin.X = texture.Width / 2;
origin.Y = texture.Height / 2;
position.X = viewport.Width / 2;
position.Y = viewport.Height / 2;
}


protected override void UnloadContent()
{

}

private float RotationAngle = 0f;
protected override void Update(GameTime gameTime)
{
keyboardState = Keyboard.GetState();
float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;

if (keyboardState.IsKeyDown(Keys.D))
{ RotationAngle += elapsed; }
if (keyboardState.IsKeyDown(Keys.A))
{ RotationAngle -= elapsed; }

base.Update(gameTime);
}


protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin();
spriteBatch.Draw(texture, position, null, Color.White, RotationAngle, origin, 1.0f, SpriteEffects.None, 0f);
spriteBatch.End();


base.Draw(gameTime);
}
}
}



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 412
Зарегистрирован: 01.11.06
Откуда: Москва
Рейтинг: 1
ссылка на сообщение  Отправлено: 08.05.09 09:05. Заголовок: Скорость поворота ре..


Скорость поворота регулируется в методе Update. Используйте вместо

float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;

следующий код

float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds * speed;

Присвойте переменной speed значение в диапазоне от 0 до 1. Чем больше значение, тем выше скорость.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 5
Зарегистрирован: 22.03.09
Рейтинг: 0
ссылка на сообщение  Отправлено: 08.05.09 09:42. Заголовок: Огромное спасибо net..


Огромное спасибо netlib!

И ещё один вопрос можно?
Как сделать чтобы при движении спрайт двигался в ту сторону, в которую направлен?
Я знаю что надо создать вектор направления и вращяь вместе с этим спрайтом и для движения складывать позицию и этот вектор.
Не подскижите ли как это зписать!
Заранее спасибо!

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 65
Зарегистрирован: 14.06.07
Откуда: РОССИЯ, Санкт-Петербург (Екатиренбург)
Рейтинг: 0
ссылка на сообщение  Отправлено: 09.05.09 10:21. Заголовок: if (timer < TIME..


if (timer < TIME_MOVE)
{
float f = timer / all_time_move;
pos = pos_begin * (1 - f) + pos_end * f;
timer += delta_time;
}
else
{
pos = pos_end;
}

Все что я говорю,кроме цитат,есть мое ИМХО. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 7
Зарегистрирован: 22.03.09
Рейтинг: 0
ссылка на сообщение  Отправлено: 09.05.09 15:39. Заголовок: Огромное спасибо, вс..


Огромное спасибо, всё работает!

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет