- Сообщений: 3147
- Спасибо получено: 2651
[XP]Параллакс - Попиксельное смещение для ивентов
12 года 11 мес. назад - 11 года 2 мес. назад #60612
от DeadElf79
[XP]Параллакс - Попиксельное смещение для ивентов
Предыстория:
Однажды мне захотелось, чтобы игрок запрыгнул на бочку из стандартного тайлсета. Сделал бочку, сделал событие, в котором персонаж запрыгивал и... тут понял, что ничего не получается! Персонаж запрыгивал и вставал либо над бочкой, либо рядом с ней, как я ни пробовал, как ни старался, ничего не получалось.
Решение пришло ко мне быстро и оно было самым простым - изменить тайлсет и бочку в ней.
Чуть позже, понаменяв кучу объектов, на которые я хотел бы запрыгнуть, мне подумалось, что самое просто решение - не самое лучшее. И тогда я начал писать этот скрипт.
Описание:
Скрипт позволяет сместить ивент с помощью комментариев на указанное количество пикселей.
Также, можно сместить ивент еще и с помощью команды вызова скрипта.
Использование:
Комментарии:
Смещение как по X, так и по Y пишем в одну строку комментария.
Примеры:
- смещает ивент на 13 пикселей вправо
- смещает на 48 пикселей вниз
- смещает на 14 вправо и 27 вниз
Вызов скрипта:
Номер_ивента - номер события, для которого нужно выполнить смещение.
Смещение_X - значение, на которое происходит смещение по X от начальной позиции
Смещение_Y - значение, на которое происходит смещение по Y от начальной позиции
Ограничения:
Предыстория:
Однажды мне захотелось, чтобы игрок запрыгнул на бочку из стандартного тайлсета. Сделал бочку, сделал событие, в котором персонаж запрыгивал и... тут понял, что ничего не получается! Персонаж запрыгивал и вставал либо над бочкой, либо рядом с ней, как я ни пробовал, как ни старался, ничего не получалось.
Решение пришло ко мне быстро и оно было самым простым - изменить тайлсет и бочку в ней.
Чуть позже, понаменяв кучу объектов, на которые я хотел бы запрыгнуть, мне подумалось, что самое просто решение - не самое лучшее. И тогда я начал писать этот скрипт.
Описание:
Скрипт позволяет сместить ивент с помощью комментариев на указанное количество пикселей.
Также, можно сместить ивент еще и с помощью команды вызова скрипта.
Использование:
Комментарии:
Смещение как по X, так и по Y пишем в одну строку комментария.
Примеры:
Code:
[ox+13]
Code:
[oy+48]
Code:
[oy+14][ox+27]
Вызов скрипта:
Code:
@event=$game_map.events[номер_ивента]
@event.moveto(@event.x,@event.y,смещение_x,смещение_y)
Смещение_X - значение, на которое происходит смещение по X от начальной позиции
Смещение_Y - значение, на которое происходит смещение по Y от начальной позиции
Ограничения:
- [strike]Можно смещать событие только в сторону увеличения, то есть можно ox+16, но нельзя ox-16[/strike] Исправлено, скрипт обновлен
- К сожалению, пока нет смещения для области столкновения, при смещении ивент становится только проходимым. Попробую исправить в ближайшее время.
ВНИМАНИЕ: Спойлер!
Code:
class Game_Character
attr_accessor :ox
attr_accessor :oy
alias some_def initialize
def initialize
some_def
@ox=0
@oy=0
end
def moveto(x, y,ox=0,oy=0)
@x = x
@y = y
@ox=ox
@oy=oy
@real_x = @x * 128+@ox*4
@real_y = @y * 128+@oy*4
end
def moving?
return (@real_x != @x * 128+@ox*4 or @real_y != @y * 128+@oy*4)
end
end
class Game_Event < Game_Character
alias old_refresh refresh
def refresh
old_refresh
setup_by_comments
end
def setup_by_comments
unless @erased && @list.nil?
for command in @list
if command.code == 108
for i in 0...command.parameters.size
if command.parameters[i].include?("[ox") or
command.parameters[i].include?("[oy") then
if command.parameters[i].scan(/\[ox[\+\-]([0-9]+)\]/)
@ox=$1.to_i
end
if command.parameters[i].scan(/\[oy[\+\-]([0-9]+)\]/)
@oy=$1.to_i
end
moveto(@event.x, @event.y,@ox,@oy)
end
end
return
end
end
end
end
end
Последнее редактирование: 11 года 2 мес. назад пользователем DeadElf79.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Agckuu_Coceg
-
- Не в сети
- Живу я здесь
-
- Простой Гинтокист с огромной внутренней ленью.
Скрыть
Больше
- Сообщений: 1549
- Спасибо получено: 329
12 года 11 мес. назад - 12 года 11 мес. назад #60613
от Agckuu_Coceg
Agckuu_Coceg ответил в теме [XP]Параллакс - Попиксельное смещение для ивентов
Эльф, мой тебе совет: познавай гугл-фу. Многие проблемы решает его познание.
XP код...
VX код...
Вызывается кодом: evmove(x-offset, y-offset, [id]) или просто параллельным: evmove(x-offset, y-offset)
Работает в обоих направлениях.
XP код...
ВНИМАНИЕ: Спойлер!
Code:
def evmove(pk_evm_x,pk_evm_y,
pk_evm_id = @event_id)
$game_map.events[pk_evm_id].moveto(
$game_map.events[pk_evm_id].x+
pk_evm_x*0.03125,
$game_map.events[pk_evm_id].y+
pk_evm_y*0.03125)
end
VX код...
ВНИМАНИЕ: Спойлер!
Code:
def evmove(pk_evm_x,pk_evm_y,
pk_evm_id = @event_id)
$game_map.events[pk_evm_id].moveto(
$game_map.events[pk_evm_id].x+
pk_evm_x*0.03125,
$game_map.events[pk_evm_id].y+
pk_evm_y*0.03125)
end
Вызывается кодом: evmove(x-offset, y-offset, [id]) или просто параллельным: evmove(x-offset, y-offset)
Работает в обоих направлениях.
Огромный любитель среброволосых или пепельноволосых 2D-девушек с хорошим характером или со скрытыми привлекательными чертами.
Последнее редактирование: 12 года 11 мес. назад пользователем Agckuu_Coceg.
Спасибо сказали: DeadElf79
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
12 года 11 мес. назад - 12 года 11 мес. назад #60614
от DeadElf79
DeadElf79 ответил в теме [XP]Параллакс - Попиксельное смещение для ивентов
Спасибо.
Ладно, я рад, что сам решение нашел, пусть и с ограничениями)) А то, что не всегда и не во всем гугл использую - тут уж меня прошу простить))
К тому же, темы на форуме вроде не было, так что мало ли, кому еще пригодится.
Кстати, мне кажется или два примера кода одинаковы?)
Ладно, я рад, что сам решение нашел, пусть и с ограничениями)) А то, что не всегда и не во всем гугл использую - тут уж меня прошу простить))
К тому же, темы на форуме вроде не было, так что мало ли, кому еще пригодится.
Кстати, мне кажется или два примера кода одинаковы?)
Последнее редактирование: 12 года 11 мес. назад пользователем DeadElf79.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- strelokhalfer
-
- Не в сети
- Живу я здесь
-
- Знатный грамотей
Скрыть
Больше
- Сообщений: 1640
- Спасибо получено: 1080
12 года 11 мес. назад #60615
от strelokhalfer
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
strelokhalfer ответил в теме [XP]Параллакс - Попиксельное смещение для ивентов
Вниз нельзя, да? Жаль, поправишь, надеюсь.
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
12 года 11 мес. назад - 12 года 11 мес. назад #60616
от DeadElf79
DeadElf79 ответил в теме [XP]Параллакс - Попиксельное смещение для ивентов
Стрелок, можно только вниз и вправо. Но мне кажется, таким образом при попиксельном размещении можно и так довольно точно подогнать)
Отредактировал первый пост, добавил пояснений к примерам.
Отредактировал первый пост, добавил пояснений к примерам.
Последнее редактирование: 12 года 11 мес. назад пользователем DeadElf79.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Agckuu_Coceg
-
- Не в сети
- Живу я здесь
-
- Простой Гинтокист с огромной внутренней ленью.
Скрыть
Больше
- Сообщений: 1549
- Спасибо получено: 329
12 года 11 мес. назад #60617
от Agckuu_Coceg
Agckuu_Coceg ответил в теме [XP]Параллакс - Попиксельное смещение для ивентов
Оу, они и правда идентичны. Просто я выдирал их из двух разных проектов.
Ну, собственно ты можешь взглянуть в эти примеры и подправить свою версию, благо код работает во всех направлениях.
Ну, собственно ты можешь взглянуть в эти примеры и подправить свою версию, благо код работает во всех направлениях.
Огромный любитель среброволосых или пепельноволосых 2D-девушек с хорошим характером или со скрытыми привлекательными чертами.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
12 года 11 мес. назад #60618
от DeadElf79
DeadElf79 ответил в теме [XP]Параллакс - Попиксельное смещение для ивентов
Так, с этим кодом мне придется дорабатывать еще немного больше - после его использования пропадает любая непроходимость ивента. По крайней мере, при смещении на 3,3 пропала совсем.
Еще подумаю над этим.
Еще подумаю над этим.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- strelokhalfer
-
- Не в сети
- Живу я здесь
-
- Знатный грамотей
Скрыть
Больше
- Сообщений: 1640
- Спасибо получено: 1080
12 года 11 мес. назад #60619
от strelokhalfer
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
strelokhalfer ответил в теме [XP]Параллакс - Попиксельное смещение для ивентов
Да, перепутал, координация в мейкере странная все же)
Жаль скрипт на xp, но я видел подобное и на ace
Жаль скрипт на xp, но я видел подобное и на ace
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
12 года 11 мес. назад #60620
от DeadElf79
DeadElf79 ответил в теме [XP]Параллакс - Попиксельное смещение для ивентов
Это не только в мейкере, это вообще во всем компьютерном)) Как завершу работу со столкновениями, скрипт на эйс будет портирован, не волнуйся)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.098 секунд
