| Нужна помощь с проектом в Game Maker | 
|  | 
| 
| SovaDeveloper | Дата: Воскресенье, 23 Октября 2016, 01:43 | Сообщение # 1 |  | был не раз Сейчас нет на сайте | http://rgho.st/8BP6P2JZB - Исходник игры 
 Кому не сложно подскажите как исправить:
 1) При столкновении игрок застревает в стенах/башнях/ деревьях
 2)При смерти игрока , враг продолжает идти к его координатам, и выдает ошибку, т.к. объекта игрока уже нету в комнате
 3) Сделать спавн 1. Врагов 2.Сердечек 3.Монеток в абсолютно случайных местах в комнате
 
 Заранее огромное человеческое спасибо!!!!
 |  |  |  |  | 
| 
| TLT | Дата: Воскресенье, 23 Октября 2016, 13:01 | Сообщение # 2 |  |   
 Сейчас нет на сайте | Для нормального столкновения настрой маски столкновений для ВСЕХ спрайтов: персонаж, деревья, монстры и т.д. Например, так: 
 
   
 Дао, выраженное словами, не есть истинное Дао.
 |  |  |  |  | 
| 
| SovaDeveloper | Дата: Воскресенье, 23 Октября 2016, 16:21 | Сообщение # 3 |  | был не раз Сейчас нет на сайте | TLT, , спасибо! А насчет остальных моих вопросов можешь подсказать?   + Репа)
 
 
 Сообщение отредактировал SovaDeveloper - Воскресенье, 23 Октября 2016, 18:43 |  |  |  |  | 
| 
| Losiah | Дата: Воскресенье, 23 Октября 2016, 17:23 | Сообщение # 4 |  |   почетный гость Сейчас нет на сайте | Я не специалист но я бы сделал так. 1 я бы использовал для всех объектов и персонажей -> объект со спрайтом квадратика(определённых размеров) а уже в функции драв писал какой спрайт должен рисоваться (но это я).
 2 напиши в шапку аи врага "идти к персонажу" глобальное условие типо как if (global.go_hero==true) {тут код преследование} если твой герой умер то отключаешь эту функцию.
 3 весь спавн лучше сделать через таймлайн. указываешь нужный период и в конце вернуть к началу прописываешь. в тайм лайне прописываешь функцию instance_create(irandom(x),irandom(y),(сердце монетка или враг)) таким образом каждую минуту(к примеру) появляется => враг, монетка и тд.
 irandom(50) - рандомное целое число от 0 до 50.
 irandom_range(20,50) - рандомное целое число от 20 до 50.
 
 Добавлено (23 октября 2016, 17:23)
 ---------------------------------------------
 я делал некоторого рода поделку с таймлайном и прочим тут 4 разных уровня и очень много примеров разных механик. "генерация мира" "торговля" "чат" "хождение по мировой карте" "чтение заклинаний" "предметы отбрасывают тень по времени дня"
 чтобы перейти к примеру №2 клик на логотип.
 чтобы перейти к примеру №3 клик на город.
 чтобы перейти к примеру №4 подойти к краю карты.
 
 
 сам макет gms не прикладываю, так как смотреть в мой код всё равно что стрелять себе в ногу, если сильно надо буде пиши в личку
 
 
   
 
 Сообщение отредактировал Losiah - Воскресенье, 23 Октября 2016, 17:57 |  |  |  |  | 
| 
| SovaDeveloper | Дата: Воскресенье, 23 Октября 2016, 18:43 | Сообщение # 5 |  | был не раз Сейчас нет на сайте | Losiah, Сложна....  Я в Game Maker от силы неделю разбираюсь, и очень много не знаю, а курсовая сама не напишется.... Буду пробовать! Спасибо за совет, лови репу!)
 |  |  |  |  | 
| 
| Quad69 | Дата: Воскресенье, 23 Октября 2016, 19:04 | Сообщение # 6 |  | заслуженный участник Сейчас нет на сайте | Может быть проблема с маской, или код движения/столкновения кривой.Цитата SovaDeveloper (  ) 1) При столкновении игрок застревает в стенах/башнях/ деревьях
 
 Добавь ещё одно условие: instance_exists(проверяемый_объект) - Вернёт true есть проверяемый_объект есть в комнате.Цитата SovaDeveloper (  ) 2)При смерти игрока , враг продолжает идти к его координатам, и выдает ошибку, т.к. объекта игрока уже нету в комнате
 
 Цитата SovaDeveloper (  ) 3) Сделать спавн 1. Врагов 2.Сердечек 3.Монеток в абсолютно случайных местах в комнатеКод instance_create(irandom(room_width),irandom(room_height),объект)
 
 Сообщение отредактировал maksim1221232 - Воскресенье, 23 Октября 2016, 19:04 |  |  |  |  | 
| 
| JohnnyHam | Дата: Воскресенье, 23 Октября 2016, 21:01 | Сообщение # 7 |  |   MadBro Сейчас нет на сайте | Не волнуйся... Через несколько месяцев так будешь шпарить, как Боженька   
 Чем лучше—тем хуже
 |  |  |  |  | 
| 
| SovaDeveloper | Дата: Воскресенье, 23 Октября 2016, 23:27 | Сообщение # 8 |  | был не раз Сейчас нет на сайте | maksim1221232, Вот с 3 вопросом ты мне помог, начсет остального я опять же повторюсь, что плохо шарю в GM   Тем не мение + в репу)!
 Добавлено (23 октября 2016, 23:27)---------------------------------------------
 JohnnyHam, Надеюсь!)
 
 
 Сообщение отредактировал SovaDeveloper - Воскресенье, 23 Октября 2016, 23:27 |  |  |  |  | 
