Понедельник, 23 Декабря 2024, 00:02

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Сохранение инвентаря при переходе на другой уровень.
ForgotPasswordДата: Суббота, 03 Августа 2013, 22:28 | Сообщение # 1
частый гость
Сейчас нет на сайте
Хотелось бы узнать как сделать сохранение инвентаря при переходе на другой уровень, предположим примерно вот такого инвентаря:
inventory - Copy

И можно ли сделать сохранение более защищённым, т.е. не через INI, а массив как тут:
Ishodnik
??
Просто если предположим в Ishodnik.cap - добавить 2-ой спрайт героя(а именно его координаты Hero.X и Hero.Y), что сохраняется в массиве Array, то естественно сохраняется один герой. Мне же нужно получается вводить координаты Item, но история с одним экземпляром спрайта повторяется... Также ведь нужно запоминать ещё и анимацию этого Item'a -выходит так...? Так вот как сделать чтобы сохранялись все взятые(которые именно взятые предметы на уровне) и при переходе на след. они сохранялись и на 2-ом уже уровне(так сказать локации) к ним прибавлялись другие и если вернуться снова в прошлый уровень (1-ую локацию), то там уже те предметы что уже были подобраны (уже как бы уничтожены, а остальные мы так же можем подобрать)...
Думаю вопрос понятен.

Ах да, извиняюсь, в пример вопроса взяты чужие исходники.
Прошу помочь наглядным исходником в виде примера, если не сложно.


Сообщение отредактировал ForgotPassword - Суббота, 03 Августа 2013, 22:43
FxYДата: Воскресенье, 04 Августа 2013, 00:20 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Может стоить начать с чего то простого?
Nick_RimerДата: Воскресенье, 04 Августа 2013, 02:00 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
ForgotPassword, сделай объект Array глобальным.
Вкладка свойств Common, ставишь галочку Global.
это будет означать, что при переходе между layout'ами Array не будет удалён, следовательно то, что в нём было, сохранится и далее.
а вопрос сохранения/загрузки массива решается методами Array -> Save to file/Load from file


- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Воскресенье, 04 Августа 2013, 02:01
ForgotPasswordДата: Воскресенье, 04 Августа 2013, 15:17 | Сообщение # 4
частый гость
Сейчас нет на сайте
FxY, вопрос вроде не такой уж и тяжёлый стоит. Может не стоит кидать понты? Лучше бы помог с поставленным вопросом... А так как ты написал, каждый может ответить...
Nick_Rimer, огромное спасибо, есть добрые, отзывчивые люди... Как я и предполагал, не так уж много возни с переходами... Ну точно, всего то надо было глобальным сделать объект Array...
Также щяс сделал глобальными такие объекты как Patrons-текстовое поле для хранения кол-ва патронов и объекты nav и inventory и как вы сказали объект Array - следовательно со второго уровня я их удалил(ведь они там уже появляются из 1-ого уровня, да и ктому же копии приводят проблемы...
Так вот хотел бы спросить нормальным ли образом работает инвентарь теперь при переходе:
inventory - Copy - v.2
И хотел бы уточнить если я сделаю инвентарь полностью на другом Layouts, тоесть там расставлю объекты инвентаря:
inventory - Copy - v.2.1
Так вот как эти объекты потом передать на первый уровень при его загрузке?
Nick_RimerДата: Понедельник, 05 Августа 2013, 08:32 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
ForgotPassword, честное слово, вопрос
Цитата
нормальным ли образом работает инвентарь теперь при переходе

надо бы вам задавать, а никак не нам..
мы подсказываем решения, вы применяете их к своим приложениям и смотрите, как здорово (или не здорово) оно работает..

как я уже говорил, глобальный объект сохраняет свои значения до закрытия программы. чтобы сохранить значения при выходе из программы, необходимо произвести сохранения массива. сохранение и загрузка объекта Array делаются крайне просто.


- Доброе утро, Агент Пи!
ForgotPasswordДата: Понедельник, 05 Августа 2013, 12:26 | Сообщение # 6
частый гость
Сейчас нет на сайте
Ясно. Чужое мнение тоже надо знать о правильности работы инвентаря.
На счёт сохранения сейчас вроде всё прекрасно сохраняет. А хотя нет при выходе из приложения и снова входе сохраняется только позиция предмета.
Эх... Наверно не так спросил, но можно ли как передавать все расставленные объекты с Layouts, который расположен предположим ниже остальных Layouts, как вот ведь можно передать события в Event Sheet Editor через Include Event Sheet?
Или уже обязательно нужно делать инвентарь поверх всех остальных Layouts и уже там делать предметы глобальными?
Nick_RimerДата: Понедельник, 05 Августа 2013, 13:47 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
ForgotPassword, столько каши, что я едва могу разобрать..
давай почётче и поконкретнее. по пунктам. что хочешь сделать? а то я запутался.. wacko


- Доброе утро, Агент Пи!
ForgotPasswordДата: Понедельник, 05 Августа 2013, 14:42 | Сообщение # 8
частый гость
Сейчас нет на сайте
В общем хочу чтобы было примерно так:
1) В этом исходнике inventory - Copy - v.2 все элементы (а именно Patrons, nav и inventory) инвентаря находятся на 1-ом Layouts, так как элементы эти глобальные - следовательно они отображаются и на 2-ом и след. Layouts, предположим есть ещё 3-ий,4-ый и т.д. Layouts, и вот если не не нужно на 3-ем Layouts отображать инвентарь, что можно сделать? - его кончено можно скрыть (Invisible) или переместить за пределы экрана, но можно ли его просто как бы правильней сказать, вообще не отображать, в смысле типо (Destroy), только на этом Layouts, а на след. Layouts, т.е. 4 уже его вновь отображать? и т.д.
2) На счёт сохранения сейчас вроде всё прекрасно сохраняет. А хотя нет при выходе из приложения и снова входе сохраняется только позиция предмета.
Почему сохраняется только позиция?
3) Как сделать так чтобы предположим, взяв на 1-ом Layouts какой либо из предметов(например пули, аптечку), перейти на 2-ой Layouts - там что-то подобрать и вернуться на 1-ый Layouts и чтобы те предметы, что были подобраны(а именно пули, аптечка) уже не отображались?

