Вторник, 08 Октября 2024, 14:49

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (Game Maker)
Лер_да_РимДата: Воскресенье, 31 Июля 2011, 10:04 | Сообщение # 1921
заслуженный участник
Сейчас нет на сайте
Quote (arthur33)
зделать

dry
Code

if keyboard_check(ord('K'))
{очки -= 1}
else
{очки += 1}


Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.



Сообщение отредактировал Лер_да_Рим - Воскресенье, 31 Июля 2011, 10:04
arthur33Дата: Воскресенье, 31 Июля 2011, 11:34 | Сообщение # 1922
участник
Сейчас нет на сайте
оО...Сделать

- Опыт - это то, что получаешь, не получив того, чего хотел.
Новая головоломка
valekoДата: Понедельник, 01 Августа 2011, 12:11 | Сообщение # 1923
частый гость
Сейчас нет на сайте
Извините, если вопрос покажется примитивным:

1. Я запустил объект по пути. Двигается и разворачивается.
2. Над объектом размещаю индикатор жизни. Если помещаю его в событии "Step" - он не рисуется. Если в событии "Draw", то он рисуется но самого объекта тогда не видно.

В итоге по пути перемещается только индикатор жизни, без самого объекта. Подскажите, пожалуйста, как это исправить.


2D NoteWar
BrightSpotДата: Понедельник, 01 Августа 2011, 12:51 | Сообщение # 1924
заслуженный участник
Сейчас нет на сайте
просто в гм есть такая заморочка что при добавлении ф-ции рисования спрайт не рисуется...для таких случаев используют draw_sprite(sprite_index,x,y,-1)


Более мощный компьютер глючит быстрее и точнее.
valekoДата: Понедельник, 01 Августа 2011, 14:55 | Сообщение # 1925
частый гость
Сейчас нет на сайте
Хорошо, спасибо. А можно ли как-то вывести индикатор жизни не используя функции рисования?

Я попробовал вставить в "Step" draw_healthbar(10,10,200,12,health,c_gray,c_red,c_red,0,1,1) но все равно не рисуется.

А при использовании draw_sprite(sprite0,x,y,-1) тоже возникает странная ситуация.

ДО: Спрайт двигался по окружности (правильно разворачиваясь в направлении пути)
ПОСЛЕ: Спрайт двигается только по 0 оси y, направлен только в одну сторону. Т.е. просто передвигается слева-направо и обратно вверху экрана на ширину окружности.


2D NoteWar
arthur33Дата: Понедельник, 01 Августа 2011, 15:51 | Сообщение # 1926
участник
Сейчас нет на сайте
Можно просто создать новый объект и туда поместить в draw
draw_healthbar(10,10,200,12,health,c_gray,c_red,c_red,0,1,1).
А не писать это в драве главного героя

Добавлено (01.08.2011, 15:51)
---------------------------------------------

Quote (valeko)
А при использовании draw_sprite(sprite0,x,y,-1) тоже возникает странная ситуация.

А что за странная ситуация?


- Опыт - это то, что получаешь, не получив того, чего хотел.
Новая головоломка
BrightSpotДата: Понедельник, 01 Августа 2011, 16:19 | Сообщение # 1927
заслуженный участник
Сейчас нет на сайте
Quote (valeko)
А при использовании draw_sprite(sprite0,x,y,-1) тоже возникает странная ситуация.

я не имел дел с путями но что бы рисовать "крутящийся спрайт используй draw_sprite_ext(sprite_index,-1,x,y,1,1,rot,c_white,1)
rot-поворот спрайта...

Добавлено (01.08.2011, 16:19)
---------------------------------------------
кста что бы без ф-ции рисования зделать индикатор жизней создай спрайт в 1 пиксель, создай объект с этим спрайтом, в степе пиши image_xscale=obj.Health;image_yscale=10
obj.Health - это обьект у которого стоит переменная жизней и название переменной...
10 - это толщина линии=))

конечно это извращение так делать HB но кто его знает...



Более мощный компьютер глючит быстрее и точнее.
valekoДата: Понедельник, 01 Августа 2011, 18:49 | Сообщение # 1928
частый гость
Сейчас нет на сайте
Quote (arthur33)
Можно просто создать новый объект и туда поместить в draw
draw_healthbar(10,10,200,12,health,c_gray,c_red,c_red,0,1,1).
А не писать это в драве главного героя


А каким образом он определит какой health показывать. Т.е. если у меня несколько однотипных врагов, над каждым полоска жизни. Когда рисование жизни вложено в сам персонаж, то я понимаю, как это работает. А если жизнь рисуется отдельным объектом - как установить эту связь?

Странная ситуация, это то, что я ниже написал:

ДО: Спрайт двигался по окружности (правильно разворачиваясь в направлении пути)
ПОСЛЕ: Спрайт двигается только по 0 оси y, направлен только в одну сторону. Т.е. просто передвигается слева-направо и обратно вверху экрана на ширину окружности.

