Это ничего не дало, однако решил просто установить VX 1.02, и всё заработало. Ещё раз спасибо за помощь. -)
Чар вижу. Надеюсь это поможет мне в решении одной моей проблемы.
Вид для печати
Это ничего не дало, однако решил просто установить VX 1.02, и всё заработало. Ещё раз спасибо за помощь. -)
Чар вижу. Надеюсь это поможет мне в решении одной моей проблемы.
Рад был помочь.
Эх, всё-же не совсем оно работает. Я обнаружил, что чар виден, только когда ячейка поставлена в верхний левый угол. (т-е ячейки всё равно остаются, к слову)
http://pic.ipicture.ru/uploads/091126/ZYD9eHS41E.jpg
Во всех остальных случаях он иссчезает. А мне как раз надо его приладить к герою. У меня получается, что когда герой ходит, то лишь изредка становится видимым. Возможно это могло бы лечиться фиксацией направления, но не в этом случае (т-к в игре задействовано, куда формально повёрнут герой). Может можно всё-таки сделать как-то, чтобы чар без ячеек был, сразу цельным?
Я знал про то что верху если кубик, то только видимо. Я думал тебе для сторонней графики. А чем тебе фиксация не устраивает? один раз в начале зафиксировал и ходи на здоровье.
Ну у меня в самой игре стоят варианты действия в зависимости от того, куда смотрит герой.
А почему одним спрайтом надо - ну это долгая история. Дело в том, что у меня слишком здоровые чарсеты в игре, и мэйкер тормозит, когда на экране часто сменяется один спрайт на другой, особенно если на экране несколько эвентов с такой графикой. Поэтому я хочу сделать размер чара как можно меньшим, не уменьшая при этом само изображение персонажа.
Рольф, не пытался больше сделать? Только что подумал... Возможно, от ячеек там и нельзя избавиться, так как это часть самого мэйкера, а не игры. Но может можно сделать так, чтобы было без разницы, куда поставить ячейку? Т-е чтобы куда бы ни поставил квадратик - изображение не менялось.
Я посмотрю когда время будет, но на выходных думаю не будет.
Редактор скриптов => Sprite_Character
Найти метод:
Заменить на:Цитата:
Update Transfer Origin Bitmap
Sprite_CharacterКод:def update_bitmap
if @tile_id != @character.tile_id or
@character_name != @character.character_name or
@character_index != @character.character_index
@tile_id = @character.tile_id
@character_name = @character.character_name
@character_index = @character.character_index
if @tile_id > 0
sx = (@tile_id / 128 % 2 * 8 + @tile_id % 8) * 32;
sy = @tile_id % 256 / 8 % 16 * 32;
self.bitmap = tileset_bitmap(@tile_id)
self.src_rect.set(sx, sy, 32, 32)
self.ox = 16
self.oy = 32
else
self.bitmap = Cache.character(@character_name)
@sign = @character_name[/^[\!\$\^]./]
if @sign != nil and @sign.include?('$')
@cw = bitmap.width / 3
@ch = bitmap.height / 4
elsif @sign != nil and @sign.include?('^')
@cw = bitmap.width
@ch = bitmap.height
else
@cw = bitmap.width / 12
@ch = bitmap.height / 8
end
self.ox = @cw / 2
self.oy = @ch
end
end
end
Найти метод:
Заменить на:Цитата:
Update Transfer Origin Rectangle
Менеджер ресурсов => Перед названием чарсета должен стоять знак '^' (без кавычек)Код:def update_src_rect
if @tile_id == 0
index = @character.character_index
pattern = @character.pattern < 3 ? @character.pattern : 1
if @sign != nil and @sign.include?('^')
self.src_rect = self.bitmap.rect
else
sx = (index % 4 * 3 + pattern) * @cw
sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
self.src_rect.set(sx, sy, @cw, @ch)
end
end
end
Комментарий:
В методе update_bitmap, sign теперь является локальной переменной доступной из любого места Sprite_Character. В регулярное выражение добавлен символ '^'.
Метод update_src_rect проверяет наличие знака '^' в названии чарсета и в этом случае не обращает внимание на направление чара и на параметры изображения, и в качестве области просмотра берет его полный размер.
Ага, хорошо, всё работает. И герой нормально передвигается. Большое спасибо! -)