Game Maker - создание игр | HellRoom Games
Ноябрь 17, 2025, 16:03:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

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

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

API: GameMaker Studio Pro
Сообщений: 56


« Ответ #345 : Октябрь 19, 2015, 21:24:21 »

wow , спасибо приогромнейшее +++ ,целый день сижу туплю...)))

Добавлено: Октябрь 20, 2015, 01:11:58
Прошу прощения за наглую наглость ,но не мог бы ты ещё добавить к примеру, как задействовать клавиши на клавиатуре,вместо кнопок на мыши ,не могу догнать, как заменить эти строчки ...

 klick_x=floor((mouse_x-x)/slot_width_x);
 klick_y=floor((mouse_y-y)/slot_height_y);

« Последнее редактирование: Октябрь 20, 2015, 01:11:58 от sergei248 » Записан
Dva_Kota
Гл. Администратор
*

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

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [500 дней на форуме]За лояльность! [+500 репутации]Настоящий игродел!Тру Админ :D1 место за игру: Energy Wars (Конкурс Золотые Руки)...
API: GameMaker Studio Standard
Сообщений: 3245



« Ответ #346 : Октябрь 20, 2015, 10:19:42 »

Всё на много проще.
Нужно везде убрать
Код:
klick_x=floor((mouse_x-x)/slot_width_x);
klick_y=floor((mouse_y-y)/slot_height_y);

В коде создания инвентаря
Код:
//Это будут координаты ячейки, выбранной по умолчанию
klick_x=0;
klick_y=0;

В нажатии клавиш выбора ячейки менять соответственно переменные klick_x и klick_y (предварительно сделав проверку, чтобы не выйти за пределы инвентаря) и события нажатия клавиш мыши заменить на события нажатия каких-то других клавиш. Больше ничего можно не менять и не добавлять дополнительный массивы и переменные.
Записан

sergei248
Пользователь
***

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

API: GameMaker Studio Pro
Сообщений: 56


« Ответ #347 : Октябрь 20, 2015, 23:10:08 »

плиз ,если не сложно,добавите нужный код в клавиши передвижения по инвентарю ,не соображу как это сделать ...,удалил все ненужные строчки ,заменил eventы на нажатие клавиш ...
да и не пойму опять куда вставить спрайт select(рамка навигации в инвентаре) в draw...
буду очень признателен...

* Invent primer.gmk (82.61 Кб - загружено 421 раз.)
Записан
Goo
ну типа
GM Pro user
*

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

Пол: Мужской
Награды:
3 место в HellRoom Jam XВторое место на HellRoom Jam #9 [Антибиотик]
API: GameMaker Studio 2
Деятельность: программист
Сообщений: 1345



« Ответ #348 : Октябрь 21, 2015, 13:41:34 »

Как я понял ты удалил все, и не помнишь как там было, скачай тот пример, что я скидывал, там все это есть.
и это
Цитировать
код в клавиши передвижения по инвентарю
и это
Цитировать
куда вставить спрайт select(рамка навигации в инвентаре) в draw
Записан

sergei248
Пользователь
***

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

API: GameMaker Studio Pro
Сообщений: 56


« Ответ #349 : Октябрь 21, 2015, 15:43:47 »

Ну всё ,аллилуйя ,наконец то разобрался ,спасибо за помощь

Добавлено: Октябрь 22, 2015, 00:31:00
Люди,а кто нибудь знает, возможно ли как нить сделать так ,чтобы при использовании предмета (к примеру находящегося на второй ячейке)все остальные предметы в инвентаре передвинулись на пустую ячейку за место использованного предмета...?
« Последнее редактирование: Октябрь 22, 2015, 00:31:00 от sergei248 » Записан
Troir
GM Pro user
*

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

Награды:
500 сообщений!За постоянность! [10 дней на форуме]
API: GameMaker 8.1 Standard
Сообщений: 766



« Ответ #350 : Октябрь 22, 2015, 11:48:47 »

Ну всё ,аллилуйя ,наконец то разобрался ,спасибо за помощь

Добавлено: Октябрь 22, 2015, 00:31:00
Люди,а кто нибудь знает, возможно ли как нить сделать так ,чтобы при использовании предмета (к примеру находящегося на второй ячейке)все остальные предметы в инвентаре передвинулись на пустую ячейку за место использованного предмета...?

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

