Game Maker - создание игр | HellRoom Games
Май 15, 2025, 04:13:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проверка существования элемента массива.  (Прочитано 5432 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Strater
Посетитель
**

Репутация: 0
Offline Offline

API: Game Maker 8.0 Pro
Сообщений: 16


« : Февраль 11, 2013, 16:42:58 »

Всем доброго времени суток. Пытаюсь проверить существует ли элемент массива.
Есть скрипт который запускается (допустим по нажатию клавиши, но не важно), в скрипте прежде чем исполнять код с элементами массива нужно проверить, а они вообще существуют.
Массив формируется в другом объекте. Код проверки сейчас выглядит так:
Код:
if (variable_local_array2_get(obj_game_ctrl.sv,j,i)) тра-та-та
Переменные j и i - от for'ов выше. Массив по кличке sv (размерность неизвестна), находится в объекте obj_game_ctrl, и там формируется. Формироваться может как угодно, хоть слово в первом элементе, хоть символ в сотом элементе. Проверка проходит постоянно ложно. Хотя я точно знаю что хотя бы один элемент там существует.

Пробовал такой код: variable_local_exists

Есть ещё такие но не знаю как ими воспользоваться, вот ищу. Пока поиск выдаёт не то что нужно.
variable_local_array_set(name,ind,value)
variable_local_array2_set(name,ind1,ind2,value)
variable_global_array_get(name,ind)
variable_global_array2_get(name,ind1,ind2)

Помогите пожалуйста проверить. Так как же можно проверить существует элемент массива или нет?
Заранее спасибо!
Записан
SilentPhil
Norland
GM Pro user
*

Репутация: 479
Offline Offline

Пол: Мужской
Награды:
Первое место на HellRoom Jam #7 [Hell in Your Fridge]500 сообщений!За постоянность! [50 дней на форуме]За лояльность! [+150 репутации]Настоящий игродел!Второе место на HellRoom Jam #6 [По следам Артакса]...
API: GameMaker Studio 2
Деятельность: GML, Pixel Art
Сообщений: 1363



WWW
« Ответ #1 : Февраль 11, 2013, 18:20:29 »

Если нельзя узнать размер массива - значит вы неправильно подошли к проектированию кода.
Записан

         
Да, на них можно кликать.
Strater
Посетитель
**

Репутация: 0
Offline Offline

API: Game Maker 8.0 Pro
Сообщений: 16


« Ответ #2 : Февраль 11, 2013, 18:32:44 »

Фил, Обязательно размер знать?
Записан
Hamster099
«Старожил форума»
******

Репутация: 164
Offline Offline

Награды:
1000 сообщений!За постоянность! [100 дней на форуме]За лояльность! [+150 репутации]
API: GameMaker Studio Master
Сообщений: 1264



« Ответ #3 : Февраль 11, 2013, 18:51:43 »

Код:
if array[i]=noone
можно попробовать, но неуверен



вообще когда юзал безразмерные массивы либо забивал их с лихвой чемто нейтральным (-1 например), либо если идет проверка от 0 до n затыкал при заполнении только последний индекс (n+1) тем же "-1", чтоб конец определить както
если надо весь диапазон чисел, можно границей юзать строку
Код:
(array[i]='конецмасссива')
, и проверять if чтототам is_real {} else конец
Записан
SilentPhil
Norland
GM Pro user
*

Репутация: 479
Offline Offline

Пол: Мужской
Награды:
Первое место на HellRoom Jam #7 [Hell in Your Fridge]500 сообщений!За постоянность! [50 дней на форуме]За лояльность! [+150 репутации]Настоящий игродел!Второе место на HellRoom Jam #6 [По следам Артакса]...
API: GameMaker Studio 2
Деятельность: GML, Pixel Art
Сообщений: 1363



WWW
« Ответ #4 : Февраль 11, 2013, 19:08:58 »

Ну ты же как-то добавляешь новые значения в массив. Как ты можешь это делать, не зная его размера?
Записан

         
Да, на них можно кликать.
Strater
Посетитель
**

Репутация: 0
Offline Offline

API: Game Maker 8.0 Pro
Сообщений: 16


« Ответ #5 : Февраль 12, 2013, 19:35:38 »

А ладно я уже по другому сделал.
Фил, я думал в game maker можно делать динамический массив.
Записан
Dimonychan
Участник
****

Репутация: 16
Offline Offline

Пол: Мужской
API: Game Maker 8.0 Pro
Деятельность: Учу ТПаскаль(1.5 года), осваиваю GM(совсем недавно), пытаюсь сделать игру
Сообщений: 171

Winnie the Pooh: Scrathing Ears since 1926!


« Ответ #6 : Февраль 12, 2013, 19:37:51 »

А ладно я уже по другому сделал.
Фил, я думал в game maker можно делать динамический массив.
Ну, можно ведь записывать длину твоего массива в перменную, и использовать её, изменяя в нужные моменты.
Записан

They say coward, I say Effective Treat Managment.
geroy231
GM Pro user
*

Репутация: 137
Offline Offline

Пол: Мужской
Награды:
500 сообщений!За постоянность! [100 дней на форуме]
API: Game Maker 8.0 Pro
Сообщений: 952



« Ответ #7 : Февраль 12, 2013, 22:22:08 »

А ладно я уже по другому сделал.
Фил, я думал в game maker можно делать динамический массив.
можно, только они списки называются (а двумерные - сетки)
Записан

SilentPhil
Norland
GM Pro user
*

Репутация: 479
Offline Offline

Пол: Мужской
Награды:
Первое место на HellRoom Jam #7 [Hell in Your Fridge]500 сообщений!За постоянность! [50 дней на форуме]За лояльность! [+150 репутации]Настоящий игродел!Второе место на HellRoom Jam #6 [По следам Артакса]...
API: GameMaker Studio 2
Деятельность: GML, Pixel Art
Сообщений: 1363



WWW
« Ответ #8 : Февраль 13, 2013, 15:50:15 »

можно, только они списки называются (а двумерные - сетки)
На самом деле списки мало похожи на массивы, гораздо ближе к ним словари. Кстати я не очень уверен, можно ли назвать сетку динамической, ведь при ее создании нужно четко указать размеры. Правда потом можно эти размеры поменять. Ну я точного определения не знаю и поэтому воздержусь :)
А ладно я уже по другому сделал.
Фил, я думал в game maker можно делать динамический массив.
Ну дело в том, что если правильно организовывать и писать код, то и не должно возникнуть подобных проблем. Ну к этому нужно придти через собственные ошибки :)
Записан

         
Да, на них можно кликать.
N Lisicyn
Новичок
*

Репутация: 1
Offline Offline

API: GameMaker Studio 2
Сообщений: 9



« Ответ #9 : Май 14, 2022, 11:23:13 »

Тут похоже никто про is_underfined так и не узнал?  Хм...
Записан
Dmi7ry
Гл. Администратор
*

Репутация: 1379
Offline Offline

Пол: Мужской
Награды:
5000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+1000 репутации]За помощь в развитии форума!Знаток Game Maker!За помощь новичкам!
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 6626



WWW
« Ответ #10 : Май 14, 2022, 12:12:13 »

Тут похоже никто про is_underfined так и не узнал?  Хм...
В GM 8, по которому и был вопрос, нет is_undefined.
Записан

- А какой, собственно, командой процессора колобок ест черта?
- Командой EAT...
Справка и FAQ в правом верхнем углу...
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.104 секунд. Запросов: 32.