RS Game Maker Community
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

 
Расширенный поиск
  Главная  Форум   Вики Блоги FAQ Игры Статьи Примеры Войти Регистрация  
Вики
Все желающие приглашаются редактировать вики. Можете писать о своих (или чужих) играх, размещать туториалы, постить статьи - главное навесить категорию.
Страниц: 1 ... 361 362 363 364 365 366 367 368 369   Вниз
  Печать  
Ответы@Gmakers.xyz — все вопросы сюда
0 Пользователей и 4 Гостей смотрят эту тему.
deathsoul
дезсоул
Ветеран форума
*****

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

Награды:
Легенда сайта
Сообщений: 1 853


21 Апреля 2011 в 01:14
Чтобы не было тем с вопросами, которые содержат всего два-три сообщения, все свои вопросы задавайтесь здесь. Если вопрос окажется слишком сложным для общей темы, модераторы всегда могут вынести обсуждение в отдельную тему.
Для этой темы действуют те же правила, что и для всего раздела, так что перед тем, как задать вопрос, обязательно ознакомьтесь с этой темой: «Ознакомьтесь, прежде чем задать вопрос». И не забудьте проверить, нет ли ответа на ваш вопрос в FAQ по Game Maker.
Последнее редактирование: 13 Октября 2013 в 19:01 от Огион
 
Макасин
[s]
Младший администратор
Старожил
******

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

Награды:
Легенда сайта
Сообщений: 4 307


[/s]

Ответ № 7281 09 Декабря 2018 в 11:04
Во-первых, согласен с Толичем. "Как работать?" — С чувством собственного превосходства. Конкретные вопросы пожалуйста.
Во-вторых, ты что-то путаешь. В справке подробно описана каждая команда с примером использования.
В-третьих, как насчет поиска по форуму? Минимум три темы есть, которые посвящены ини-файлам и могут помочь.

Энтузиазм нашему форуму чужд. Sad but true.
Ogion.
tolich
to ne lich
Ветеран форума
*****

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

Сообщений: 1 553


moonlite

Ответ № 7282 17 Декабря 2018 в 09:10
В справке подробно описана каждая команда с примером использования.
Справедливости ради, такая справка только в GMS появилась. В GM8 действительно список функций. +1 причина переходить на студию.

tolich
to ne lich
Ветеран форума
*****

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

Сообщений: 1 553


moonlite

Ответ № 7283 17 Декабря 2018 в 20:33
К тому же их можно открыть простым блокнотом и поменять все значения, что сводит их к полной бесполезности.
Шифрование, обфускация, контрольные суммы.

Макасин
[s]
Младший администратор
Старожил
******

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

Награды:
Легенда сайта
Сообщений: 4 307


[/s]

Ответ № 7284 25 Декабря 2018 в 05:52
что это все что с ними можно сделать.
Отнюдь нет. Например удобно хранить настройки.

набор оружий
*оружия

Но видимо придется использовать простой game_save
Не стоит. Посмотри, на форуме есть разные примеры реализации сохранений.

Может тут смогут предложить еще варианты решения проблемы
Толич подсказал выше. Да, игрок может поменять значения. Сделай, чтобы не смог. Или не понимал как и на что.

наверно еще можно попробовать сделать объект персонажа "постоянным"
Простое сохранение переменных объекта меду комнатами.

Энтузиазм нашему форуму чужд. Sad but true.
Ogion.
Doctor_Hummer
Подозрительно
Активный участник
**

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

Сообщений: 168


Боль

Ответ № 7285 04 Февраля 2019 в 17:23
Столкнулся тут с такой проблемой - хотел загружать рандомную картинку из определенной директории - нужно каким то способом найти в нужной директории все папки, а потом найти в каждой папке все файлы.

directory=working_directory+"\заготовки\"
file_array = ds_list_create();

filename = file_find_first(directory+'*', fa_volumeid );

while (filename != '')
{
    ds_list_add(file_array, filename);
    filename = file_find_next();
}

ds_list_shuffle(file_array);
filename = ds_list_find_value(file_array,0)


Таким образом я создал лист, добавил в него название каждой пикчи и перемешал, затем при нажатии пробела первая картинка в листе отрисовывается (заменяет собой уже нарисованный по дефолту спрайт) и лист снова рандомится.

sprite_replace(file,directory+filename,0,0,0,0,0)

ds_list_shuffle(file_array);
filename = ds_list_find_value(file_array,0)

Знаю что можно так же и все папки найти, просто проверив есть ли такая директория

foldername=file_find_first(directory+'*',fa_directory)

while (foldername !='')
{
  if directory_exists(directory+foldername)
  {
    show_message(foldername)
  }
 foldername=file_find_next()
}

