Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.02.2012, 23:48
Kerins вне форума Посмотреть профиль Отправить личное сообщение для Kerins Найти все сообщения от Kerins
  № 1  
Ответить с цитированием
Kerins

Регистрация: Feb 2012
Сообщений: 5
Cool Как реализовать паузу в игре?

Доброго времени суток!= )
Пишу игру стрелялку и столкнулся с трудностью, нужно реализовать паузу в игре типа:
"возврат в игру"
"В главное меню"
И при нажатии на "Возврат в игру",чтоб возвращалась как буд-то нивчём не бывало, т.е. если снаряд летел или враг на тебя бежал,то по возвращению из паузы всё воспроизводилось с того места на каком была нажата кнопка ПАУЗЫ.
Т.е. трудность,как сделать так чтобы всё замараживалось,а потом при возврате восстанавливалось,без полного сброса всех параметров.
Очень буду благодарен за любую помощь!

Старый 08.02.2012, 23:52
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 2  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Если обновление движения пуль и всего остального происходит по событию таймера, есть методы стоп/старт. Если же по Event.ENTER_FRAME то либо заведите переменную (var paused:Boolean), либо отписывайтесь от события а потом обратно подписывайтесь.
__________________
http://www.chessmax.ru

Старый 09.02.2012, 00:50
Kerins вне форума Посмотреть профиль Отправить личное сообщение для Kerins Найти все сообщения от Kerins
  № 3  
Ответить с цитированием
Kerins

Регистрация: Feb 2012
Сообщений: 5
я тоже думал сделать отписывание, однако если много параметров которые должны быть потом воспроизведены после паузы как нивчём не бывало,то много писать,мне показалось это не правильным, ведь должен быть правильнее и красивее вариант.
Я думал записать все переменные в массив а потом их оттуда вытягивать через for и останавливать.

Старый 09.02.2012, 01:24
redefy вне форума Посмотреть профиль Отправить личное сообщение для redefy Посетить домашнюю страницу redefy Найти все сообщения от redefy
  № 4  
Ответить с цитированием
redefy
 
Аватар для redefy

Регистрация: Mar 2011
Сообщений: 58
У вас походу как-то сделано все через опу...

У вас все обновление игры происходит где? В игровом цикле? Или в каждом классе понатыкано куча листенеров и они живут сами по себе?

Реализуйте в каждом классе в котором в каждом кадре должно что-то происходить функцию update(), а в главном классе в игровом цикле вызывайте эти функции. Заведите флаг paused, в игровом цикле обновляйте состояние объектов (update()) только если paused==false;

Собственно при паузе ставьте переменную paused в true, обновление объектов прекратится и все замрет...

Старый 09.02.2012, 19:21
Kerins вне форума Посмотреть профиль Отправить личное сообщение для Kerins Найти все сообщения от Kerins
  № 5  
Ответить с цитированием
Kerins

Регистрация: Feb 2012
Сообщений: 5
Всё в одном классе.У пули свой слушатель Event.ENTER_FRAME, у танка врага свой и есть общий слушатель,в котором все случаи касаний описаны,кроме тех случаев для которых отдельно свои Event.ENTER_FRAME.Походу можно все отдельные кинуть в общий.. и там по условию их и обрабатывать?...

Эта функция update() и будет слушателем события Event.ENTER_FRAME? и в ней отслеживать условие paused==false ?

А когда paused == true; всё будет стартовать с позиций перед нажатием "пауза"?

Старый 09.02.2012, 19:56
Monade 2 вне форума Посмотреть профиль Отправить личное сообщение для Monade 2 Найти все сообщения от Monade 2
  № 6  
Ответить с цитированием
Monade 2
 
Аватар для Monade 2

Регистрация: Apr 2011
Сообщений: 38
Цитата:
Сообщение от Kerins Посмотреть сообщение
У пули свой слушатель Event.ENTER_FRAME, у танка врага свой и есть общий слушатель,в котором все случаи касаний описаны
непонятно только, зачем куча слушателей. я в подобных играх всегда делал схему с одним энтер_фрэйм слушателем, который вызывал функции всех объектов в строго заданном порядке по их идентификаторам. и приостановить куда проще, одной строчкой кода

Старый 09.02.2012, 20:12
Kerins вне форума Посмотреть профиль Отправить личное сообщение для Kerins Найти все сообщения от Kerins
  № 7  
Ответить с цитированием
Kerins

Регистрация: Feb 2012
Сообщений: 5
Я уже исправил) просто все условия скинул в один слушатель, теперь напишу метод который будет всё замараживать и метод который отмараживать обратно.

Старый 09.02.2012, 20:37
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 8  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
У меня было так:
класс: BD - грубо говоря (хранит всю инфу о текущем состояний игры)
Класс: Logic - просчитывает изменения, раз в секунду, пол секунды, 1/30 секунды, вообще не просчитывает (нужное подчеркнуть)
__________________
Дети не должны знать о своих родителях

Старый 09.02.2012, 21:34
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 9  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
А fps в ноль слабо поставить? )

Старый 10.02.2012, 00:32
Kerins вне форума Посмотреть профиль Отправить личное сообщение для Kerins Найти все сообщения от Kerins
  № 10  
Ответить с цитированием
Kerins

Регистрация: Feb 2012
Сообщений: 5
fps в ноль?.. так ведь это наверное только для отдельного объекта, а если и пуля летящая и танк приближающийся и бэкграунд движущийся в рандоме?

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:51.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.