Среда, 20 Ноября 2024, 10:14

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (Game Maker)
DurbekДата: Среда, 03 Октября 2012, 11:07 | Сообщение # 3541
Воин света
Сейчас нет на сайте
Помогите люди!

Когда звук воспроизводится то он перебивает фоновую музыку!

Использую sound_play()


Dva_KotaДата: Среда, 03 Октября 2012, 11:50 | Сообщение # 3542
заслуженный участник
Сейчас нет на сайте
Скорее всего у этого звука стоит тип "Фоновая музыка" (background music). Нужно изменить на обычный звук (normal sound). Или использовать dll и звук из папки.

Новый пример инвентаря! /20.06.2012/

Energy Wars
FadeBakerДата: Среда, 03 Октября 2012, 12:49 | Сообщение # 3543
JavaSE Game Developer
Сейчас нет на сайте
Quote (zxc76)
bl_tree=instance_nearest(x,y,tree);//находим ближающий объект дерева, от х,у игрока
if (player.y<bl_tree.y)  
  {  
  player.depth=998  
  }  
  else  
  {  
  player.depth=-998  
  }

Зачем так все усложнять? Все намного проще. В Step всех игровых объектов:
Code
depth = -y;


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
UnZipДата: Среда, 03 Октября 2012, 16:11 | Сообщение # 3544
почетный гость
Сейчас нет на сайте
Вот такой вопрос образовался :

У нас 2 моба( объект тот же),если например у 1 моба отнимается 10 ХП ,он умирает,при этом 2 моб не как не реагирует на изменение.
Как это сделать с 1 объектом?

У меня выходит если я убиваю 1 моба,2 тоже умирает


Dva_KotaДата: Среда, 03 Октября 2012, 16:31 | Сообщение # 3545
заслуженный участник
Сейчас нет на сайте
У тебя для ХП используется глобальная переменная health. замени ее на какую-нибудь другую, локальную переменную, например hp

Новый пример инвентаря! /20.06.2012/

Energy Wars
UnZipДата: Среда, 03 Октября 2012, 17:45 | Сообщение # 3546
почетный гость
Сейчас нет на сайте
Dva_Kota, благодарствую

Добавлено (03.10.2012, 17:45)
---------------------------------------------
А как сделать в коде не равно?
Например : sprite_index не равен kletka


LunarPixelДата: Среда, 03 Октября 2012, 17:50 | Сообщение # 3547
старожил
Сейчас нет на сайте
!=

UnZipДата: Среда, 03 Октября 2012, 20:26 | Сообщение # 3548
почетный гость
Сейчас нет на сайте
Как указать sprite_index другого объекта
Например в таком коде:
if place_meeting(O_kletka_glav.x, O_kletka_glav.y+16,O_kletka)
and sprite_index объекта O_kleta = sprite
{
bla..bla..bla...
}


LunarPixelДата: Среда, 03 Октября 2012, 20:27 | Сообщение # 3549
старожил
Сейчас нет на сайте
O_kleta.sprite_index = sprite

UnZipДата: Среда, 03 Октября 2012, 20:31 | Сообщение # 3550
почетный гость
Сейчас нет на сайте
LunarPixel, пробовал,не выходит, мне нужно ,что бы спрайт только который внизу имел такой спрайт.А остальные (например : справа,сверху и т.д) другой,но обьект опять тот-же



Сообщение отредактировал UnZip - Среда, 03 Октября 2012, 20:32
LunarPixelДата: Среда, 03 Октября 2012, 20:34 | Сообщение # 3551
старожил
Сейчас нет на сайте
Ну тогда получи сначала id объекта, который внизу. Сделать это можно, например, через функцию obj = instance_position(x,y,obj), которая вернет тот самый id указанного объекта из заданной позиции. Затем уже у этого полученного id в переменной obj проверяй спрайт, obj.sprite_index = sprite.

UnZipДата: Среда, 03 Октября 2012, 20:37 | Сообщение # 3552
почетный гость
Сейчас нет на сайте
LunarPixel, Благодарю

КомиссарДата: Пятница, 05 Октября 2012, 13:47 | Сообщение # 3553
заслуженный участник
Сейчас нет на сайте
У меня игра с видом сверху.
Контролируемый игроком юнит - артиллерийский катер или танк.
Сам юнит движется по кнопкам, башня вращается и стреляет в направлении курсора.
Не знаю, как привязать башню к корпусу (пока всё отдельно).
В случае с катером не знаю, как задать мёртвый сектор (т.е. направление, куда башня не поворачивается).
Также непонятно, как заставить вражеские танки и катера менять курс и разворачиваться постепенно, а не моментально (например, для сохранения заданной дистанции с нашим юнитом или возвращения на базу).


LunarPixelДата: Пятница, 05 Октября 2012, 13:55 | Сообщение # 3554
старожил
Сейчас нет на сайте
Quote (Комиссар)
Не знаю, как привязать башню к корпусу (пока всё отдельно).


В end step:
Code
x=korpus.x
y=korpus.y


