GameMaker
|
HellRoom Games
|
Infernal GM
[GM] Справка
|
[GM] FAQ для начинающих
Декабрь 13, 2024, 22:39:51
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Новости
:
Начало
Game Maker
Помощь
Правила форума
Поиск
Календарь
Войти
Регистрация
Game Maker - создание игр | HellRoom Games
>
Game Maker | GameMaker: Studio [Game-Maker.ru]
>
Для новичков: вопросы и ответы по Game Maker
>
Как найти в Grid нужный мне Id предмета?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как найти в Grid нужный мне Id предмета? (Прочитано 963 раз)
0 Пользователей и 1 Гость смотрят эту тему.
HUNTon
Новичок
Репутация: 0
Offline
API: GameMaker Studio 2
Сообщений: 9
Как найти в Grid нужный мне Id предмета?
«
:
Июнь 18, 2023, 19:53:26 »
Здравствуйте! Подскажите, пожалуйста, где закралась ошибка?
Хочу выполнить проверку на наличие Id предмета (ключ) в инвентаре ,после чего, (если он действительно присутствует) добавить его в список, который в последствии я проверяю при взаимодействии с другим объектом (сундуком).
function IsItemIDInInventory(_Id){ // _Id номер предмета
global.checkInventory_items = ds_list_create();
for (var xx = 0; xx < w; xx++)
{
for (var yy = 0; yy < h; yy++)
{
var val = ds_grid_get(obj_inventory.grid, xx, yy)
if val == _Id {
ds_list_add(global.checkInventory_items, 0, _Id);
}
}
}
}
Но почему-то, при начилии искомого Id предмета в инвентаре, проверка ds_grid_get не дает результата и скрипт не заносит предмет в список. :-(
Возможно я неправильно использую ds_grid_get или нужна другая функция?
Записан
Dmi7ry
Гл. Администратор
Репутация: 1379
Offline
Пол:
Награды:
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 6626
Re: Как найти в Grid нужный мне Id предмета?
«
Ответ #1 :
Июнь 19, 2023, 04:58:09 »
Проверьте, чему равны w и h. По-хорошему, они должны вычисляться в этой же функции.
И вижу ещё пару проблем:
1. У вас лишний аргумент в ds_list_add.
2. При каждом вызове этой функции вы создаёте новый список ds_list. Тут два варианта. Либо нужно после каждого вызова этой функции уничтожать список, чтобы не было утечки, либо возвращать результат в массиве.
Если проблему не найдёте, то просто ставьте точку останова в этой функции и отладчиком смотрите, что там происходит.
Записан
- А какой, собственно, командой процессора колобок ест черта?
- Командой EAT...
Справка и FAQ в правом верхнем углу...
HUNTon
Новичок
Репутация: 0
Offline
API: GameMaker Studio 2
Сообщений: 9
Re: Как найти в Grid нужный мне Id предмета?
«
Ответ #2 :
Июнь 20, 2023, 16:16:30 »
Спасибо! Заработало)
По поводу списка - не понимаю как его грамотно уничтожить. Если список создать вне функции, то внутри функции он не срабатывает, почему-то, а если список создается внутри функции, то вне этой функции при попытке его уничтожить, вылезает ошибка, в духе " я не знаю что такой список существует". Я искал проверку вроде "if ds_list_exists ", но не нашел ничего подходящего..
upd.: функция ds_list_clear нормально срабатывает, думаю ее оставить.
«
Последнее редактирование: Июнь 20, 2023, 18:54:11 от HUNTon
»
Записан
Dmi7ry
Гл. Администратор
Репутация: 1379
Offline
Пол:
Награды:
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 6626
Re: Как найти в Grid нужный мне Id предмета?
«
Ответ #3 :
Июнь 20, 2023, 20:52:55 »
ds_list_clear очищает содержимое списка, но сам список при этом не уничтожается.
ds_list, ds_grid, ds_map и другие ds_структуры данных являются глобальными, а потому, могут быть доступны из любого места.
Если есть какая-то ошибка, то либо структура данных создаётся позже, чем было обращение к переменной, в которой она сохранена, либо эта переменная была затёрта другим значением уже после создания структуры данных.
Функция ds_list_exists() не существует, есть ds_exists().
Записан
- А какой, собственно, командой процессора колобок ест черта?
- Командой EAT...
Справка и FAQ в правом верхнем углу...
HUNTon
Новичок
Репутация: 0
Offline
API: GameMaker Studio 2
Сообщений: 9
Re: Как найти в Grid нужный мне Id предмета?
«
Ответ #4 :
Июнь 20, 2023, 21:58:41 »
Спасибо за ответ, вы очень помогли!
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
HellRoom Games:
-----------------------------
=> Игры
-----------------------------
Game Maker | GameMaker: Studio [Game-Maker.ru]
-----------------------------
=> Новости
=> Интересные проекты
===> Готовые интересные проекты
===> Интересные проекты в разработке
=> Проекты форума
===> Готовые проекты
===> Проекты в разработке
=====> Закрытые проекты
=> Проекты-клоны
===> Готовые клоны
===> Клоны в разработке
===> Измененные примеры
=> Для новичков: вопросы и ответы по Game Maker
===> Вопросы по TDS (игры с видом сверху)
===> Вопросы по Платформерам (вид сбоку)
===> Работа со звуком / музыкой / видео
=> Для продвинутых пользователей: решение сложных проблем
===> Вопросы по 3D
===> Вопросы по Онлайн / Мультиплееру
===> Вопросы по DLL и другим расширениям
===> Вопросы по GameMaker: Studio
=> Общие вопросы разработки игр
=> Примеры, библиотеки, статьи, уроки, дополнения
===> Extensions [GEX]
===> Scripts [GML]
===> Libraries [LIB]
===> DLLs [DLL]
===> Статьи / уроки
===> GM Engines
===> Школа GML (архив)
=====> Контрольные работы
===> GameMaker: Studio
===> Шейдеры для GMS
-----------------------------
Дополнительно:
-----------------------------
=> Движки и программы
===> Stencyl
===> Unity 3D
=====> Уроки
=====> Вопросы - Ответы
=====> Ресурсы
===> LOVE
=====> Вопросы - Ответы
===> Tululoo - HTML5 Game Maker
=====> Примеры Tululoo
=====> Extensions [.tex] (расширения)
=====> Статьи/уроки по Tululoo
=====> Вопросы и ответы по Tululoo
=> Программы, утилиты, редакторы
===> Программы для Windows
=> Помощь по другим языкам программирования
===> Web-программирование
=> 2D / 3D Графика, моделирование и рисование
===> Растровая графика / Pixel Art
=====> Уроки по растровой графике / Photoshop
=====> Уроки по пиксель арту
=====> Софт, используемый для растровой графики
=====> Ресурсы / Photoshop архив
===> Векторная графика
=====> Уроки по векторной графике
=====> Софт, используемый для векторной графики
=====> Ресурсы
===> Анимация
=====> Уроки по анимации
=====> Софт, используемый для анимации
=====> Ресурсы
===> 3D Моделирование
=====> Уроки
=====> Редакторы
=====> Ресурсы
=> Создание музыки, Работа со звуком
===> Программы для работы со звуком
=====> Обзор программ
=====> Статьи и уроки
===> Создание музыки (трекеры)
=====> Обзор программ
=====> Статьи и уроки
===> Создание музыки (секвенсоры, рабочие станции)
=====> Обзор программ
=====> Статьи и уроки
===> VST плагины (Виртуальные инструменты, эффекты, синтезаторы)
=====> Обзор программ
=====> Статьи и уроки
===> Сэмплы
=====> Обзор
===> Железо и инструменты
=> Ресурсы для игр
===> Графика, спрайты, текстуры
===> Звук и музыка
===> Другие ресурсы
=> Конкурсы
=> Статьи
=> Вакансии \ ищу работу \ услуги
===> Вакансии (собираю команду)
===> Резюме (ищу работу) | Предоставление услуг
=> Оффтоп
===> Работа форума
===> Games Zone (Игротека)
=====> Программы для игр
Загружается...