Добавлено (01.08.2011, 18:49)
---------------------------------------------

Quote (BrightSpot)
я не имел дел с путями но что бы рисовать "крутящийся спрайт используй draw_sprite_ext(sprite_index,-1,x,y,1,1,rot,c_white,1)
rot-поворот спрайта...


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

Quote (BrightSpot)
кста что бы без ф-ции рисования зделать индикатор жизней создай спрайт в 1 пиксель


Прекрасная идея, очень понравилась. Спасибо. Но не получится, что рисовать опять удастся только из драва, а не из степа и выйдут те же грабли? smile


2D NoteWar
SalahAdDinДата: Понедельник, 01 Августа 2011, 18:55 | Сообщение # 1929
постоянный участник
Сейчас нет на сайте
Quote (valeko)
А каким образом он определит какой health показывать.

Quote (valeko)
draw_healthbar(10,10,200,12,'id образца'.health,c_gray,c_red,c_red,0,1,1).


Фотошоп это не сложно. Немного теории, полезной на практике:
Работа с наложением текстур
Рисуем без планшета


Сообщение отредактировал SalahAdDin - Понедельник, 01 Августа 2011, 18:55
Лер_да_РимДата: Понедельник, 01 Августа 2011, 19:24 | Сообщение # 1930
заслуженный участник
Сейчас нет на сайте
Quote (valeko)
А каким образом он определит какой health показывать. Т.е. если у меня несколько однотипных врагов, над каждым полоска жизни. Когда рисование жизни вложено в сам персонаж, то я понимаю, как это работает. А если жизнь рисуется отдельным объектом - как установить эту связь?

health только один - для персонажа. Для врагов вводи локальную переменную и всё будет норм.


Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

arthur33Дата: Понедельник, 01 Августа 2011, 20:19 | Сообщение # 1931
участник
Сейчас нет на сайте
Будут вопросы обращайся, поможем.

- Опыт - это то, что получаешь, не получив того, чего хотел.
Новая головоломка
valekoДата: Понедельник, 01 Августа 2011, 21:16 | Сообщение # 1932
частый гость
Сейчас нет на сайте
Я пытаюсь сделать игру типа "Защита башни"

Я, наверное, совсем тупые вопросы задаю...

Хорошо, оставим health в покое. Попробую еще раз вопрос сформулировать.

Допустим, у меня есть пачка врагов. Они каким-нибудь генератором создаются, каждый с рандомным здоровьем. Над каждым полоска этого здоровья. На старте - полоска здоровья одинакового размера у всех, независимо от того какая цифра за этой полоской скрывается.

Все враги дружной толпой прут по дороге (путь - сложная фигура). При приближении к башне на определенное расстояние, та начинает стрелять. При попадании во врага полоска уменьшается (у каждого врага на свою величину, т.к. стартовое здоровье у всех разное). Если здоровье <= 0, враг уничтожается.

Тут мне все понятно, кроме того, как эту полоску нарисовать. Как получить сами цифры здоровья и урона я понимаю. НО как их вывести на экран в виде полоски - ничего не выходит.

Теперь, наконец-то, сам вопрос:

1. Как вывести эту полоску, не используя событие "Draw"?
2. Если все же только через "Draw", то как сделать, чтобы мой враг правильно двигался по пути, а не просто дергался вверху экрана.

Спасибо, что дочитали до этого места. smile


2D NoteWar
SalahAdDinДата: Понедельник, 01 Августа 2011, 21:40 | Сообщение # 1933
постоянный участник
Сейчас нет на сайте
Quote (valeko)
1. Как вывести эту полоску, не используя событие "Draw"?

Обьектом, спрайт которого будет служить индикатором здоровья.
image_xscale для масштабирования спрайта по горизонтали и image_yscale - по вертикали.
Но намного более удобно использовать Draw.

Quote (valeko)
2. Если все же только через "Draw", то как сделать, чтобы мой враг правильно двигался по пути, а не просто дергался вверху экрана.

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


Фотошоп это не сложно. Немного теории, полезной на практике:
Работа с наложением текстур
Рисуем без планшета
valekoДата: Вторник, 02 Августа 2011, 01:20 | Сообщение # 1934
частый гость
Сейчас нет на сайте
Quote (SalahAdDin)
Draw не влияет на положение обьекта, но чтобы рисовать его спрайт в правильном месте используй в функции draw_sprite() координаты обьекта.


Смотри, при создании, я назначаю спрайту путь. В степе у меня прописано image_angle=direction. Он абсолютно правильно двигается по пути.

Как только в дело вступает Draw, image_angle=direction не срабатывает, смещение по оси y не срабатывает. Он движется только по горизонтали, туда-обратно.

