Суббота, 20 Апреля 2024, 14:41

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Сохранение переменных (как сделать)
Сохранение переменных
fack3637363Дата: Воскресенье, 03 Апреля 2011, 19:52 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
есть обьект А, в его создании стоит переменная global.quest1=0, при столкновении игрока с этим обьектом переменная глобал квест равняется 1.
Потом перемещаемся в другую комнату, перемещаемся обратно, и эта переменная опять равно 0, а должно чтобы 1 также.Пробовал сувать эту переменную в шаг, без толку..(потому что стоит при столкновении с обьектом А вылазиет сообщение, и если отвечаешь Да, переменная квест становится = 1.Но тк в шаге, она позже опять становится 0.)
QvantДата: Воскресенье, 03 Апреля 2011, 19:54 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
галочка постоянный объект тебе поможет
fack3637363Дата: Воскресенье, 03 Апреля 2011, 20:00 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
ахах спасибо)))чето даже не думал об этом..раньше думал что это только к глубине относится biggrin

Добавлено (03.04.2011, 19:58)
---------------------------------------------
упс..не работает cry
Все равно создается обьект А с переменной равной 0 cry cry

Добавлено (03.04.2011, 20:00)
---------------------------------------------
Помогите ааа!! cry

LunarPixelДата: Воскресенье, 03 Апреля 2011, 20:08 | Сообщение # 4
старожил
Сейчас нет на сайте
Попробуй написать просто quest1=0, без global
Сделай объект А постоянным и чтобы он только в одной комнате был.


