Среда, 27 Ноября 2024, 17:26

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Помогите разобраться!
ИнтернетДата: Воскресенье, 24 Мая 2015, 13:52 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
При уничтожении головы у врага должно удалятся часть туловища ( потом добавлю анимацию и тд) но получается что удаляется эта часть у всех врагов как исправить
исходник


Сообщение отредактировал Интернет - Воскресенье, 24 Мая 2015, 15:02
Raven84Дата: Воскресенье, 24 Мая 2015, 14:17 | Сообщение # 2
старожил
Сейчас нет на сайте
Интернет, Исходник не смотрел. Некогда качать и разбираться. Но суть проблемы и причина совершенно ясны. Проблема в том, что ты удаляешь "часть туловища" у ОБЪЕКТА. По этому она удаляется у всех врагов. Нужно же эту "часть туловища" удалять у ОБРАЗЦА ОБЪЕКТА, узнав его id.
Все объекты в Game Maker имеют свой уникальный номер id (его видно в редакторе комнаты снизу, когда ты наводишь курсором на объекты). Обращаясь к объекту по имени объекта и делая какую-нибудь с ним операцию, это происходит со всеми образцами. Если же ты обращаешься именно к одному из образцов объекта (к его id), то эта операция происходит только с ним и ни с чем больше.
Твоя задача узнать id того врага, у которого ты хочешь удалить "часть туловища". Сделать это не сложно. В справке все есть. Но если честно это все базовый уровень, основы. wacko

Добавлено (24 мая 2015, 14:17)
---------------------------------------------
Можно к примеру воспользоваться таким кодом:

Код
enemy=instance_position(x,y,Vrag)
with(enemy) {тут пишем код удаления части туловища}

Т.е. мы узнаем id объекта Vrag (имя объекта врага, я не знаю какое оно у тебя) который находится в координатах x и y и записываем этот самый id в переменную enemy.
Все теперь мы можем делать с ним (ОДНИМ) все что угодно. Тут я использовал функцию with.


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


Сообщение отредактировал Raven84 - Воскресенье, 24 Мая 2015, 14:12
ИнтернетДата: Воскресенье, 24 Мая 2015, 14:24 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
всё равно удаляются все части такого типа
Raven84Дата: Воскресенье, 24 Мая 2015, 14:36 | Сообщение # 4
старожил
Сейчас нет на сайте
Интернет, Код хоть выложи что ли тогда! biggrin Ты просто в коде где-то делаешь ошибку. Какой уровень владения GML вообще?

Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
ИнтернетДата: Воскресенье, 24 Мая 2015, 14:43 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
может в этом ошибка например привязываю я несколько объектов к одному чтобы получился враг пишу
в Create главного объекта
a=instance_create(x,y,ruka)
a.sruka = id;
а в самом объекте например в руке пишу вот
в End Step
x = sruka.x-10;
y = sruka.y-10;
так вот я к чему я пробовал вот так
id_ruka = instance_create(x, y, ruka);
with (id_ruka) instance_destroy();
не помогло, я просто думаю, что это из за привязки объектов происходит а твой код прописал так
enemy=instance_position(x,y,ruka)
with(enemy) {instance_destroy()}
тоже как ни странно при уничтожении головы удаляются все экземпляры руки,справку посмотрел подходящего не нашел,не проще взглянуть исходник?
ибо руки кривые biggrin
Какой уровень владения GML вообще?
ну это 4 игра до этого сделал лабиринт потом примитивную стрелялку потом платформер с гравитацией и теперь эта вот.


Сообщение отредактировал Интернет - Воскресенье, 24 Мая 2015, 14:46
Raven84Дата: Воскресенье, 24 Мая 2015, 14:53 | Сообщение # 6
старожил
Сейчас нет на сайте
Интернет,
Цитата
не проще взглянуть исходник?

Я уже понял, что проще в исходнике покопаться, но ты не правильно его выложил. При открытии этого файла выдает кучу ошибок. Нужно не только один файл выкладывать, но и все папки идущие с ним.

Добавлено (24 мая 2015, 14:53)
---------------------------------------------
Интернет,

Цитата
id_ruka = instance_create(x, y, ruka);
with (id_ruka) instance_destroy();
не помогло, я просто думаю, что это из за привязки объектов происходит а твой код прописал так
enemy=instance_position(x,y,ruka)
with(enemy) {instance_destroy()}

Вопрос в том, куда ты пишешь первые строчки кода и вторые? В каком объекте, в каком событии?

Добавлено (24 мая 2015, 14:53)
---------------------------------------------
Я если честно с твоего текста ничего не понял. biggrin Создай архив, и перезалей. Тогда только думаю будет толк. wacko


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
ИнтернетДата: Воскресенье, 24 Мая 2015, 15:02 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
перезалил
Raven84Дата: Воскресенье, 24 Мая 2015, 15:28 | Сообщение # 8
старожил
Сейчас нет на сайте
Даааааа!!! Такого нагромаждения строк я давно не видал!!! wacko wacko wacko
Даже не понял для чего столько лишнего и не стал вникать в код. Просто добавил пару строчек. Код можно урезать в десять раз! Столько всего лишнего!!! biggrin
Короче исправлять ничего не стал, а просто написал в твоем же стиле. Короче совет тебе: учиться и еще раз учиться! wink

Проверяй. Так? smile
Ссылка на скачку архива


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
ИнтернетДата: Воскресенье, 24 Мая 2015, 15:42 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
спс, буду учиться biggrin

Сообщение отредактировал Интернет - Воскресенье, 24 Мая 2015, 15:43
  • Страница 1 из 1
  • 1
Поиск:

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