Скрипт должен вызываться, когда предмет использован.
Записан
sergei248
Пользователь
***

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

API: GameMaker Studio Pro
Сообщений: 56


« Ответ #351 : Октябрь 24, 2015, 00:22:04 »

Пожалуйста помогите ,возникла проблема с переменной variable_local_exists в obj_smil_base ,её нет в студии ,как быть ?? может есть альтернатива ??
Записан
Goo
ну типа
GM Pro user
*

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

Пол: Мужской
Награды:
3 место в HellRoom Jam XВторое место на HellRoom Jam #9 [Антибиотик]
API: GameMaker Studio 2
Деятельность: программист
Сообщений: 1345



« Ответ #352 : Октябрь 24, 2015, 10:14:17 »

все просто, убери везде проверку на существование переменной,
а в тех предметах, на которые потом инвентарь будет жаловаться, мол нет такой переменной,
просто занеси им эту переменную в create, либо равную
9999 - когда предметов в ячейке должно быть до хера,
либо == 1 - когда предмет лишь в единичном экземпляре помещается в ячейку ( точнее хочешь, чтобы он был один )
Записан

sergei248
Пользователь
***

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

API: GameMaker Studio Pro
Сообщений: 56


« Ответ #353 : Октябрь 24, 2015, 18:00:21 »

все просто, убери везде проверку на существование переменной,
а в тех предметах, на которые потом инвентарь будет жаловаться, мол нет такой переменной,
просто занеси им эту переменную в create, либо равную
9999 - когда предметов в ячейке должно быть до хера,
либо == 1 - когда предмет лишь в единичном экземпляре помещается в ячейку ( точнее хочешь, чтобы он был один )

Спасибо ,всё заработало)))+++

Добавлено: Октябрь 25, 2015, 15:35:22
Люди подскажите :у меня в obj_inv  навигация в ячейках назначена на стрелки клавиатуры в step и управление гг тоже на эти же стрелки,при входе в инвентарь деактивируются все объекты, соответственно кроме obj_inv ,но так как obj_inv должен быть всегда активирован, все действия нажатий клавиш гг отражаются в инвентаре.. как мне отключить скрипт отвечающий за навигацию в инвентаре на тот момент пока я управляю гг,и как включить этот скрипт при входе в инвентарь 
« Последнее редактирование: Октябрь 25, 2015, 15:35:22 от sergei248 » Записан
Troir
GM Pro user
*

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

Награды:
500 сообщений!За постоянность! [10 дней на форуме]
API: GameMaker 8.1 Standard
Сообщений: 766



« Ответ #354 : Октябрь 25, 2015, 17:21:12 »

Люди подскажите :у меня в obj_inv  навигация в ячейках назначена на стрелки клавиатуры в step и управление гг тоже на эти же стрелки,при входе в инвентарь деактивируются все объекты, соответственно кроме obj_inv ,но так как obj_inv должен быть всегда активирован, все действия нажатий клавиш гг отражаются в инвентаре.. как мне отключить скрипт отвечающий за навигацию в инвентаре на тот момент пока я управляю гг,и как включить этот скрипт при входе в инвентарь 

Задай переменную, например inv_active. Когда инвентарь открыт, она будет равна 1, когда закрыт - 0. И в коде движения персонажа делай проверку:
Код:
if not inv_active
{
   //код движения персонажа
}
Записан
sergei248
Пользователь
***

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

API: GameMaker Studio Pro
Сообщений: 56


« Ответ #355 : Октябрь 25, 2015, 19:01:40 »

Люди подскажите :у меня в obj_inv  навигация в ячейках назначена на стрелки клавиатуры в step и управление гг тоже на эти же стрелки,при входе в инвентарь деактивируются все объекты, соответственно кроме obj_inv ,но так как obj_inv должен быть всегда активирован, все действия нажатий клавиш гг отражаются в инвентаре.. как мне отключить скрипт отвечающий за навигацию в инвентаре на тот момент пока я управляю гг,и как включить этот скрипт при входе в инвентарь 

Задай переменную, например inv_active. Когда инвентарь открыт, она будет равна 1, когда закрыт - 0. И в коде движения персонажа делай проверку:
Код:
if not inv_active
{
   //код движения персонажа
}

