Пятница, 19 Апреля 2024, 02:52

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Программирование .NET » Задержка Texture2D (XNA)
Задержка Texture2D
E][pertДата: Четверг, 20 Января 2011, 17:29 | Сообщение # 1
C#-XNA-Unity
Сейчас нет на сайте
Подскажите как поставить задержку на текстуру в XNA. Например чтоб она висела 5 секунд на екране.

Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
Tower defence in processing... For Web/iOS/Android.
Hale_32bitДата: Пятница, 21 Января 2011, 00:21 | Сообщение # 2
частый гость
Сейчас нет на сайте
Нужно в течении 5 секунд выводить текстуру на экран каждый кадр.

Короче непонятный вопрос. smile

Lord_FДата: Пятница, 21 Января 2011, 14:30 | Сообщение # 3
Любопытный Игродел
Сейчас нет на сайте
E][pert, а в чем проблема??

[quote]Ничто не истина, всё дозволено[/quote]
E][pertДата: Пятница, 21 Января 2011, 15:09 | Сообщение # 4
C#-XNA-Unity
Сейчас нет на сайте
Ну я хочу сделать заставку входа в игру. Мне нужно поставить паузу между первой текстурой и следующими.

Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
Tower defence in processing... For Web/iOS/Android.
Hale_32bitДата: Пятница, 21 Января 2011, 19:00 | Сообщение # 5
частый гость
Сейчас нет на сайте
Грубо говоря это делается вот так.

Update(GameTime gameTime)
{

switch (CurSceneNum)
{
case 0:
if (gameTime.TotalGameTime.Seconds - StartTime > Duration0)
{
CurSceneNum=1;
StartTime = gameTime.TotalGameTime.Seconds;
}
break;
case 1:
if (gameTime.TotalGameTime.Seconds - StartTime > Duration1)
{
CurSceneNum=2;
StartTime = gameTime.TotalGameTime.Seconds;
}
break;
default:
break;
}

...
}

Draw(GameTime gameTime)
{

switch (CurSceneNum)
{
case 0:
B.Draw(Texture0...);
break;
case 1:
B.Draw(Texture1...);
break;
default:
break;
}
...
}

E][pertДата: Пятница, 21 Января 2011, 19:20 | Сообщение # 6
C#-XNA-Unity
Сейчас нет на сайте
Чот не получаеться sad

Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
Tower defence in processing... For Web/iOS/Android.
nilremДата: Пятница, 21 Января 2011, 19:59 | Сообщение # 7
Просветленный разум
Сейчас нет на сайте
Quote (E||pert)
Подскажите как поставить задержку на текстуру в XNA. Например чтоб она висела 5 секунд на екране.

Проще всего, после отображения текстуры напиши System.Threading.Thread.Sleep(5000);
Только это плохой способ.


Windmill 2

WindMill 2D Game Engine
E][pertДата: Пятница, 21 Января 2011, 20:20 | Сообщение # 8
C#-XNA-Unity
Сейчас нет на сайте
nilrem, очень плохой способ wink

Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
Tower defence in processing... For Web/iOS/Android.
Hale_32bitДата: Пятница, 21 Января 2011, 20:32 | Сообщение # 9
частый гость
Сейчас нет на сайте
Неужели так сложно засечь время и выводить текстуру каждый кадр пока время не истекло.
Без этого игру не написать. Ведь в коде любой игры постоянно нужно засекать время, этот элемнтарный приём называется Дельтатайминг (если я ничего не путаю)
E][pertДата: Пятница, 21 Января 2011, 20:36 | Сообщение # 10
C#-XNA-Unity
Сейчас нет на сайте
Hale_32bit, к сожалению у меня не получаеться твоим кодом реализовать sad

Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
Tower defence in processing... For Web/iOS/Android.
Hale_32bitДата: Пятница, 21 Января 2011, 21:05 | Сообщение # 11
частый гость
Сейчас нет на сайте
Да я сам свой код не пробовал. Тут просто надо немного уметь программировать.
Засекаем время в начале StartTime = CurrentTime
Потом в игровом цикле сверяем текущее время, время начала и длительность:

if (CurrentTime - StartTime <= Duration)
{
//То что обновляется в течении времени Duration
}

E][pertДата: Суббота, 22 Января 2011, 13:22 | Сообщение # 12
C#-XNA-Unity
Сейчас нет на сайте
Hale_32bit, а как его засечь в начале?
Quote (Hale_32bit)
Засекаем время в начале StartTime = CurrentTime

вот так не получаеться

Добавлено (22.01.2011, 13:22)
---------------------------------------------
вернее засечь вроде получаеться но задержки нету


Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
Tower defence in processing... For Web/iOS/Android.
Hale_32bitДата: Суббота, 22 Января 2011, 17:41 | Сообщение # 13
частый гость
Сейчас нет на сайте
Сам сегогдня делал этот же момент, чтобы перед запуском главного меню некоторое время на экран выводился логотип. smile
Вот как можно отловить начальный момент времени:

int StartTime = 0;

Draw(GameTime gameTime)
{
if (StartTime == 0)
StartTime = gameTime.TotalGameTime.Seconds;

if(gameTime.TotalGameTime.Seconds - StartTime)
{
///TODO
}

...
}

Делается это в методе Draw т.к. 5 секунд в методе Update могут пройти до того как XNA начнёт вывод графики.

E][pertДата: Воскресенье, 23 Января 2011, 18:09 | Сообщение # 14
C#-XNA-Unity
Сейчас нет на сайте
Quote (Hale_32bit)
if(gameTime.TotalGameTime.Seconds - StartTime)

вот тут ошибочка
Error 1 Cannot implicitly convert type 'int' to 'bool'


Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
Tower defence in processing... For Web/iOS/Android.
Lord_FДата: Воскресенье, 23 Января 2011, 18:56 | Сообщение # 15
Любопытный Игродел
Сейчас нет на сайте
Нет, ну конечно не получается... Hale_32bit просто забыл добавить >n
надо было так:
...
if(gameTime.TotalGameTime.Seconds - StartTime > n) //n - количество секунд, ставь сам
...

(но, кстати говоря, он в своем коде ее не объявил)



[quote]Ничто не истина, всё дозволено[/quote]
E][pertДата: Воскресенье, 30 Января 2011, 13:37 | Сообщение # 16
C#-XNA-Unity
Сейчас нет на сайте
Задержки всеравно не видать sad

Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
Tower defence in processing... For Web/iOS/Android.
StageДата: Воскресенье, 30 Января 2011, 16:19 | Сообщение # 17
постоянный участник
Сейчас нет на сайте
Quote
вот тут ошибочка
Error 1 Cannot implicitly convert type 'int' to 'bool'

Quote
Задержки всеравно не видать

Смешно же, не понимаешь, что в if условие должно быть bool, зато пишешь игры на xna? С таким подходом ничего серьезней, чем переделывание стартер-китов не осилишь. Изучай литературу по C#, потом берись за игры.

E][pertДата: Суббота, 19 Февраля 2011, 17:58 | Сообщение # 18
C#-XNA-Unity
Сейчас нет на сайте
Stage, да я уже понял что на простеньком затупил sad

Добавлено (19.02.2011, 17:58)
---------------------------------------------
И всё же подскажите как в XNA засечь время, всем выше перечисленым не получаеться.


Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
Tower defence in processing... For Web/iOS/Android.
Форум игроделов » Программирование » Программирование .NET » Задержка Texture2D (XNA)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг