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

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Вопрос по Массивам. (Все очевидно по названию.)
Вопрос по Массивам.
dikfairДата: Среда, 04 Сентября 2013, 19:28 | Сообщение # 1
почетный гость
Сейчас нет на сайте
И так, дорогие господа помощники и те кто просто хочет обозвать меня безграмотным, или не разумным человеком. У меня есть скажем 3 масива:
masiv[0]=pustota
masiv[1]=pustota
masiv[2]=pustota
masiv[3]=pustota

Да их 4, я соврал =).

У меня есть ГГ(o_gg), ему надо наткнувшись пузом на какойнить пушистый айтем безпалевно для всех окружающих стащить себе в карман и молча свалить побырику.
Так суть вопроса состоит в том, как мне сделать так чтобы наш добрый клептоман понял какой у него карман пустой и положил стыбзиный предмет именно в него. То есть мне как-то
надо прописать проверку на пустой массив, чтобы в ней было сказано этот массив полон шуруй к другому и применял соб-но ид нашего(в прошлом кого-то другого) предмета.

Информацию если не сложно изложите в виде кода, так как логику я еще кое как могу допереть, но с массивами я еще вот видимо до конца и на разобрался потому и задаю этот вопрос.



Объект 25 - Исследовательская игра на выживание
ustanceДата: Среда, 04 Сентября 2013, 19:38 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Создать отдельную переменную, к примеру.

Create:
a=0;

Step:

if(.. && masiv[a]==pustota){
masiv[a]=..;
a+=1;
}

Думаю, суть ты понял.


or whatever
LunarPixelДата: Среда, 04 Сентября 2013, 19:38 | Сообщение # 3
старожил
Сейчас нет на сайте
Цитата (dikfair)
Да их 4, я соврал

Ты опять соврал, все это один массив. smile

masiv[0]=-1
masiv[1]=-1
masiv[2]=-1
masiv[3]=-1

Код
for (i=0; i<=3; i+=1)
{
  if masiv[i]==-1
  {masiv[i]='предмет';
  break;}
}


ustanceДата: Среда, 04 Сентября 2013, 19:41 | Сообщение # 4
почетный гость
Сейчас нет на сайте
И, на будущее, массив у тебя один, а элементов массива 4. :3

Добавлено (04.09.2013, 19:40)
---------------------------------------------
Опередили. х)

Добавлено (04.09.2013, 19:41)
---------------------------------------------
И да. Циклом намного удобнее, если умеешь с ним обращаться.


or whatever
buftlerДата: Среда, 04 Сентября 2013, 19:49 | Сообщение # 5

Добряк

Сейчас нет на сайте
я самый слоупочный (

Цитата (dikfair)
и те кто просто хочет обозвать меня безграмотным

буду хотя бы им wink
массивы пишутся с двумя с что в русском что в английском
dikfairДата: Среда, 04 Сентября 2013, 20:17 | Сообщение # 6
почетный гость
Сейчас нет на сайте
if(.. && masiv[a]==pustota){
masiv[a]=..;
a+=1;
}

- сказать чесно запутался еще больше, обьясните мне где начало и конец этой веревки пожалуйста=(.
Почему в степ?по идее так он лишний раз с каждым тиком будет проверять это все, почему 2 точки и && это для меня что-то новое)). Если это способ заменить айди обьекта тогда этих две точки я должен где-то указывать?. Так же у меня появилась мысль в голове, что я запутался еще больше чем думал что запутался, к сожалению в этом случае - на - не дал +. Потому как я дважды в минус ушел... Дайте пожалуйста разьяснение, и даже если так бы и сработали что я тогда должен был писать в пересекании персонажа с айтемом?).

Цитата (LunarPixel)
for (i=0; i<=3; i+=1)
{
if masiv[i]==-1
{masiv[i]='предмет';
break;}
}

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



Объект 25 - Исследовательская игра на выживание


Сообщение отредактировал dikfair - Среда, 04 Сентября 2013, 20:18
ustanceДата: Среда, 04 Сентября 2013, 20:24 | Сообщение # 7
почетный гость
Сейчас нет на сайте
Step? Ну, просто я обычно все туда пихаю. Не суть.

".." - твои условия, можешь ставить\не ставить, как хочешь.
"&&" - то же самое and, так скажем. Для тебя это не важно.

Код
if(masiv[a]==pustota){   
masiv[a]=твой_предмет;   
a+=1;   
}


Нужно разъяснять про переменную или понял? (но лучше циклом, если ты умеешь)


or whatever

Сообщение отредактировал ustance - Среда, 04 Сентября 2013, 20:24
XakepДата: Среда, 04 Сентября 2013, 20:26 | Сообщение # 8
めちゃくちゃちゃ
Сейчас нет на сайте

Цитата (dikfair)
if masiv[i]==-1

мне кажется тут должны быть скобочки: if (masiv[i] == -1) { ... }
а вообще советую почитать официальную справку по гамаку, там все это описано.


Сообщение отредактировал Xakep - Среда, 04 Сентября 2013, 20:27
ustanceДата: Среда, 04 Сентября 2013, 20:27 | Сообщение # 9
почетный гость
Сейчас нет на сайте
И насчет ..

Код

for (i=0; i<=3; i+=1) {  
    if masiv[i]==-1 {
    masiv[i]='предмет';  
    break;
    }  
}


Это именно туда, где добавляешь предмет. Но при объявлении массива, ставь вместо своих "pustota" - "-1".

Добавлено (04.09.2013, 20:27)
---------------------------------------------

Цитата (Xakep)
мне кажется тут должны быть скобочки: if (masiv[i] == -1) { ... }


Это не обязательно.


or whatever
XakepДата: Среда, 04 Сентября 2013, 20:29 | Сообщение # 10
めちゃくちゃちゃ
Сейчас нет на сайте
Цитата (ustance)
Это не обязательно.

ок, не знал, в Си просто обязательно, я как-то на него ориентируюсь )))
LunarPixelДата: Среда, 04 Сентября 2013, 20:29 | Сообщение # 11
старожил
Сейчас нет на сайте
Цитата (Xakep)
мне кажется тут должны быть скобочки

Не обязательно.

В Create:
Код
for (i=0; i<=3; i+=1)  
masiv[i]=-1


В Столкновение с предметом:

Код
for (i=0; i<=3; i+=1)  
{  
if masiv[i]==-1  
{masiv[i]=other.id;  
with other instance_destroy()
break;}  
}


В draw, чтобы проверить:
Код
Draw_text(x,y,masiv[0])


CreatingOverДата: Среда, 04 Сентября 2013, 20:32 | Сообщение # 12
ColdGamedev
Сейчас нет на сайте
dikfair, что-то мне подсказывает что это не 3 и не 4 массива.. И кажется надо было написать massiv.. А для не заметной "тырки" достаточно просто создать отдельную переменную и записывать ее/в нее (смотря какя цель) при столкновении.

Я снова с вами:з
Возвращение легенды. (нет)
ustanceДата: Среда, 04 Сентября 2013, 20:32 | Сообщение # 13
почетный гость
Сейчас нет на сайте
Цитата (Xakep)
ок, не знал, в Си просто обязательно, я как-то на него ориентируюсь )))


В GML даже всякие begin`ы и end`ы есть. Так что скобки - еще не конец biggrin


or whatever
dikfairДата: Среда, 04 Сентября 2013, 20:33 | Сообщение # 14
почетный гость
Сейчас нет на сайте
Спасибо всем, разобрался. Теперь буду пытаться реализовать этот код там где планировал, когда моя игра станет самооой популярной я куплю всем пиченьки. Вывод: печеньки не кому не достануться, но плюсы пораздаю=).


Объект 25 - Исследовательская игра на выживание
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Вопрос по Массивам. (Все очевидно по названию.)
  • Страница 1 из 1
  • 1
Поиск:

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