Задержка 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 секунд выводить текстуру на экран каждый кадр. Короче непонятный вопрос.
|
|
| |
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
Сейчас нет на сайте
| Чот не получаеться
Помогаю по мере возможностей, учусь по мере сил. ©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, очень плохой способ
Помогаю по мере возможностей, учусь по мере сил. ©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, к сожалению у меня не получаеться твоим кодом реализовать
Помогаю по мере возможностей, учусь по мере сил. ©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 |
частый гость
Сейчас нет на сайте
| Сам сегогдня делал этот же момент, чтобы перед запуском главного меню некоторое время на экран выводился логотип. Вот как можно отловить начальный момент времени: 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
Сейчас нет на сайте
| Задержки всеравно не видать
Помогаю по мере возможностей, учусь по мере сил. ©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, да я уже понял что на простеньком затупил Добавлено (19.02.2011, 17:58) --------------------------------------------- И всё же подскажите как в XNA засечь время, всем выше перечисленым не получаеться.
Помогаю по мере возможностей, учусь по мере сил. ©E}{pert Tower defence in processing... For Web/iOS/Android.
|
|
| |