Пятница, 29 Марта 2024, 14:01

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Не получается сделать радар (Ошибка в коде, или особенность GM?)
Не получается сделать радар
михаДата: Понедельник, 05 Сентября 2011, 15:47 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
В общем это код отрисовки врага на радаре.
obj_papa_zlyh - родитель всех врагов.
spr_enemy_R - спрайт врага на радаре
obj_radar_spr - Объект - картинка радара.
И в общем он по идее должен отрисовывать врагов на радаре, но рисует их около игрока ;(.

Quote
if instance_exists(obj_papa_zlyh)
{for (i=0; i<=instance_number(obj_papa_zlyh); i+=1)
{endraw=instance_find(obj_papa_zlyh,i)
if endraw!=noone
draw_sprite(spr_enemy_R,0,obj_radar_spr.x+(obj_hero.x-endraw.x/10),obj_radar_spr.y+(obj_hero.y-endraw.y/10))}}
Лер_да_РимДата: Понедельник, 05 Сентября 2011, 17:05 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
endraw - это же переменная? Переменные не имеют координат.

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

михаДата: Понедельник, 05 Сентября 2011, 19:13 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Лер_да_Рим,
Quote
endraw=instance_find(obj_papa_zlyh,i)
SalahAdDinДата: Понедельник, 05 Сентября 2011, 20:08 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Quote (миха)
obj_radar_spr.x+(obj_hero.x-endraw.x/10)

Человек который писал этот код наверное не задумывался как он будет работать не в конкретно его случае, но во всех других. Как и человек копипастивший код в свою игру не задумывался над тем, как этот код работает.
Quote (миха)
draw_sprite(spr_enemy_R,0,obj_radar_spr.x+(obj_hero.x-endraw.x/10),obj_radar_spr.y+(obj_hero.y-endraw.y/10))}}

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


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


Сообщение отредактировал SalahAdDin - Понедельник, 05 Сентября 2011, 20:18
михаДата: Вторник, 06 Сентября 2011, 14:34 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
SalahAdDin, код мой личный. Вот формула: x(серединняя точка) радара+(х героя-х врага/число во сколько раз меньше). Что неправильно, объясните толком.
SalahAdDinДата: Вторник, 06 Сентября 2011, 20:32 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Рассмотрим пример когда obj_radar_spr находится в позиции 15, obj_hero в позиции 20, а endraw в позиции 30.

По формуле
obj_radar_spr.x+(obj_hero.x-endraw.x/10)
15+((20-30)/10)=14
Позиция 14 находится левее от центра радара, в то время как позиция 30 (враг) находится правее позиции 20 (герой). Формула не работает, что тут обьяснять?


Фотошоп это не сложно. Немного теории, полезной на практике:
Работа с наложением текстур
Рисуем без планшета
FenMixДата: Вторник, 06 Сентября 2011, 20:49 | Сообщение # 7
Независимый игровой журналист
Сейчас нет на сайте
Quote (Лер_да_Рим)
endraw - это же переменная? Переменные не имеют координат.


Имеют. Переменной можно присваивать определенное значение, в данном случае координату с какого-то объекта и мгновенно передавать это радару, радар собственно уже показывает графическую таблицу. А лучше использовать сохранение координат Х и У в массиве.
Лер_да_РимДата: Вторник, 06 Сентября 2011, 22:18 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
FenMix, но по сути переменные не имею координат. Я всё же прав. Ты перечислил возможности их присвоения.

SalahAdDin, ты ошибся. Не 15+((20-30)/10), а 15+(20-30/10), что будет равняться 32-ум.


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

SalahAdDinДата: Вторник, 06 Сентября 2011, 22:49 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
Quote (Лер_да_Рим)
SalahAdDin, ты ошибся. Не 15+((20-30)/10), а 15+(20-30/10), что будет равняться 32-ум.

Да немножко ошибся в расчетах biggrin
17 пикселей до радара выходит, а при десятикратном уменьшении это должно быть координатой 170 пикселя. То есть масштабирования в 10 раз все равно не происходит.
Разве только переписать формулу вот так obj_radar_spr.x+((endraw.x-obj_hero.x)/10)


Фотошоп это не сложно. Немного теории, полезной на практике:
Работа с наложением текстур
Рисуем без планшета
михаДата: Среда, 07 Сентября 2011, 11:14 | Сообщение # 10
почти ветеран
Сейчас нет на сайте
В общем нифига не выйдет sad
LunarPixelДата: Среда, 07 Сентября 2011, 16:38 | Сообщение # 11
старожил
Сейчас нет на сайте
Вот, посмотри примерчик: http://zalil.ru/31662137
Пойдет такой радар?! smile


SalahAdDinДата: Среда, 07 Сентября 2011, 19:10 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
Quote (миха)
В общем нифига не выйдет

Ты внимательно читал?
Это не работает - obj_radar_spr.x+((endraw.x-obj_hero.x)/10)?


Фотошоп это не сложно. Немного теории, полезной на практике:
Работа с наложением текстур
Рисуем без планшета
михаДата: Четверг, 08 Сентября 2011, 12:59 | Сообщение # 13
почти ветеран
Сейчас нет на сайте
LunarPixel, СПАСИБО ОГРОМНОЕ!!!
Лер_да_РимДата: Четверг, 08 Сентября 2011, 14:10 | Сообщение # 14
заслуженный участник
Сейчас нет на сайте
LunarPixel, а он сам не мог сделать этого? Зайти на мизистик, допустим, на хеллрум... и найти там десятки, если не сотни, примеров. Поражаюсь я современной беззаботности нубов и очевидным неумением делать что-то самому.

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

Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Не получается сделать радар (Ошибка в коде, или особенность GM?)
  • Страница 1 из 1
  • 1
Поиск:

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