Quote (Комиссар)
В случае с катером не знаю, как задать мёртвый сектор (т.е. направление, куда башня не поворачивается).

Code
if point_direction(x,y,mouse_x,mouse_y)>0 and point_direction(x,y,mouse_x,mouse_y)<180
поворачиваем башню


Quote (Комиссар)
Также непонятно, как заставить вражеские танки и катера менять курс и разворачиваться постепенно, а не моментально

Code
if point_direction(x,y,obj.x,obj.y)<direction
direction+=2
else
direction-=2


КомиссарДата: Воскресенье, 07 Октября 2012, 19:53 | Сообщение # 3555
заслуженный участник
Сейчас нет на сайте
LunarPixel, спасибо!
Я сначала вводил "direction_to_point", а потом сам допёр, что нужен "point_direction". Хотел тебе об этом сообщить, а ты уже поправил ся. biggrin
Всё хорошо, только запретный сектор получается задан пеленгами, а надо курсовыми углами.
Т.е., поскольку корабль поворачивается, нужно как-то задать этот сектор не глобальными углами, а углами относительно корпуса (+-70 градусов левого и правого борта).

Добавлено (06.10.2012, 13:41)
---------------------------------------------
Ещё вопрос:

Башня находится в заданном центре спрайта корабля, и при повороте получается, что корабль как будто поворачивает корму, что нереалистично.
Если разместить заданный центр спрайта ближе к корме - корабль движется реалистично, но башня сдвигается в корму, что неприемлемо.

Как решить эту проблему?

Добавлено (07.10.2012, 19:53)
---------------------------------------------
Ещё вопрос:
Я расставил несколько вражеских кораблей на карте, и заставил их стрелять по мне. Но стреляет почему-то только один. При его убийстве стрелять начинает другой и тоже один.

Code
//стрельба по нашему кораблю
if cannon_enemy = 1
{
instance_create(o_ship_enemy.x,o_ship_enemy.y,o_fire_enemy)
sound_play(gun)

alarm[3] = 20
cannon_enemy = 0
}


Что я сделал не так?


LunarPixelДата: Воскресенье, 07 Октября 2012, 19:58 | Сообщение # 3556
старожил
Сейчас нет на сайте
Если код прописываешь во врагах, то исправь:
instance_create(x,y,o_fire_enemy)


КомиссарДата: Вторник, 09 Октября 2012, 16:03 | Сообщение # 3557
заслуженный участник
Сейчас нет на сайте
LunarPixel, спасибо, помогло. Теперь они все стреляют синхронно, и все выстрелы параллельно друг другу. bag

П.С.: Всё, разобрался, такой же косяк был в самом выстреле. smile

Добавлено (09.10.2012, 16:03)
---------------------------------------------
Как задать небольшой по размеру хелсбар на более чем 100 единиц (например 1000)?
Пробую с помощью функции Health, но тогда хелсбар не отображает попадания, пока хп > 100 единиц (нужен именно хелсбар, а не надпись типа "Health: 1000".
И раз уж на то пошло, как прикрутить интерфейс с значениями переменных, к примеру, в верхний левый угол экрана (учитывая, что фон - не статичный, размеры комнаты значительно больше, чем отображаемая часть на экране). Пока только получается либо прикрутить к объекту, либо в какую-то координату комнаты.




Сообщение отредактировал Комиссар - Вторник, 09 Октября 2012, 16:04
LunarPixelДата: Вторник, 09 Октября 2012, 16:15 | Сообщение # 3558
старожил
Сейчас нет на сайте
Комиссар, ну есть два варианта: либо рисовать хелзбар прямоугольником, с длиной 1000, и потом уменьшать. Или принимать за единицу урона для хелзбара 10 пунктов. Т.е. когда получено 10 единиц урона, тогда отнимается 1 пункт от хелзбара. smile

А чтобы прицепить к экрану, используй координаты вида через view_xview[0], view_yview[0]. Если, например, прибавлять эти значения к x/y объекта, то он будет всегда двигаться относительно вида.


ressДата: Среда, 10 Октября 2012, 12:15 | Сообщение # 3559
постоянный участник
Сейчас нет на сайте
Доброго времени суток! Подскажите, пожалуйста, как можно реализовать плавный прыжок в игре? (Например, как в Super Meat Boy)

Я очень недоволен...
Raven84Дата: Среда, 10 Октября 2012, 12:39 | Сообщение # 3560
старожил
Сейчас нет на сайте
Комиссар, Можешь просто использовать формулу (если я тебя правильно понял):

x=live*100/livemax - где live-кол-во здоровья в данный момент,а livemax-максимальное здоровье.
Далее в draw_healthbar(x1,y1,x2,y2,x,backcol,mincol,maxcol,direction,showback,showborder).

Вот и все. smile

Добавлено (10.10.2012, 12:39)
---------------------------------------------
Т.е. в Create объекта пишешь
live=1000
livemax=live
А в событии попадания отнимаешь именно live.


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
Поиск:

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