Четверг, 25 Апреля 2024, 23:38

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » gameshulker [11]
Результаты поиска
gameshulkerДата: Воскресенье, 18 Апреля 2021, 11:54 | Сообщение # 1 | Тема: Создание объекта с параметрами
был не раз
Сейчас нет на сайте
Цитата MagicHero ()
temp.selectedButton=number;  // number - тип действия


Подожди, разве selectedButton=number не присвоется сразу ко всем кнопкам? То есть у меня 10 кнопок, и я пишу temp.selectedButton=5. SelectedButton будет равно 5 у всех кнопок же?

Емаеее, я допёр. То есть temp это как бы именно тот экземпляр, который мы создаем. А если сделать temp2 = instance_create, то это получается что свойства temp не будут касаться temp2, хотя и то и то есть объект кнопки.

Спасибо, вот этого не знал.


Сообщение отредактировал gameshulker - Воскресенье, 18 Апреля 2021, 12:04
gameshulkerДата: Суббота, 17 Апреля 2021, 20:41 | Сообщение # 2 | Тема: Создание объекта с параметрами
был не раз
Сейчас нет на сайте
Так выходит, что я задаю четвёртый вопрос подряд. Этот вопрос был интересен мне давно, но я как-то откладывал его и решал "костылями". Самый простой пример того, что я хочу:

Допустим у меня есть один объект с кнопкой (к примеру oButton), и есть переменная (пусть будет selectedButton). И мне, чтобы не делать кучу объектов с кнопками (поскольку мне нужно много разных кнопок с разными действиями), нужно чтобы у меня был один объект и с помощью selectedButton я бы проверял идентификатор кнопки на которую я нажал.

И из этого выливается следующий вопрос. Как я могу сделать 10 кнопок в instance_create и задать каждой кнопке разный selectedButton при создании? А потом при нажатии проверить selectedButton кнопки, на которую я нажал и в зависимости от этого делать разные действия у кнопок.

Заранее спасибо!
gameshulkerДата: Четверг, 15 Апреля 2021, 22:57 | Сообщение # 3 | Тема: Отрисовка инвентаря по сетке
был не раз
Сейчас нет на сайте
Fire_Phoenix, окей, спасибо. Но у меня как всегда куча глупых вопросов, я сделал для примера изображение 24х8, с тремя иконками. В движке разбил в одном спрайте (название icons) это всё на 3 кадра по 8х8 пикселей, var frames_count = 3; var resourcesIco = sprite_add(icons, frames_count, 0, 0, 0, 0);

Вот тут почему-то отрисовка несуществующего спрайта (trying to draw non-exiting sprite)
draw_sprite(resourcesIco, i, 5 + resourcesDrawCount * 10, 10); // спрайт с иконкой.

Но я ещё толком не копался, пока что буду думать.

А так, ты снова подкинул мысль. Теперь у вещей есть id, надо сделать табличку с id'шниками, и грамотно всё располагать в спрайте с иконками.

Исходя из справки fname - имя файла, а в файле должны быть спрайты в линию. С размером длину линии/кол-во спрайтов в линии. Я по сути разобрался в функции, но не понимаю как это применить

Добавлено (15 Апреля 2021, 23:35)
---------------------------------------------
Fire_Phoenix, в очередной раз спасибо тебе большое! Почему ты не снимаешь туториалы/уроки? Я думаю тебя ждал бы успех в этом, на русском языке, тем более именно про новый GMS 2 нет ничего путёвого, только мануалы и видео переводить остаётся, хорошо что в английском я не совсем дубовый. Инвентарь то что надо, я уже давно рыл их, и ничего путёвого не нашёл почти. За месяц уже даже как-то дизмораль пошла. Я вот так и хотел, чтобы добавление вещей не было на миллиард строк кода, а тут я могу в массив добавить нужно значение и всё. Спасибо ещё раз!

Сообщение отредактировал gameshulker - Четверг, 15 Апреля 2021, 23:11
gameshulkerДата: Среда, 14 Апреля 2021, 16:26 | Сообщение # 4 | Тема: Отрисовка инвентаря по сетке
был не раз
Сейчас нет на сайте
Так, сначала спасибо заранее всем кто не пройдёт мимо.

Такой вопрос, у меня есть enum resources {}, в котором, очевидно вещи, количество которых изначально нулевое (к примеру gold = 0, iron = 0, diamond = 0 и т.д.). И в draw GUI я просто отрисовываю спрайт с иконкой(icoIron, icoGold и т.д.) нужного предмета и этот самый resources.diamond, resources.iron и так далее. Я хочу сделать так, чтобы отрисовывалось только то, что у меня есть и по порядку.

Вот как это есть сейчас:
https://imgur.com/a/u47fJfA

Вот код который у меня есть