fack3637363Дата: Воскресенье, 03 Апреля 2011, 20:13 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
LunarPixel
Не получается, при переходе обратно в 1 комнату переменная квест становится равной 0(
Пробовал делать, что когда он переходит обратно в комнату 1 - quest1=1.Только проблема, вдруг игрок до перехода в комнату 2 не подходил к обьекту А.(Не брал квест).Так что надо както подругому(( cry


Сообщение отредактировал fack3637363 - Воскресенье, 03 Апреля 2011, 20:14
neksinsДата: Воскресенье, 03 Апреля 2011, 20:13 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
fack3637363, задай обьекту код в событии Room Start примерно такого вида:
if room=room0
{x=600
y=790}

if room=room1
{x=600
y=790}

и так далее. Сам обьект не ставь в другие комнаты кроме первой.
квест будет работать и через global.


Мой проект по типу Guitar Hero
ИГРА ВЫПУЩЕНА!
fack3637363Дата: Воскресенье, 03 Апреля 2011, 20:15 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
neksins
А причем сдесь координаты?Я не очень понял(
neksinsДата: Воскресенье, 03 Апреля 2011, 20:17 | Сообщение # 8
постоянный участник
Сейчас нет на сайте
fack3637363, сейчас смастерю примерчик чтобы было понятней.
координаты это место где будет появляться игрок при переходе в другую комнату - а значит все данные (стадия квеста, уровень, опыт, предметы) сохраняются


Мой проект по типу Guitar Hero
ИГРА ВЫПУЩЕНА!
LunarPixelДата: Воскресенье, 03 Апреля 2011, 20:19 | Сообщение # 9
старожил
Сейчас нет на сайте
Вот короче ЛОВИ

fack3637363Дата: Воскресенье, 03 Апреля 2011, 20:19 | Сообщение # 10
постоянный участник
Сейчас нет на сайте
neksins
А переменную квеста обьекту А (у которого берешь, и который только в одной комнате стоит)
Или игроку (который создается и во 2 комнате)
И координаты?
neksinsДата: Воскресенье, 03 Апреля 2011, 20:25 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
fack3637363, так, сейчас обьясню "на пальцах" smile
обьект игрока постоянный. он появляется на 1ом уровне. берет квест и получает стадию квеста = 1. телепортируется в комнату. Внимание - если игрок не будет постоянным то стадия квеста обнулится при создании игрока (считай мы того убили а тут взяли нового). Поскольку игрок постоянный то ставить его в новую комнату нельзя. Но где же он окажется при старте комнаты? для этого нужен код
if room=room0
{x=600
y=790}

Смотри, что здесь указано - если комната = room0 (название комнаты) то при появлении там игрок встает на позицую 600,790

это событие указывается в обьекте игрока - добавить новое событие - другие события - старт комнаты.

можно ставить неограниченное количество комнат:
if room=room0
{x=600
y=790}

if room=room1
{x=699
y=720}

if room=room2
{x=660
y=190}

и т.д.

заметь, мы не делаем нового игрока - игрок остается тотже, а значит вся информация о нем сохраняется


Мой проект по типу Guitar Hero
ИГРА ВЫПУЩЕНА!
ек0нДата: Воскресенье, 03 Апреля 2011, 20:26 | Сообщение # 12
участник
Сейчас нет на сайте
Объявляй переменную не в повторяющихся событиях а где-то в отдельном скрипте, который запускается один раз при запуске игры, или на титульном экране, например
neksinsДата: Воскресенье, 03 Апреля 2011, 20:27 | Сообщение # 13
постоянный участник
Сейчас нет на сайте
добавить пример?

Мой проект по типу Guitar Hero
ИГРА ВЫПУЩЕНА!
fack3637363Дата: Воскресенье, 03 Апреля 2011, 20:31 | Сообщение # 14
постоянный участник
Сейчас нет на сайте
Так, сейчас попробую все это переварить в голове, но интересует еще, как сделать чтобы например обьект Б (если переменная квест = 1) появлялся только 1 раз?Но не в создании, например в одной комнате прошел квест, переменная quest1 = 1, и должен появиться оьект Б?
Пробовал в шаг if quest1=1(instance_create(bla,bla,objectB), но обьектов Б создается очень много
neksinsДата: Воскресенье, 03 Апреля 2011, 20:40 | Сообщение # 15
постоянный участник
Сейчас нет на сайте
fack3637363, я бы сделал так - if quest1=1 global.ololo=1
if global.ololo=1{
instance_create(bla,bla,objectB)
global.ololo=2
}

хотя может будет постоянно на 1 сбрасывать тогда попробуй так

f quest1=1 global.ololo=1
if global.ololo=1{
instance_create(bla,bla,objectB)
quest1=2
}

так должно помочь... ну мб есть вариант и проще...
тогда стадии квеста сдвигай на 1...

сейчас залезу в свою РПГ посмотрю как там

Добавлено (03.04.2011, 20:36)
---------------------------------------------
ну да, вот что стоит у меня:

if global.mission=2{show_message('Отличная работа! А теперь бери пушку LoloWeapon_V_1.2 и уничтожь врага!')
global.mission=3 global.xp+=50 instance_create(x,y,blaster1); }

Добавлено (03.04.2011, 20:40)
---------------------------------------------
fack3637363, как успехи? мне надо офф, если что отвечу позже или завтра, но думаю если ты непонял меня тебя кто-нибудь обьяснит =)


Мой проект по типу Guitar Hero
ИГРА ВЫПУЩЕНА!
LunarPixelДата: Воскресенье, 03 Апреля 2011, 20:43 | Сообщение # 16
старожил
Сейчас нет на сайте
Quote (neksins)
if room=room0
{x=600
y=790}

if room=room1
{x=699
y=720}

if room=room2
{x=660
y=190}

Зачем это?! А если там 100 комнат будет?! biggrin

fack3637363, я тебе пример кинул для этого.. посмотри...


neksinsДата: Воскресенье, 03 Апреля 2011, 20:44 | Сообщение # 17
постоянный участник
Сейчас нет на сайте
LunarPixel, ну и 100 комнат норм, код не трудный, зато все ясно где появится игрок

Мой проект по типу Guitar Hero
ИГРА ВЫПУЩЕНА!
LunarPixelДата: Воскресенье, 03 Апреля 2011, 20:49 | Сообщение # 18
старожил
Сейчас нет на сайте
neksins, да, очень понятно. У тебя координатная сетка в голове?! biggrin
Не проще хранить переменные в отдельном постоянном объекте, а героя расставить на картах. Вот тогда точно будет понятно, где он появится biggrin


fack3637363Дата: Воскресенье, 03 Апреля 2011, 20:51 | Сообщение # 19
постоянный участник
Сейчас нет на сайте
Спасибо ребят всем!Я разобрался!)От части у всех код взял))
Но есть другая проблемка, игрок в комнате 1 создается с координатами 10,10.
Перехожу в комнату 2, потом дотрагиваюсь до обьекта Б (например двери) он переходит обратно в комнату 1 и создается с координатами 10,10.
Как сделать чтобы при столкновении с обьектом Б он создавался в комнате 1 с координатами (например) 1,1?
Robin_LocksleyДата: Воскресенье, 03 Апреля 2011, 20:57 | Сообщение # 20
постоянный участник
Сейчас нет на сайте
Quote (LunarPixel)
Не проще хранить переменные в отдельном постоянном объекте, а героя расставить на картах. Вот тогда точно будет понятно, где он появится

Проще выделить один невидимый обьект и расставить его во всех комнатах в месте где нужен респ героя. Перемещать в его координаты при старте комнаты самого героя а потом удалять. Если расставить много постоянных героев у тебя получится белиберда smile
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Сохранение переменных (как сделать)
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

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