- Сообщений: 2269
- Спасибо получено: 1182
"Разлом" карты
Скрыть
Больше
12 года 10 мес. назад - 12 года 10 мес. назад #61234
от Cerberus
Жуть болотная, на лапках, в тапках и с пулемётом...
Cerberus создал тему: "Разлом" карты
Всё-таки иногда я скучаю по "красивостям" старого доброго RM2k3. Например, там было множество возможностей красиво перенестись с карты на карту - а иногда и не только красиво, но ещё и со смыслом. Например - показать, что "земля развёрзлась под ногами", разломив карту на четыре части.
В RMVXA такого, к сожалению, не предусмотрено. Но - мы и сами с усами!
Запускается короткой и простой командой - Division.start.
Демо
Жду критики от матёрых скриптеров, ибо наверняка сделал не оптимально. Но, по крайней мере, пока мне этот скрипт сломать не удалось
В RMVXA такого, к сожалению, не предусмотрено. Но - мы и сами с усами!
Code:
=begin
Скрипт перемещения с анимацией "деления карты на четыре части"
Автор: Cerberus
=end
module Division
@map_bitmap = nil
@trans_sprite = nil
@trans_viewport = nil
@turn = -1
@tr_rect = Rect.new
@black = Color.new(0, 0, 0, 255)
@divided = false
def self.start
@map_bitmap = Graphics.snap_to_bitmap
@trans_viewport = Viewport.new(0, 0, 544, 416)
@trans_sprite = Sprite.new(@trans_viewport)
@turn = 52
@trans_sprite.bitmap = Bitmap.new(544, 416)
@trans_sprite.bitmap.blt(0, 0, @map_bitmap, @tr_rect);
@trans_sprite.x = 0
@trans_sprite.y = 0
@trans_sprite.z = 1000
@trans_viewport.z = 1000
@trans_sprite.visible = true
@trans_viewport.visible = true
end
def self.turn
@turn
end
def self.divided
@divided
end
def self.divided= (val)
@divided=val
end
def self.update
print "Updating division... ", @turn, " "
stop if (turn==0)
shift if (turn>0)
end
def self.shift
print "Shifting... "
@tr_rect.set(@trans_viewport.rect.width / 2 - 4, 0, 8, @trans_viewport.rect.height)
@map_bitmap.fill_rect(@tr_rect, @black);
@tr_rect.set(0, @trans_viewport.rect.height / 2 - 4, @trans_viewport.rect.width, 8)
@map_bitmap.fill_rect(@tr_rect, @black);
@tr_rect.set(4, 4, @trans_viewport.rect.width / 2 - 4, @trans_viewport.rect.height / 2 - 4)
@map_bitmap.blt(0, 0, @trans_sprite.bitmap, @tr_rect)
@tr_rect.set(@trans_viewport.rect.width / 2, 4, @trans_viewport.rect.width / 2 - 4, @trans_viewport.rect.height / 2 - 4)
@map_bitmap.blt(@trans_viewport.rect.width / 2 + 4, 0, @trans_sprite.bitmap, @tr_rect)
@tr_rect.set(4, @trans_viewport.rect.height / 2, @trans_viewport.rect.width / 2 - 4, @trans_viewport.rect.height / 2 - 4)
@map_bitmap.blt(0, @trans_viewport.rect.height / 2 + 4, @trans_sprite.bitmap, @tr_rect)
@tr_rect.set(@trans_viewport.rect.width / 2, @trans_viewport.rect.height / 2, @trans_viewport.rect.width / 2 - 4, @trans_viewport.rect.height / 2 - 4)
@map_bitmap.blt(@trans_viewport.rect.width / 2 + 4, @trans_viewport.rect.height / 2 + 4, @trans_sprite.bitmap, @tr_rect)
@tr_rect.set(0, 0, @trans_viewport.rect.width, @trans_viewport.rect.height)
@trans_sprite.bitmap.blt(0, 0, @map_bitmap, @tr_rect)
@turn-=1
end
def self.stop
@turn = -1
@divided = true
end
def self.dispose
@map_bitmap.dispose
@trans_sprite.bitmap.dispose
@trans_sprite.dispose
@trans_viewport.dispose
@divided = false
end
end
class Scene_Base
alias divis_update update
def update
if Division.turn>=0
Division.update
print "Divis.upd ", Division.turn, "\n"
end
divis_update
end
end
class Game_Interpreter
def run
wait_for_message
while @list[@index] do
Fiber.yield while Division.turn>=0
execute_command
@index += 1
end
Fiber.yield
@fiber = nil
end
alias divis_fadeout command_221
def command_221
if Division.divided
screen.start_fadeout (1)
Division.dispose
else
divis_fadeout
end
end
end
class Scene_Map < Scene_Base
alias divis_pre_transfer pre_transfer
def pre_transfer
if Division.divided
@map_name_window.close
Graphics.brightness = 0
$game_temp.fade_type = 0
Division.dispose
else
divis_pre_transfer
end
end
end
Демо
Жду критики от матёрых скриптеров, ибо наверняка сделал не оптимально. Но, по крайней мере, пока мне этот скрипт сломать не удалось
Жуть болотная, на лапках, в тапках и с пулемётом...
Последнее редактирование: 12 года 10 мес. назад пользователем Cerberus.
Спасибо сказали: alexander85
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- KoHcTPyKTop
-
- Не в сети
- Захожу иногда
-
Скрыть
Больше
- Сообщений: 186
- Спасибо получено: 16
12 года 10 мес. назад #61235
от KoHcTPyKTop
KoHcTPyKTop ответил в теме "Разлом" карты
а для xp есть?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
12 года 10 мес. назад #61236
от caveman
caveman ответил в теме "Разлом" карты
а я нашел нечто подобное (transitions зовутся) просто евентами с вызовом уже существующих стандартных скриптов
forums.rpgmakerweb.com/index.php?/topic/...nsitionsscreen-wipe/
И для XP, и для аси
осталось подобрать картинку разлома
forums.rpgmakerweb.com/index.php?/topic/...nsitionsscreen-wipe/
И для XP, и для аси
осталось подобрать картинку разлома
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Скрыть
Больше
- Сообщений: 2269
- Спасибо получено: 1182
12 года 10 мес. назад - 12 года 10 мес. назад #61237
от Cerberus
Жуть болотная, на лапках, в тапках и с пулемётом...
Cerberus ответил в теме "Разлом" карты
Для XP я, к сожалению, скриптинг пока не осваивал. Мне бы в Эйсе наловчиться 
caveman, такой метод, если я не ошибаюсь, не позволяет смещать изображение во время перехода. Мой скрипт заточен именно на это.
caveman, такой метод, если я не ошибаюсь, не позволяет смещать изображение во время перехода. Мой скрипт заточен именно на это.
Жуть болотная, на лапках, в тапках и с пулемётом...
Последнее редактирование: 12 года 10 мес. назад пользователем Cerberus.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
12 года 10 мес. назад #61238
от caveman
caveman ответил в теме "Разлом" карты
поясни, что значит "смещать"?
ЗЫ: я нарисовал картинку (черный прямоугольник с белым крестом посредине), размыл её гауссом и прицепил для перехода. делает почти то же самое, что и твой скрипт (я потестил его, конечно), только наоборот - сходится
))
ЗЫ: я нарисовал картинку (черный прямоугольник с белым крестом посредине), размыл её гауссом и прицепил для перехода. делает почти то же самое, что и твой скрипт (я потестил его, конечно), только наоборот - сходится
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Скрыть
Больше
- Сообщений: 2269
- Спасибо получено: 1182
12 года 10 мес. назад #61240
от Cerberus
Жуть болотная, на лапках, в тапках и с пулемётом...
Cerberus ответил в теме "Разлом" карты
Если тестил - наверное, обратил внимание, что картинка не просто попиксельно исчезает, а движется. Стандартные скрипты этого, кажется, не умеют.
Жуть болотная, на лапках, в тапках и с пулемётом...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
12 года 10 мес. назад #61241
от caveman
caveman ответил в теме "Разлом" карты
понял тебя. неужели 2003й мейкер умел так делать?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Скрыть
Больше
- Сообщений: 2269
- Спасибо получено: 1182
12 года 10 мес. назад #61242
от Cerberus
Жуть болотная, на лапках, в тапках и с пулемётом...
Cerberus ответил в теме "Разлом" карты
Именно что умел. Причём не только на четыре части, но и пополам (горизонтально и вертикально), и собирать так же. А вот затирать по кускам (а-ля эти самые transitions в более новых версиях) - кажется, нет.
Жуть болотная, на лапках, в тапках и с пулемётом...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
12 года 10 мес. назад - 12 года 10 мес. назад #61243
от caveman
caveman ответил в теме "Разлом" карты
Интересно, что еще мы потеряли? 
Потестил с переходом на другую карту, все отлично работает.
Хорошо бы, если б была возможность задать число turn в вызове Division.start (52, я полагаю, подобрано просто под размер экрана, а сдвиги там на 4 всегда), и научиться управлять скоростью разлома.
Offtop: замучала эта защита от флуда
Потестил с переходом на другую карту, все отлично работает.
Хорошо бы, если б была возможность задать число turn в вызове Division.start (52, я полагаю, подобрано просто под размер экрана, а сдвиги там на 4 всегда), и научиться управлять скоростью разлома.
Offtop: замучала эта защита от флуда
Последнее редактирование: 12 года 10 мес. назад пользователем caveman. Причина: я
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Скрыть
Больше
- Сообщений: 2269
- Спасибо получено: 1182
12 года 10 мес. назад #61244
от Cerberus
Жуть болотная, на лапках, в тапках и с пулемётом...
Cerberus ответил в теме "Разлом" карты
Скорее, не turn, а величину сдвига, а turn считать как высота-экрана/(2*величина-сдвига). Обратные расчёты просто не всегда возможно сделать точно.
Жуть болотная, на лапках, в тапках и с пулемётом...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.104 секунд
