Спасибо. Но как избежать ошибки Unable to find any instance for object index '7' name 'obj_sold' после деактивации объекта?
Не найден экземпляр объекта obj_sold. Без кода не понятно. Ищите, где вы пытаетесь обратиться к "солдату". Помните, что деактивированный объект не доступен для использования. Кстати, раз у вас много "солдатов", то можете передавать в "танк" ID того, кто им управляет в данный момент. И проверку на нажатие клавиши C лучше делать именно в "танке".
Сообщение отредактировал PAULVIT - Пятница, 05 Августа 2016, 22:53
Теперь понятно. Я думал, что представление отрицательных чисел бывает только одно (заменой левого бита на 1). Потом прочитал про дополнительный код. Спасибо за наводку.
Точно ли проверяются правильные координаты (к примеру, можно порой случайно проверять x, y вместо mouse_x, mouse_y)?
А я и так проверяю x и y, то есть центр спрайта. А в этой точке отсутствует маска.
ЦитатаYellowAfterlife ()
И отображается ли правильная форма маски в Mask Properties (кнопка "Modify Mask" в окне редактирования спрайта)?
Да, ставлю точную маску.
ЦитатаYellowAfterlife ()
Порой может понадобится отрегулировать Alpha Tolerance чтобы маска была правильной формы (если в изображении чрезмерно плавный переход и\или есть базовый уровень прозрачности)
Что такое Alpha Tolerance и базовый уровень прозрачности? Если это отсутствие каких-либо пикселей в спрайте, то да, такие имеются.
Добавлено (13 декабря 2015, 14:49) --------------------------------------------- Мне еще подсказали, что это может быть баг самого Game Maker.
Сообщение отредактировал PAULVIT - Воскресенье, 13 Декабря 2015, 14:46
Привет. Прописываю код if collision_point(x,y,object1,1,0) {рисую}. Проблема такова: программа рисует даже в том случае, если в точке (x,y) у спрайта отсутствуют пиксели. Маска стоит точная.
Добавил свой шрифт через font_add_sprite. Код начального символа выставил 1040 (он же ord('А')). Однако программа русские буквы не выводит на экран. С другими же символами дела обстоят нормально.