Пятница, 15 Ноября 2024, 23:47

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (Game Maker)
PALADINДата: Воскресенье, 22 Ноября 2015, 20:24 | Сообщение # 5521
был не раз
Сейчас нет на сайте
Всем дорого времени суток. Пытаюсь сделать изометрическую игру по андройд.
Нашел рабочий пример в интернете.

Проблема:
Не знаю как привязать к своим спрайтам. как можно привязать анимации по таким направлениям?

надеюсь на ваше понимание. заранее спасибо.
YellowAfterlifeДата: Воскресенье, 22 Ноября 2015, 22:25 | Сообщение # 5522
Сейчас нет на сайте
Цитата PALADIN ()
Не знаю как привязать к своим спрайтам. как можно привязать анимации по таким направлениям?

http://s1.uploadpics.ru/images/ZyXQbSYotl.bmp


Сделать массив с изображениями на каждые 90/4 = 22.5 градусов,
Код
walk_spr[0] = spr_walk_deg0;
walk_spr[1] = spr_walk_deg22_5;
walk_spr[2] = spr_walk_deg45;
walk_spr[3] = spr_walk_deg67_5;
// ...
walk_spr[15] = spr_walk_deg337_5;
// (то же самое для stand_spr и что ещё)

потом, в шаге,
Код

var d = round(direction / 22.5) mod 16; // перевод направления в индекс
if (d < 0) d += 16; // на случай если направление получилось меньше 0
if (speed > 0) {
sprite_index = walk_spr[d];
} else sprite_index = stand_spr[d];

P.S.: советую запастись терпением, так как рисовать по 9+ анимаций для всех объектов в игре довольно долго.


mkostoevrДата: Воскресенье, 22 Ноября 2015, 23:46 | Сообщение # 5523
частый гость
Сейчас нет на сайте
Вот это поворот!

Ерунда всё это
PALADINДата: Понедельник, 23 Ноября 2015, 15:50 | Сообщение # 5524
был не раз
Сейчас нет на сайте
так что-то я накосячил.