| 
| Losiah | Дата: Воскресенье, 23 Октября 2016, 23:42 | Сообщение # 9 |  |   почетный гость Сейчас нет на сайте | Смотри - у тебя есть объект ВРАГ. в нём (скорее всего в step) написан скрипт на преследования твоего героя. берёшь весь скрипт и в начале пишешь 
 if instance_exists(главный_герой_объект)
 {
 
 // твой скрипт
 
 }
 
 всё что попадает между { } перед условием if. будет выполнятся в том случае если условие if выполняется.
 то есть:
 если существует(главный_герой)
 то выполнить -> { // твой скрипт }
 
 P.S. лучше будет если ты скинешь свой проект чтобы мы могли более толково рассказать
 
 
   
 
 Сообщение отредактировал Losiah - Воскресенье, 23 Октября 2016, 23:44 |  |  |  |  | 
| 
| Quad69 | Дата: Воскресенье, 23 Октября 2016, 23:53 | Сообщение # 10 |  | заслуженный участник Сейчас нет на сайте | Цитата Losiah (  ) P.S. лучше будет если ты скинешь свой проект чтобы мы могли более толково рассказать 
 Цитата SovaDeveloper (  ) http://rgho.st/8BP6P2JZB - Исходник игры |  |  |  |  | 
| 
| Losiah | Дата: Понедельник, 24 Октября 2016, 00:03 | Сообщение # 11 |  |   почетный гость Сейчас нет на сайте | if instance_exists(o_player) в самое начало скрипт в степах у о_enemy 
 в o_enemyball, в create вот так должно быть
 if instance_exists(o_player)
 {
 move_towards_point(o_player.x, o_player.y, 10);
 image_angle = direction;
 }
 
 
   
 
 Сообщение отредактировал Losiah - Понедельник, 24 Октября 2016, 00:10 |  |  |  |  | 
| 
| SovaDeveloper | Дата: Понедельник, 24 Октября 2016, 00:34 | Сообщение # 12 |  | был не раз Сейчас нет на сайте | Losiah, теперь при смерти игрока ошибок не выдает!!!! О ЧУДО  Спасибо! Вопросов еще много
   У меня в степе героя последней строчкой идет if heslth < 1 room_previous(main), при смерти игрока переход в меню собственно не осуществляется, почему?
 |  |  |  |  | 
| 
| Losiah | Дата: Понедельник, 24 Октября 2016, 00:39 | Сообщение # 13 |  |   почетный гость Сейчас нет на сайте | room_previous(numb) Возвращает индекс предыдущей комнаты (-1 = ничего), но не совершает переход в неё. room_goto(numb) Совершает переход в комнату с идентификатором numb.
 
 
   |  |  |  |  | 
| 
| SovaDeveloper | Дата: Понедельник, 24 Октября 2016, 00:44 | Сообщение # 14 |  | был не раз Сейчас нет на сайте | Losiah, Собственно вот http://rgho.st/8MMHZT9fR 
 
 
 Сообщение отредактировал SovaDeveloper - Понедельник, 24 Октября 2016, 00:45 |  |  |  |  | 
| 
| Losiah | Дата: Понедельник, 24 Октября 2016, 00:51 | Сообщение # 15 |  |   почетный гость Сейчас нет на сайте | нету комнаты номер 1. название комнаты пиши в (numb) то есть room_goto(Main) 
 
   
 
 Сообщение отредактировал Losiah - Понедельник, 24 Октября 2016, 00:52 |  |  |  |  | 
| 
| SovaDeveloper | Дата: Понедельник, 24 Октября 2016, 00:53 | Сообщение # 16 |  | был не раз Сейчас нет на сайте | Losiah, Так а я ж вроде так и написал.... if health < 1 room_goto(Main)
 Сорян за мою тупость
   |  |  |  |  | 
| 
| Losiah | Дата: Понедельник, 24 Октября 2016, 01:11 | Сообщение # 17 |  |   почетный гость Сейчас нет на сайте | if health < 1 room_goto(room_first) напиши так. это мой косяк а не твой. я ещё много чего не знаю   
 
   |  |  |  |  | 
| 
| SovaDeveloper | Дата: Понедельник, 24 Октября 2016, 01:15 | Сообщение # 18 |  | был не раз Сейчас нет на сайте | maksim1221232, Вообщем-то твой способ со спавном работает, опять же спасибо!) Но возникла проблемка, они спавнятся где попало то есть , на твердых объектах в том числе, куда не может долететь пуля, или сам герой не может туда пройти, как быть? 
 Добавлено (24 октября 2016, 01:15)---------------------------------------------
 Losiah, Ты себе не представляешь как ты меня выручаешь!) Можешь объяснить почему пишем room_first а не название комнаты?
 |  |  |  |  | 
| 
| Losiah | Дата: Понедельник, 24 Октября 2016, 01:24 | Сообщение # 19 |  |   почетный гость Сейчас нет на сайте | судя по всему комнатам надо присваивать индекс и указывать в скобках. room_first отсылка к индексу первой комнаты. 
 
   |  |  |  |  | 
| 
| SovaDeveloper | Дата: Понедельник, 24 Октября 2016, 01:27 | Сообщение # 20 |  | был не раз Сейчас нет на сайте | Losiah, угуууу, впринципе понял Такс) Я ушел, время уже позднее, пора отдыхать, надеюсь завтра поможешь мне еще с несколькими вопросами, еще раз спасибо, без тебя вряд ли с чем-либо разобрался бы....)
 |  |  |  |  |