ни как не получается, может есть другой выход ,не затрагивая управление гг..
может возможно как то создать глобальную переменную, отвечающую за включение и отключение скрипта  управления навигацией в obj_inv  в step...?
Записан
Troir
GM Pro user
*

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

Награды:
500 сообщений!За постоянность! [10 дней на форуме]
API: GameMaker 8.1 Standard
Сообщений: 766



« Ответ #356 : Октябрь 25, 2015, 20:35:33 »

может возможно как то создать глобальную переменную, отвечающую за включение и отключение скрипта  управления навигацией в obj_inv  в step...?

Можно. Делается точно также. Только когда inv_active=1, то тогда навигация по инвентарю активна. Если 0 - то нет.

Записан
sergei248
Пользователь
***

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

API: GameMaker Studio Pro
Сообщений: 56


« Ответ #357 : Октябрь 25, 2015, 21:04:02 »

может возможно как то создать глобальную переменную, отвечающую за включение и отключение скрипта  управления навигацией в obj_inv  в step...?

Можно. Делается точно также. Только когда inv_active=1, то тогда навигация по инвентарю активна. Если 0 - то нет.


ok понял ,буду пробовать ...спасибо..

Добавлено: Октябрь 26, 2015, 22:23:20
может возможно как то создать глобальную переменную, отвечающую за включение и отключение скрипта  управления навигацией в obj_inv  в step...?

Можно. Делается точно также. Только когда inv_active=1, то тогда навигация по инвентарю активна. Если 0 - то нет.

ok понял ,буду пробовать ...спасибо..


В общем решил проблему так: в obj_inv создал переменную global.inv_active ,сделал её false, в step вставил код:
if global.inv_active
{
//скрипт навигации по инвентарю//;
}
далее в включении инвентаря global.inv_active=true при выключении false
и всё.)
гг не затрагивал так как ,его объект деактивируется при входе в инвентарь.

Так написал,мож кому интересно...
« Последнее редактирование: Октябрь 26, 2015, 22:23:20 от sergei248 » Записан
Konstruktor001
Посетитель
**

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

Пол: Мужской
API: GameMaker Studio Standard
Сообщений: 36


« Ответ #358 : Ноябрь 15, 2015, 13:46:30 »

Делал по примеру свой инвентарь, и выдаёт ошибку если очень быстро водить курсором по инвентарю.
Ошибка в Draw вот в этом куске кода
///////////////////////////
if (position_meeting(mouse_x,mouse_y,o_ini) { //
mousx=floor((mouse_x-x)/ini_w);//
mousy=floor((mouse_y-y)/ini_h);//
draw_set_font(name)//
if naimen_ob[mousx,mousy]!='' && naimen_ob[mousx,mousy]!='@'{
draw_text(view_xview[0]+340,view_yview[0]+0,russ_name[mousx,mousy])//русское имя предмета в координатах курсора
}}
А ошибка такая  
############################################################################################
FATAL ERROR in
action number 1
of Draw Event
for object o_ini:

Array index must be +'ve
 at gml_Object_o_ini_DrawEvent_1 (line 15) - if  naimen_ob[mousx,mousy]!='' && naimen_ob[mousx,mousy]!='@'
############################################################################################
Записан
Goo
ну типа
GM Pro user
*

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

Пол: Мужской
Награды:
3 место в HellRoom Jam XВторое место на HellRoom Jam #9 [Антибиотик]
API: GameMaker Studio 2
Деятельность: программист
Сообщений: 1345



« Ответ #359 : Ноябрь 15, 2015, 14:26:58 »

по идее такого быть не должно,
но раз уж так случилось, то

Код:

if position_meeting ( mouse_x , mouse_y , o_ini )
    {
        mousx = floor (( mouse_x - x ) / ini_w )
        mousy=floor (( mouse_y - y ) / ini_h )

        if mousx > -1
        and mousy > -1
        and mousx < количество_ячеек_в_ширину
        and mousy > количество_ячеек_в_высоту
               {
                               //       твой код
               }
    }


Ну как - то так!

Добавлено: Ноябрь 15, 2015, 14:29:47
Код:
russ_name[mousx,mousy]

замени на string ( russ_name[mousx,mousy] ) // мало ли, вдруг там хранится не строковая величина
Записан

Страниц: 1 ... 22 23 [24] 25 26 ... 28   Вверх
  Печать  
 
Перейти в:  

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