А вот как проверяя каждую папку ещё и каждый файл в них записать додуматься не могу.. Может кто то пытался подобное сделать? Искал на форумах, вроде никто таким не занимался

Однако
tolich
to ne lich
Ветеран форума
*****

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

Сообщений: 1 553


moonlite

Ответ № 7286 05 Февраля 2019 в 16:46
fa_volumeid
Это метка тома. Файл с таким атрибутом только один может быть, в корне файловой системы. У тебя fa_directory должно быть.

Doctor_Hummer
Подозрительно
Активный участник
**

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

Сообщений: 168


Боль

Ответ № 7287 07 Февраля 2019 в 08:09
fa_volumeid
Это метка тома. Файл с таким атрибутом только один может быть, в корне файловой системы. У тебя fa_directory должно быть.
Спасибо, не знал.
Поиск по всем папкам удалось реализовать, а вот когда приспичило искать папки внутри каждой папки, они по какой то причине сохраняются не строкой с названием, а как . или ..

В чем может быть причина?

Однако
tolich
to ne lich
Ветеран форума
*****

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

Сообщений: 1 553


moonlite

Ответ № 7288 07 Февраля 2019 в 09:31
Имена . и .. это текущая и родительская папки. Просто игнорируй их.

Doctor_Hummer
Подозрительно
Активный участник
**

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

Сообщений: 168


Боль

Ответ № 7289 07 Февраля 2019 в 09:44
Имена . и .. это текущая и родительская папки. Просто игнорируй их.
Уже знаю что это, но мне каким то образом надо не включать их в общую систему. Дело в том что когда я ищу все директории, я записываю их в лист, в итоге помимо папок туда попадают ещё и . и .., а значит в них тоже осуществляется поиск (например в то время как в лист добавляется F:/directory/foldername1/foldername2/pic.png), туда же добавляется F:/directory/foldername1/../pic.png) и это вызывает жуткие проблемы..