create:
enum resources {iron = 0, gold = 0, wood = 0}

drawGUI:
draw_text(10, 10, icoIron);draw_text(20, 10, icoGold); //И так для всех предметов
draw_sprite(icoIron, -1, 5, 10);draw_sprite(icoGold, -1, 15, 10); //И так для всех предметов

gameshulkerДата: Понедельник, 29 Марта 2021, 21:59 | Сообщение # 5 | Тема: Переменная в которой объекты
был не раз
Сейчас нет на сайте
Так, есть у меня куча объектов(к примеру: objTree, objRock, objLog, objFurnace). И я уже храню их в родительском объекте objObjects. Но это всё не суть, суть в том, что хранить эти объекты в двух родительских объектах нельзя, родитель у объекта может быть только один. И мне нужно хранить некоторые объекты(например те, что выше) в переменной или как-то так, чтобы я вместо other мог юзать эту переменную. Всё началось с того, что мне нужно было чтоб действие происходило только на некоторой группе объектов, а не на всём other. То есть я хочу это использовать например в instance_position(mouse_x, mouse_y, и вместо other сделать эту переменную) и потом проверять: if эта самая переменная с объектами.image_xscale/image_angel/и так далее. Надеюсь понятно, я пытался в enum записать объекты, но не вышло, не стал гадать и сразу пришла идея обратиться к великим гениям форумчанам.

Говорю переменную потому-что знаю что можно в переменную записать choose(и тут перечислить объекты), типа Nature = choose(objTree, objRock, objLog), тогда в переменной будет рандомный объект. Но мне нужен не рандомный, а мои нужные мне объекты.

Вот немного кода, где я хочу использовать вместо other какую-то свою переменную с группой объектов:
if mouse_check_button_pressed(mb_right) and instance_position(mouse_x ,mouse_y, other ) {
other.dragged = true
other.xx = x - mouse_x;
other.yy = y - mouse_y;
}

if mouse_check_button_released(mb_right) and instance_position(mouse_x ,mouse_y, other) {
other.dragged = false
}

if other.dragged = true {
x = mouse_x + xx;
y = mouse_y + yy;
move_snap(24,24)
}


Сообщение отредактировал gameshulker - Понедельник, 29 Марта 2021, 22:03
gameshulkerДата: Вторник, 23 Марта 2021, 11:27 | Сообщение # 6 | Тема: Курсор на спрайте
был не раз
Сейчас нет на сайте
Fire_Phoenix, спасибо, я попробую с этим шаманить, но, если тебе не сложно, то я так и не понял, почитав справку, что такое #define, и можно об return рассказать на пальцах, я буду безумно благодарен. А ещё, вместо "sprite" писать названия спрайтов моих кнопок, и для каждой кнопки проверять курсор отдельно? Я не так давно в GMS 2, я разобрался немного в массивах, циклах основных, но всё же непросто пока что это всё.

Вот, что такое спрайт? И что такое "drawn"?В #define компилятор тоже не понимает что такое sprite:
https://imgur.com/HXu8LUU

Окей, остался чертов #define:
https://imgur.com/R1OezRC

Ну как я понял, define это что-то типа функции. И вот что вышло, можно комментарии?
https://imgur.com/a/vn1nISu

Теперь курсор пугает неизвестно что, но я уже ближе.
https://imgur.com/GIw6OyB
https://imgur.com/Euef1zJ
Я пытаюсь подстроить чтобы было ровно, но получается что всё правильно, только съезжает вправо и вниз, как я мог бы это исправить?

Добавлено (23 Марта 2021, 19:53)
---------------------------------------------
Цитата Fire_Phoenix ()
нужно добавить в функцию отрисовки (draw), чтобы сбросить drawList.


Аааа, дошло. Я весь день менял значения, и оказалось что я не внимательно прочитал. Я использую draw GUI, мне для интерфейса, как это можно адаптировать под DrawGUI? В событии draw работает как надо

Добавлено (23 Марта 2021, 20:46)
---------------------------------------------

Цитата Fire_Phoenix ()
Для проверки, находится ли курсор над отрисованным спрайтом:

СПАСИБО ТЕБЕ ОГРОМНОЕ, это лучшая система нахождения спрайта под курсором, я думал что всё решу, когда по запросу GUI buttons gamemaker studio 2 нашёл кучу видео про кликабельный интерфейс, но оттуда я вовремя догадался взять позицию курсора относительно интерфейса:
var _mouseX = device_mouse_x_to_gui(0);
var _mouseY = device_mouse_y_to_gui(0);
Я заменил mouse_x/y на мои переменные и всё заработало, это очень крутая система кнопок интерфейса, я теперь могу не проверять для каждой кнопки отдельно курсор, а находить разные параметры для каждой кнопки с помощью одного ряда твоих строк, спасибо ещё раз, ты очень помог, я несколько дней был в тупике.