Куда вписывать названия своих спрайтов(например: s_player1, s_player2... Прошу прощения за глупые вопросы.


Сообщение отредактировал PALADIN - Понедельник, 23 Ноября 2015, 16:13
YellowAfterlifeДата: Понедельник, 23 Ноября 2015, 16:13 | Сообщение # 5525
Сейчас нет на сайте
Цитата PALADIN ()
Куда вписывать названия своих спрайтов(например: s_player1, s_player2... Прошу прощения за глупые вопросы.

Ну... spr_walk_ это и есть названия спрайтов, по твоему же рисунку (spr_walk_deg0 смотрит направо, spr_walk_deg22_5 смотрит на 22.5 градусов против часовой стрелки от правой позиции, и так далее). Если что, вместо "// ..." нужно таким же образом заполнить остальные спрайты для всех углов. И для stand_spr тоже.


PALADINДата: Четверг, 26 Ноября 2015, 18:47 | Сообщение # 5526
был не раз
Сейчас нет на сайте
Цитата
YellowAfterlife

так вроде бы работает

Добавлено (26 ноября 2015, 18:47)
---------------------------------------------
Всем привет.
Проблема:

Цитата PALADIN ()
Нашел рабочий пример в интернете.

Данный джойстик статичен относительно комнаты, а как можно сделать чтоб он был статичен относительно экрана?


Сообщение отредактировал PALADIN - Вторник, 24 Ноября 2015, 12:11
poksДата: Четверг, 26 Ноября 2015, 20:00 | Сообщение # 5527
почетный гость
Сейчас нет на сайте
У меня есть такой код в объекте o_system в create:

Код
step = true;

mob[0] = o_enemy;
mob[1] = o_enemy2;
mob[2] = o_enemy3;

instance_create(96,64,mob[irandom_range(0,2)]);
instance_create(256,224,mob[irandom_range(0,2)]);
instance_create(96,352,mob[irandom_range(0,2)]);


В Step:

Код
if(!step){
    with(mob[irandom_range(0,2)]){
        image_blend = c_red;
    }
}


Когда нажимаю на o_enemy(2,3), то переменная step = false. При этом, срабатывает код в STEP у o_system. Но почему-то
красным выделяются сразу все противники. Как сделать так, чтобы выбирался случайный из них, притом что они занесены в массив?


jayreckДата: Пятница, 27 Ноября 2015, 02:18 | Сообщение # 5528
участник
Сейчас нет на сайте
PALADIN, прикрепить к виду командами view_xview[0]+2 view_yview[0]+200 // 2-координата относительно вида по х, 200-координата относительно вида по у

g-null-dc
Ippolit - тамагоч
немного моего пиксель арта


Сообщение отредактировал jayreck - Пятница, 27 Ноября 2015, 23:46
ehotokotДата: Воскресенье, 29 Ноября 2015, 08:16 | Сообщение # 5529
был не раз
Сейчас нет на сайте
(TDS) Как сделать так чтобы когда игрок сталкивается с объектом, если я верчу его мышью не задивал стенки? Чтобы он не крутился когда затронул своим боком стенку

И иногда он застрявает в ней
YellowAfterlifeДата: Воскресенье, 29 Ноября 2015, 12:25 | Сообщение # 5530
Сейчас нет на сайте
Цитата ehotokot ()
(TDS) Как сделать так чтобы когда игрок сталкивается с объектом, если я верчу его мышью не задивал стенки? Чтобы он не крутился когда затронул своим боком стенку

И иногда он застрявает в ней

Сделать игроку отдельную переменную, отвечающую за поворот, и использовать её при рисовании (через draw_sprite_ext или прочее), а не менять image_angle (что так же поворачивает маску столкновений объекта, позволяя застрять в стенах после поворота).


arthur33Дата: Среда, 02 Декабря 2015, 19:07 | Сообщение # 5531
участник
Сейчас нет на сайте
Недавно приобрел GMS и увидев встроенную физику бокс2Д появились вопросы, вот пару из них:
Например при метании ножа в стену (в платформере сбоку) , как реализовать полет ножа (пробовал physics_apply_impulse(x, y, mouse_x,mouse_y, но по моему это бред.)
Так же хотелось бы, чтобы нож как бы застревал в стене (как я понял, для этого используются joint-ы, т.е надо к кончику ножа прикрепить джоинт, и в столкновении со стеной сделать соединение объекта нож и стена?)
И в идеале еще хотелось бы получить ответ на вопрос: При создании физического тела (как я понял нож тоже им является) выбираешь его параметры, а можно ли как-то сделать, чтобы после застревания в стене, ГГ мог запрыгнуть на этот ножик (или копье) ?
За ранние спасибо, знатокам ГМ


- Опыт - это то, что получаешь, не получив того, чего хотел.
Новая головоломка


Сообщение отредактировал arthur33 - Среда, 02 Декабря 2015, 19:07
MasterSamboДата: Понедельник, 14 Декабря 2015, 14:16 | Сообщение # 5532
заслуженный участник
Сейчас нет на сайте
Кто-нибудь сталкивался с проблемой при компиляции игры на другую платформу?
jayreckДата: Понедельник, 14 Декабря 2015, 20:01 | Сообщение # 5533
участник
Сейчас нет на сайте
MasterSambo, смотря на какую, у меня на андроид проблема была - оказалось надо было модуль под андроид перезакачать

g-null-dc
Ippolit - тамагоч
немного моего пиксель арта
MasterSamboДата: Вторник, 15 Декабря 2015, 03:55 | Сообщение # 5534
заслуженный участник
Сейчас нет на сайте
jayreck, да, у меня тоже под андроид. Попробую перескачать.
wastermanДата: Пятница, 25 Декабря 2015, 10:39 | Сообщение # 5535
частый гость
Сейчас нет на сайте
Есть комната, вид ,панель с хелсбаром и игрок!
Когда движется игрок то хелсбар трясется так-как он закреплен по координатам игрока, когда-то делал такое-же но крепил к виду (wiev), в таком случае он перестает трястись.
За давностью времен забыл как это делать. может кто подскажет?


Рок форева!
Не графоМан!
Холодный космос.


Сообщение отредактировал wasterman - Пятница, 25 Декабря 2015, 11:53
OpenGOOДата: Пятница, 25 Декабря 2015, 12:23 | Сообщение # 5536
почти ветеран
Сейчас нет на сайте
wasterman, смотри в справке view_xview, view_yview.

Еще вариант. Рисовать в Draw GUI Event.


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]


Сообщение отредактировал OpenGOO - Пятница, 25 Декабря 2015, 12:35
wastermanДата: Воскресенье, 27 Декабря 2015, 15:14 | Сообщение # 5537
частый гость
Сейчас нет на сайте
Еще вопрос, при компиляции в студио выскакивает unable to set permissions.
Раньше боролся вроде очисткой данных и еще чем-то не помню.
Как это исправить!

Добавлено (27 декабря 2015, 15:14)
---------------------------------------------
Сам разобрался, просто стал использовать файл с примера, откопировал его удалил лишнее и использовал как новый.


Рок форева!
Не графоМан!
Холодный космос.
skripkaДата: Понедельник, 04 Января 2016, 23:32 | Сообщение # 5538
был не раз
Сейчас нет на сайте
Подскажите
1 Выделение объекта (например, есть несколько объектов-солдат, выделяешь одного и управляешь ним стрелками)
2 В игре создаются новые объекты, при каком-то количестве игра начинает виснуть, что делать?
wastermanДата: Пятница, 08 Января 2016, 15:36 | Сообщение # 5539
частый гость
Сейчас нет на сайте
1 Ставишь в солдата переменную dvijenie = false. при выборе солдата изменяешь ему переменную на true. Движение разрешаешь только если переменная равна true. При выборе другого солдата этому ставишь false всё профит.
2 Постарайся удалять ненужные объекты или хоть-бы делать их невидимыми! (если расстояние до предмета больше половины видимого экрана то обьект становится невидимым если меньше то видимым).

Вот мои вопросы. Мультитач
1 Можно ли для определенной части экрана использовать свой тач и как (например слева используются мышки номер 1 и 2 справа 3 и 4).
2 как вообще организовать мультитач если у меня просчитываются не только варианты нажатия но и варианты не нажатия. причем они друг друга перекрывают.


Рок форева!
Не графоМан!
Холодный космос.


Сообщение отредактировал wasterman - Пятница, 08 Января 2016, 15:42
YellowAfterlifeДата: Пятница, 08 Января 2016, 21:33 | Сообщение # 5540
Сейчас нет на сайте
Цитата wasterman ()
Вот мои вопросы. Мультитач
1 Можно ли для определенной части экрана использовать свой тач и как (например слева используются мышки номер 1 и 2 справа 3 и 4).
2 как вообще организовать мультитач если у меня просчитываются не только варианты нажатия но и варианты не нажатия. причем они друг друга перекрывают.

Общая идея:
Код
for (var i = 0; i < 5; i += 1) {
var _x = device_mouse_x(i);
var _y = device_mouse_y(i);
if (/* точка _x, _y в нужном регионе \ над нужным объектом \ ... */) break;
}
if (i < 5) {
// есть касание в области
}
if (i >= 5) {
// нет касания в области
}

Пример (клик по выполняющему код объекту любым из касаний):
Код
for (var i = 0; i < 5; i += 1) {
if (device_mouse_check_button_pressed(i, mb_left)
&& position_meeting(device_mouse_x(i), device_mouse_y(i), id)) break;
}
if (i < 5) show_debug_message("Click!");

Для удобства можно вынести в отдельный скрипт.




Сообщение отредактировал YellowAfterlife - Пятница, 08 Января 2016, 21:34
Поиск:

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