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

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

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

Регистрация: May 2012
Сообщений: 166
По умолчанию Сохранение игры: Варианты

Приветствую, занялся элементом сохранения игры... насторожило что при сохранении приходится указывать все переменные по отдельности(переменных уже больше 100, а будит еще больше). Есть ли варианты сохранения игры по проще чем:
Код AS3:
var saveGame:SharedObject = SharedObject.getLocal("FlashSave");
 
saveGame.data.heroX = Hero.hero.x;
saveGame.data.heroY = Hero.hero.y;
И соответственно загрузка:
Код AS3:
Hero.hero.x = saveGame.data.heroX;
Hero.hero.y = saveGame.data.heroY;
Если нет.. подскажите как сохранять запущенный таймер что бы потом вернутся на то же место?

Добавлено через 21 минуту
сохранить наверно можно так:
Код AS3:
saveGame.data.sk7ColDown = Hero.hero.sk7ColDown.currentCount;
с загрузкой не разобрался..
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение.

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

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
В SharedObect можно сохранять прямо весь объект Hero со всеми значениями полей, если Hero является дата-объектом а не отображаемым. Важно, что сохраняются лишь значения паблик полей и те значения приватных полей у которых есть паблик акцессоры.

Старый 08.07.2012, 14:44
Tetraeon вне форума Посмотреть профиль Отправить личное сообщение для Tetraeon Найти все сообщения от Tetraeon
  № 3  
Ответить с цитированием
Tetraeon

Регистрация: May 2012
Сообщений: 166
Судя по всему у меня Hero является отображением (MovieClip) класса Hero подкласса Warrior. А можно ли его передать в data объект перед сохранением и как?
По поводу таймера кто нибудь знает ?(выше вопрос)
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение.

Старый 08.07.2012, 14:53
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 4  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Создать в Hero метод:
Код AS3:
public function toJSON():String {
   //здесь проходим по НУЖНЫМ нам свойствам и создаем
   //строку в формате JSON и возвращаем ее 
}
Потом просто пихаем в объект нашу строку (или несколько строк):
Код AS3:
var saveGame:SharedObject = SharedObject.getLocal("FlashSave");
 
saveGame.data.heroSettings = hero.toJSON();
saveGame.data.enemySettings = enemy.toJSON();
saveGame.data.worldSettings = gameWorld.toJSON();
При загрузке просто распарсить строчку и присвоить свойствам героя/врага/мира соответствующие значения.
__________________
Я мало чего умею, но зато хорошо умею учиться...

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

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от HardCoder Посмотреть сообщение
Создать в Hero метод:
Код AS3:
public function toJSON():String {
   //здесь проходим по НУЖНЫМ нам свойствам и создаем
   //строку в формате JSON и возвращаем ее 
}
Потом просто пихаем в объект нашу строку (или несколько строк):
Код AS3:
var saveGame:SharedObject = SharedObject.getLocal("FlashSave");
 
saveGame.data.heroSettings = hero.toJSON();
saveGame.data.enemySettings = enemy.toJSON();
saveGame.data.worldSettings = gameWorld.toJSON();
При загрузке просто распарсить строчку и присвоить свойствам героя/врага/мира соответствующие значения.
тот же шарик - вид сбоку

Добавлено через 2 минуты
Цитата:
Сообщение от Tetraeon Посмотреть сообщение
Судя по всему у меня Hero является отображением (MovieClip) класса Hero подкласса Warrior. А можно ли его передать в data объект перед сохранением и как?
Вопрос архитектуры. Ваш Hero будучи отображаемым объектом должен бы иметь ссылку на дата объект ( напр. HeroData) где и брать нужные параметры, а уже дата объект можно сохранять в SharedObject...

Старый 08.07.2012, 15:13
Tetraeon вне форума Посмотреть профиль Отправить личное сообщение для Tetraeon Найти все сообщения от Tetraeon
  № 6  
Ответить с цитированием
Tetraeon

Регистрация: May 2012
Сообщений: 166
Цитата:
Сообщение от HardCoder Посмотреть сообщение
Создать в Hero метод:
Код AS3:
public function toJSON():String {
   //здесь проходим по НУЖНЫМ нам свойствам и создаем
   //строку в формате JSON и возвращаем ее 
}
Потом просто пихаем в объект нашу строку (или несколько строк):
Код AS3:
var saveGame:SharedObject = SharedObject.getLocal("FlashSave");
 
saveGame.data.heroSettings = hero.toJSON();
saveGame.data.enemySettings = enemy.toJSON();
saveGame.data.worldSettings = gameWorld.toJSON();
При загрузке просто распарсить строчку и присвоить свойствам героя/врага/мира соответствующие значения.

По сути все равно придется каждое св-во вбивать насколько я понял (хотя этот вариант получше, спасибо).
Я надеялся на вариант:
Код AS3:
saveGame.data.Hero= Hero.hero.*;
Или какой нибудь аналог сохранения самого класса, по сути что такое сохранение - это перенос всех текущих параметров переменных в отдельное место, что бы потом можно было их оттуда достать.
Неужели не придумали как сохранить все что есть везде в файл?

Как вы таймеры перематываете на нужное место?

Добавлено через 5 минут
Цитата:
Сообщение от fish_r Посмотреть сообщение
Вопрос архитектуры. Ваш Hero будучи отображаемым объектом должен бы иметь ссылку на дата объект ( напр. HeroData) где и брать нужные параметры, а уже дата объект можно сохранять в SharedObject...
Не совсем понятно как все то добро что у меня есть переделать в data объект.. попробую в нете покопаться на эту тему, спасибо за подсказку.
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение.


Последний раз редактировалось Tetraeon; 08.07.2012 в 16:32.
Старый 09.07.2012, 18:20
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 7  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Не понимаю, зачем здесь JSON.
Назовите лучше метод toObject(), и не надо будет перегонять JSON -> object, object -> JSON.

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

Регистрация: Feb 2012
Сообщений: 212
А можно ли как то сохранить ссылку на объект? Скажем, свойстве героя target находится ссылка на объект монстра.
Код AS1/AS2:
Hero.target = monsterObject;

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

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

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


 


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


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