Вроде всё что интересует на данный момент, после этих решений вопроса думаю инвентарь будет действительно работать на должном уровне и иметь действительно полное сохранение...


Сообщение отредактировал ForgotPassword - Понедельник, 05 Августа 2013, 16:04
Nick_RimerДата: Вторник, 06 Августа 2013, 11:30 | Сообщение # 9
заслуженный участник
Сейчас нет на сайте
ForgotPassword, я не понимаю проблемы.. если не отображать, то делай инвиз, навесь какое-нибудь условие, если уровень такой-то, то не показывать.
а, пардон, дестрой - это дестрой. сможешь попрощаться со своим глобальным объектом.

вопрос сохранения - твоя личная головная боль. организуй массив таким образом, чтобы в нём хранилось всё необходимое для того, чтобы описать твои объекты, типа координат и значений приватных переменных, если надо. сохраняй этот массив и грамотно обрабатывай эту информацию при загрузке.

если ты загружаешь уровень из файла, то ты не должен сохранять объекты, которые уже подобрал или уничтожил. тогда и загружаться они не будут.

ах, да. и ещё.
Layout - единственное число
Layouts - множественное число
у тебя разницы почему-то нет. даже один уровень у тебя почему-то во множественном числе.


- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Вторник, 06 Августа 2013, 11:32
ForgotPasswordДата: Среда, 07 Августа 2013, 01:00 | Сообщение # 10
частый гость
Сейчас нет на сайте
А да пардон мой косяк - на счёт:
Layout - единственное число
Layouts - множественное число

Уже плюнул на всё что спрашивал... не понимаю простой вещи блин - что ещё должно храниться в массиве то кроме Item.X и Item.Y (для норм сохранения) - кроме координат то?

при переходе между Layouts всё нормально... стоит только закрыть и заново запустить exe (естественно с сохранённым dat-файлом) - как при подборе предметов они уже и берутся то в новые ячейки инвентаря т.е. с той ячейчки что по сути пустая...

всё как-то муторно, надо бы забить на это дело чтоли...((


Сообщение отредактировал ForgotPassword - Среда, 07 Августа 2013, 01:03
Nick_RimerДата: Среда, 07 Августа 2013, 08:59 | Сообщение # 11
заслуженный участник
Сейчас нет на сайте
ForgotPassword,
что сохранять в массиве - вообще лично твоё дело. и как это потом интерпретировать - тоже твоё личное дело.
никаких правил. "ничто не истина. всё дозволено" smile

приведу вот такой пример: скочадь crazy
пример для версии СС r2

ЛКМ - создаёшь объект в координатах мышки со случайным номером кадра
Ф5 - сохраняешь данные в массив (координаты ХY и номер кадра спрайта)
Ф9 - загружаешь данные из сохранённого файла
Ескейп - очищаешь экран

в общем, за вопросами, если что не понял, обращайся.. хотя пример вполне себе простой, можно всё понять.


- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Среда, 07 Августа 2013, 14:42
ForgotPasswordДата: Четверг, 08 Августа 2013, 11:54 | Сообщение # 12
частый гость
Сейчас нет на сайте
Еще больше запутался...
Пытался изменить подобно вашему примеру... теперь при закрытии exe после первого Layout (ну тоесть сохранения), но на 2 Layout уже даже не добавляются в инвентарь предметы...) - сохраняются кадры спрайта... но блин теперь не сохраняется кол-во пуль... - это что же и кол-во нужно сохранять в массив теперь?
inventory



Сообщение отредактировал ForgotPassword - Четверг, 08 Августа 2013, 11:55
Nick_RimerДата: Четверг, 08 Августа 2013, 13:59 | Сообщение # 13
заслуженный участник
Сейчас нет на сайте
ForgotPassword, ну вообще если это так не понятно, что всё, что ты захочешь загрузить, должно быть записано в массив, то я не знаю, как ещё объяснить.. dry
если ты не сохранил количество патронов, то какого фигвама при загрузке ты получить его должен?
в процессе игры, если массив глобальный, вообще не надо ничего сохранять. сохранять надо на случай завершения работы приложения (чтобы в последствии загрузить).

у тебя был объект "патроны" на первом уровне. их было, допустим, 100. ты уровень завершил, патроны (если не глобальные) уничтожились.
ты создаёшь новый объект "патроны" на втором уровне. ясен пень, что надо было в массиве держать значение количества патронов, иначе откуда новый объект узнает о том, что было в старом?
каким образом и в какой момент заносить данные в массив, решать тебе.

и ещё раз, самое главное. пока работает программа, глобальный массив с 1го уровня будет держать все значения в себе, не надо его по завершению уровня сохранять, а по началу следующего - загружать. это не имеет смысла.
сохраняй массив, когда выходишь из игры и делаешь сохранение. тогда при загрузке игры в будущем прочтёшь данные из файла.

есть ещё вопросы?
Цитата
P.S. Стыдно блин... Замучал вас глупыми вопросами...

я весьма терпеливый.. а ты просто чего-то не можешь уловить, какой-то маленькой деталюшечки, которая мешает тебе сделать желаемое


- Доброе утро, Агент Пи!
  • Страница 1 из 1
  • 1
Поиск:

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