Сообщение отредактировал gameshulker - Вторник, 23 Марта 2021, 20:31
gameshulkerДата: Понедельник, 22 Марта 2021, 19:42 | Сообщение # 7 | Тема: Курсор на спрайте
был не раз
Сейчас нет на сайте
При нажатии на кнопку, я в draw gui рисую спрайт фона для меню крафта, далее рисую в этом же draw gui иконки кнопок с вариантами крафта. То есть, 1 спрайт рисуется как фон, и рисуется много разных спрайтов кнопок (например кнопка крафта палки, камня, слитка и так далее). Мне нужно чтобы игра понимала на каком из спрайтов находится курсор, тот же самый position_meeting только не с объектом, а с draw_sprite.

Я мог бы делать это объектами, но мне нужно чтобы это было как интерфейс. Если я буду вместо отрисовки спрайтов создавать объект фона, объекты с кнопками крафта, то будет неудобно и они не будут прикрепляться к интерфейсу.

Очень странно что не добавили возможность проверять position_meeting у спрайтов, есть ли какие-то способы?

Вот как отрисовываются 2 спрайта кнопок + фон:
https://imgur.com/0rdGOwt

Вот код отрисовки, где crGoldButton - спрайт кнопки крафта золотого слитка(iron - соответственно железного), FurnaceMenu - фон:
https://imgur.com/t8zko1E
gameshulkerДата: Четверг, 18 Февраля 2021, 23:40 | Сообщение # 8 | Тема: Экземпляры в Game Maker Studio 2, объясните
был не раз
Сейчас нет на сайте
Цитата ДанилаСтержнев ()
10


В общем, не знаю правильно понял или нет, но
В o_slime/create:
globalvar current_id;
current_id = id;
globalvar slm_hp;
slm_hp = 100;

В o_slime/step:

if slm_hp <= 0
{
instance_destroy(current_id);
}

В o_player/step:
if keyboard_check_pressed(ord("C"))
{
instance_create_depth(mouse_x, mouse_y, 0, o_slime);
}

if mouse_check_button_pressed(mb_left) and (point_distance(o_slime.x, o_slime.y, mouse_x, mouse_y) < 12)
{
slm_hp -= 10;

}

И это не работает, точнее работает некорректно, удаляется один враг(и не тот, на которого я кликал, а вроде бы тот, которого я создал первым) и всё, потом это не работает. И да я пробовал без глобализации переменных


Сообщение отредактировал gameshulker - Четверг, 18 Февраля 2021, 23:40
gameshulkerДата: Четверг, 18 Февраля 2021, 22:39 | Сообщение # 9 | Тема: Экземпляры в Game Maker Studio 2, объясните
был не раз
Сейчас нет на сайте
Цитата JAMPER ()
gameshulker, в каком объекте и каком событии ты используешь этот код?


Так, 2 объекта на сцене: o_player, o_slime(он же враг).
Переменные: slm_hp = 100(HP врага)

В o_player/step я написал что:
if mouse_check_button_pressed(mb_left)
{
slm_hp -= 10
}

В o_slime/step я сделал следующее:
if slm_hp <= 0
{
instance_destroy();
}

Итог всего проделанного, хп отнимаются всем копиям врага(o_slime) на сцене, и соответственно удаляются тоже все экземпляры врага(o_slime). Надеюсь всё подробно, я хочу понять как отнимать, удалять и взаимодействовать с конкретным объектом, на который я нажал, а оно применяется ко всем копиям этого объекта.
gameshulkerДата: Четверг, 18 Февраля 2021, 10:56 | Сообщение # 10 | Тема: Экземпляры в Game Maker Studio 2, объясните
был не раз
Сейчас нет на сайте
Цитата faridunibodullo ()
Наверное при нажатии мышки ты использовал mouse_global_left_pressed проверь, если да то используй mouse_left_pressed

Нет, 2 объекта на сцене: o_slime, o_player.
В o_slime:
if mouse_check_button_pressed(mb_left)
{
instance_destroy();
}

Удаляются все экземпляры при нажатии, а мне нужно чтобы только тот, на который я нажал.
gameshulkerДата: Среда, 17 Февраля 2021, 17:58 | Сообщение # 11 | Тема: Экземпляры в Game Maker Studio 2, объясните
был не раз
Сейчас нет на сайте
Дело в том, что я хотел сделать убийство врагов. При нажатии мышкой на врага он удаляется, это сработало. Но, когда я добавил несколько врагов, при нажатии на одного из них, удалялись все враги. Я пытался мудрить с with, но ни к чему это не привело.
Форум игроделов » Записи участника » gameshulker [11]
  • Страница 1 из 1
  • 1
Поиск:

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