В функции draw_sprite() у меня стоит x и y, а событие Draw я вызываю как раз в том объекте, который должен рисовать. Соответственно это и есть координаты объекта.

Вопрос. Как заставить объект поворачиваться на нужный угол и следовать пути не только по горизонтали.

Спасибо.

Добавлено (02.08.2011, 01:20)
---------------------------------------------
И еще один вопрос:

Ставлю в комнате башню. Она отслеживает перемещение врага, стреляет при приближении. Ставлю еще одну такую же башню. Перемещение она отслеживает, но не стреляет.

Код в степе

if (distance_to_object(obj_vrag) < 150)
{
if shoot=1
{instance_create(obj_tower.x,obj_tower.y,obj_bomba)
shoot = 0
alarm[0]=10}}

Я думал, что сколько башен не поставлю - все будут стрелять. Но стреляет только первая. Удаляю ее - начинает стрелять вторая. И т.д.

Где я туплю?


2D NoteWar

Сообщение отредактировал valeko - Понедельник, 01 Августа 2011, 22:31
GameMixДата: Вторник, 02 Августа 2011, 05:20 | Сообщение # 1935
старожил
Сейчас нет на сайте
Quote (valeko)
Я думал, что сколько башен не поставлю - все будут стрелять. Но стреляет только первая. Удаляю ее - начинает стрелять вторая. И т.д.
Где я туплю?

Может быть, переменная shoot меняется во всех экземплярах объекта башни?
Попробуй перед переменной shoot и alarm0 без пробела писать id. :
Code
if (distance_to_object(obj_vrag) < 150)  
{  
if id.shoot=1  
{instance_create(obj_tower.x,obj_tower.y,obj_bomba)  
id.shoot = 0  
id.alarm[0]=10}}


Steel Standoff - 2D аркада.
Мои статьи
Super-BosiakДата: Вторник, 02 Августа 2011, 07:20 | Сообщение # 1936
частый гость
Сейчас нет на сайте
Ладно, теперь пажаста ответьте ещё на несколько моих нупских вопросов:
1) Как анимацию запустить? cry И как сделать так, что бы разная анимация воспроизводилась при разных нажатия клавиш? Или допустим если я сталкиваюсь с танком, как воспроизвести анимацию как я туда сажусь?
2) Можно ли как ни будь сделать объект освещения, если в радиусе освещения объект, то его тень падает в другую сторону, как то так...
3) (я знаю как примерно это сделать, но всё же не точно и не полностью) Как сделать разные части тела, но что бы хп у них были общие?
4) Как сделать здания в которые можно входить и при входе не было видно крыши?
5) Как сделать что бы объект работал только при каком либо условии. На пример что бы танк ехал только при условии что с ним столкнулся игрок?(в смысле сел).

Короче ввопросы опять таки нупские, но я буду ждать ответа, так как знаю что тут есть добрые дядьки которые помогут мне в создании игр happy biggrin smile tongue cool


Уберите меня от клавиатуры
SalahAdDinДата: Вторник, 02 Августа 2011, 08:28 | Сообщение # 1937
постоянный участник
Сейчас нет на сайте
Quote (valeko)
Как заставить объект поворачиваться на нужный угол

Я кажется понял почему у тебя такая беда со спрайтом smile
Рисовать нужно не с помощью draw_sprite. Слишком мало настраиваемых аргументов.

Вот это должно сработать лучше. И можно указать вместо image_angle сразу direction если поворот спрайта не определен в другом событии:
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)


Фотошоп это не сложно. Немного теории, полезной на практике:
Работа с наложением текстур
Рисуем без планшета
valekoДата: Вторник, 02 Августа 2011, 10:03 | Сообщение # 1938
частый гость
Сейчас нет на сайте
Quote (SalahAdDin)
Может быть, переменная shoot меняется во всех экземплярах объекта башни?
Попробуй перед переменной shoot и alarm0 без пробела писать id.


Да, ты абсолютно прав, shoot меняется во всех экземплярах объекта башни. Но я думал, что т.к. не объявлял ее глобальной, она автоматически будет локальной для каждой башни.

И, к сожалению, после добавления id ничего не изменилось. sad


2D NoteWar
Лер_да_РимДата: Вторник, 02 Августа 2011, 10:34 | Сообщение # 1939
заслуженный участник
Сейчас нет на сайте
Хм, вообще если переменная не глобальна, она обязана быть локальной и меняться у каждого экземпляра отдельно.

Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

SalahAdDinДата: Вторник, 02 Августа 2011, 10:42 | Сообщение # 1940
постоянный участник
Сейчас нет на сайте
Quote (valeko)
Где я туплю?

Quote (valeko)
{instance_create(obj_tower.x,obj_tower.y,obj_bomba)

Убери указатель obj_tower из координат бомбы, не?


Фотошоп это не сложно. Немного теории, полезной на практике:
Работа с наложением текстур
Рисуем без планшета
Поиск:

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