Я пытался каким то вялым способом ограничить эти директории от добавления в лист

  foldername2=file_find_first(directory+ds_list_find_value(folder_array,i)+"\"+'*',fa_directory)
  while (foldername2 != '')
  {
    if directory_exists(directory+ds_list_find_value(folder_array,i)+"\"+foldername2) and (foldername2!='.' or foldername2!='..')
    {
      show_message(directory+ds_list_find_value(folder_array,i)+"\"+foldername2)
      ds_list_add(folder2_array, foldername2);
    }
    foldername2=file_find_next()
  }

Если что этот код идет в цикле поиска файлов в папках (где все папки лежат в листе folder_array), и в этих папках ищутся подпапки (foldername2) и добавляются в folder2_array

Но туда же ещё добавляются . и .. и
show_message(directory+ds_list_find_value(folder_array,i)+"\"+foldername2)
показывает их помимо папок в листе.
Последнее редактирование: 07 Февраля 2019 в 09:50 от Doctor_Hummer

Однако
tolich
to ne lich
Ветеран форума
*****

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

Сообщений: 1 553


moonlite

Ответ № 7290 07 Марта 2019 в 23:19
Странная вещь этот GMS 1.4 для Windows.
Открываю текстовый файл для записи — открывается. Пишу туда данные — записываются. Закрываю файл — всё в порядке.
В чём подвох, спросите вы? Всё это прекрасно работает в том случае, если файл уже существует и защищён от записи, а также если  существует каталог с таким именем. Куда при этом записываются данные на самом деле — тайна великая. Мне надо определить, записаны реально данные в файл или нет.
С каталогом я разобрался, если до записи существует каталог с указанным именем, значит фейл. Но вот защита от записи по атрибуту не проверяется.

Edit. Вместо условия
file_attributes(filename,fa_readonly)
надо проверять
file_attributes(filename,0)&fa_readonly
Кто знал, что всё так просто...
Последнее редактирование: 07 Марта 2019 в 23:48 от tolich

tolich
to ne lich
Ветеран форума
*****

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

Сообщений: 1 553


moonlite

Ответ № 7291 02 Апреля 2019 в 21:50
Если в меню пункты можно выбирать и стрелками, и мышкой, то если мышка наведена на пункт меню, стрелки не работают. Решения возможны разные:
— игнорировать мышь, если координаты не поменялись с прошлого раза (или поменялись меньше чем на 5 пикселей, например, чтобы игнорировать сползающую со стола мышку),
— при нажатии стрелок двигать курсор на выбранный пункт меню (или, наоборот, выталкивать за пределы меню),
— после нажатия стрелки в течение определённого времени игнорировать мышку.

Какой вариант кажется наиболее удобным?

input.txt
Не очень
Активный участник
**

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

Сообщений: 148


12.8 Gb

Ответ № 7292 03 Апреля 2019 в 14:22
Третий вариант мой любимый (нет). Его часто используют производители тачпадов для защиты от нажатия и перемещения во время печати. Без откручивания чувствительности/задержки в 0 пользоваться принципиально невозможно.

Второй вроде ок, только можно курсор не выталкивать, а тупо скрывать (до первого движения мышью).
tolich
to ne lich
Ветеран форума
*****

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

Сообщений: 1 553


moonlite

Ответ № 7293 03 Апреля 2019 в 15:56
Второй вроде ок, только можно курсор не выталкивать, а тупо скрывать (до первого движения мышью).
Если курсор просто спрятать, он всё равно остаётся над пунктом меню. Если код выбора пункта меню по положению мышки не учитывает видимость курсора, он всё равно будет мешать выбирать пункты меню стрелками. Если учитывает — это вариант "игнорировать мышь".

Важное уточнение: мышкой пункты меню выбираются не щелчком, а наведением. Щелчок запускает выбранный пункт меню.

Первый вариант означает: координаты предыдущего положения курсора хранятся и сравниваются с новыми, код выбора пунктов меню не выполняется, если мышь не сдвинулась (эмулятор события Mouse Move).

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

Третий вариант отключает выбор мышкой вообще или на время.

Возможно, мне стоит просто отказаться от выбора пунктов меню при наведении курсора. Тогда при нажатии кнопки мыши пункт выбирается, при отпускании (на том же пункте) — выполняется. Самое главное — мышка не мешает стрелкам.

Mordanius
Активный участник
**

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

Сообщений: 178


Старый казуал =(

Ответ № 7294 03 Апреля 2019 в 22:17
   Голосую за первый. Ощущения от третьего варианта у меня вообще довольно неприятные.
Макасин
[s]
Младший администратор
Старожил
******

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

Награды:
Легенда сайта
Сообщений: 4 307


[/s]

Ответ № 7295 04 Апреля 2019 в 02:31
Совмещай первый и третий в вариант: "после нажатия стрелки в течение определённого времени игнорировать мышку до изменения координат".
Это самое логичное, если пользователь начал использовать стрелки — мышь ему не нужна или временно не нужна, можно смело её игнорировать и спрятать курсор.

Энтузиазм нашему форуму чужд. Sad but true.
Ogion.
tolich
to ne lich
Ветеран форума
*****

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

Сообщений: 1 553


moonlite

Ответ № 7296 04 Апреля 2019 в 09:04
Спрятать в смысле "сделать невидимым"? Это не поможет.

Проблема не в том, что курсор отвлекает пользователя или ещё что-нибудь.

Проблема в том, что курсор не даёт сделать выбор.

Макасин
[s]
Младший администратор
Старожил
******

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

Награды:
Легенда сайта
Сообщений: 4 307


[/s]

Ответ № 7297 04 Апреля 2019 в 21:47
Там было "игнорировать и спрятать".

Энтузиазм нашему форуму чужд. Sad but true.
Ogion.
tolich
to ne lich
Ветеран форума
*****

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

Сообщений: 1 553


moonlite

Ответ № 7298 05 Апреля 2019 в 00:05
Игнорировать - да, прятать-то зачем?

Кстати, так виндовое меню и работает: если мышку не двигать, можно выбирать пункты стрелочками, стоит шевельнуть - выбирается пункт под меню; если надавить левую кнопку, можно выбирать пункт меню стрелками, но при нажатии Enter сработает выбранный пункт, а при отпускании кнопки мыши — пункт под курсором.
Последнее редактирование: 05 Апреля 2019 в 00:11 от tolich

Макасин
[s]
Младший администратор
Старожил
******

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

Награды:
Легенда сайта
Сообщений: 4 307


[/s]

Ответ № 7299 05 Апреля 2019 в 22:25
Игнорировать - да, прятать-то зачем?

Наверное это имхо, но визуально так чище и красивее.

Энтузиазм нашему форуму чужд. Sad but true.
Ogion.
Vovan1802
Активный участник
**

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

Сообщений: 174

Ответ № 7300 10 Апреля 2019 в 23:57
Подскажите, можно как то в объекте персонажа через Step прописать кодом глобальное нажатие мыши? Не используя Global Left Pressed. Делаю стрельбу из пулемета роботу, робот слева, стрелять должен вправо. Надо чтоб при нажатии на область справа появлялся снаряд в координате пулемета робота, и летел в точку где нажат палец. И так через каждые 10 кадров, пока не отпустишь палец справа.
Страниц: 1 ... 361 362 363 364 365 366 367 368 369   Вверх
  Печать  
 
Перейти в:  

RSGMC (gmakers.ru) © 2007—2019
Счётчик–@Mail.ru