- Сообщений: 1640
- Спасибо получено: 1080
[CCC]СЛАЙДЫ
- strelokhalfer
-
Автор темы
- Не в сети
- Живу я здесь
-
- Знатный грамотей
Скрыть
Больше
11 года 3 нед. назад #80147
от strelokhalfer
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
strelokhalfer создал тему: [CCC]СЛАЙДЫ
Те, кто играл в Fallout или Dragon Age сразу поймут что нужно сделать.
Цель: сделать экран показа слайдов аля "концовка в фоллауте"
В тему выкладывать ТОЛЬКО ДЕМО ДЛЯ КОНКУРСА!
Скрипты будут приниматься до 12:00 в понедельник,
опоздавшие больше чем на пол часа будут злостно проигнорированны!
Надеюсь, будет поактивнее)
Цель: сделать экран показа слайдов аля "концовка в фоллауте"
В тему выкладывать ТОЛЬКО ДЕМО ДЛЯ КОНКУРСА!
Скрипты будут приниматься до 12:00 в понедельник,
опоздавшие больше чем на пол часа будут злостно проигнорированны!
Надеюсь, будет поактивнее)
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
11 года 3 нед. назад - 11 года 3 нед. назад #80155
от DeadElf79
DeadElf79 ответил в теме [CCC]СЛАЙДЫ
Положу сюда демку, оформлю и напишу все инструкции по использованию потом. Хотя, вроде бы, всё кристально ясно:
yadi.sk/d/LnIse-Vqg4WxK
Внимание: демо требует RTP XP, потом поправлю.
По просьбе EvilCat, прикладываю сюда код.
Инструкция: вызовите скрипт с параметрами так:
где 0 - это первый слайд, 10 - последний. Все слайды с номерами между первым числом и вторым (включительно оба этих кадра) будут показаны автоматически. Сладйы должны находится в папке "Graphics/Slides" и иметь название Side000, Slide001, Slide002 и так далее.
Внимание: демо требует RTP XP, потом поправлю.
По просьбе EvilCat, прикладываю сюда код.
Code:
module DE79_SLIDESHOW_SETUP
DIRECTORY_PATH = 'Graphics/Slides/'
# Массив расширений файлов
FILE_EXTENSION = ['.jpg','.png']
end
# Закоментируйте эти строки, если используете скрипты,
# меняющие размеры экрана
# vvvvvvvvvvvvv
module Graphics
class <<self
unless method_defined?(:width)
def width
640
end
end
unless method_defined?(:height)
def height
480
end
end
end
end
# ^^^^^^^^^^^^^^
# Комментируйте строки выше этой
module RPG::Cache
def self.slide(filename)
self.load_bitmap(DE79_SLIDESHOW_SETUP::DIRECTORY_PATH, filename)
end
end
def draw_slides(index_min,index_max)
Graphics.freeze
for i in index_min..index_max
filename=format('Slide%03d', i)
for ext in 0...DE79_SLIDESHOW_SETUP::FILE_EXTENSION.size
if FileTest.exist?(DE79_SLIDESHOW_SETUP::DIRECTORY_PATH+filename+
DE79_SLIDESHOW_SETUP::FILE_EXTENSION[ext])
logo=Sprite.new
logo.bitmap=RPG::Cache.slide(filename)
logo.ox=logo.bitmap.width/2
logo.oy=logo.bitmap.height/2
logo.x=Graphics.width/2
logo.y=Graphics.height/2
logo.opacity=0
Graphics.transition 0
loop do
Graphics.update
Input.update
if Input.trigger?(Input::C)
logo.opacity=245
end
logo.opacity<255 ? logo.opacity+=5 : break
end
loop do
Graphics.update
Input.update
if Input.trigger?(Input::C)
logo.opacity=15
end
logo.opacity>0 ? logo.opacity-=5 : break
end
Graphics.freeze
logo.bitmap.dispose
logo.dispose
else
next
end
end
end
end
Инструкция: вызовите скрипт с параметрами так:
Code:
draw_slides(0,10)
Последнее редактирование: 11 года 3 нед. назад пользователем DeadElf79.
Спасибо сказали: Iren_Rin
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- strelokhalfer
-
Автор темы
- Не в сети
- Живу я здесь
-
- Знатный грамотей
Скрыть
Больше
- Сообщений: 1640
- Спасибо получено: 1080
11 года 3 нед. назад - 11 года 3 нед. назад #80265
от strelokhalfer
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
strelokhalfer ответил в теме [CCC]СЛАЙДЫ
Слайды, сделанные лично мной.
Инструкция по работе в ШАПКЕ.
[strike]Скрипт немного недоработан, диалоги не скрываются при показе и нет чёрного фона.[/strike]
Скрипт:
Ссылка.
[VX ACE]
Инструкция по работе в ШАПКЕ.
[strike]Скрипт немного недоработан, диалоги не скрываются при показе и нет чёрного фона.[/strike]
Скрипт:
Code:
=begin
Слайды
Автор: strelokhalfer
Требования: Мозг и прямые руки :)
Описание:
Упращает вывод картинок, делает возможным их вывод перед
главным меню или перед концом игры.
Лицензия:
Бесплатно для для не- и комерческих проектов,
но вы ОБЯЗАНЫ указать меня в благодарностях.
Использование:
Создайте свой массив по образцам ниже, и вызвоите его
slides(имя_массива)
В массиве есть два типа данных, фоновая музыка и картинка.
Фоновая музыка указывается строкой
["BGM", "Имя", громкость, темп]
BGM - Указывает, что это музыка
Имя - Имя музыки из папки 'Audio/BGM/'
Громкость - от 0 до 100
Темп - от 50 до 150(100 стандарт)
Картинка определяется
["PIC", "Имя", время, переключатель, "Альтернатива"]
Имя - Имя картинки из папки, указанной в Slide_Path
Время - как долго будет висеть картинка
Переключатель - номер переключателя, картинка будет видна,
если он включон, необязателен.
"Альтернатива" - имя картинки, если переключатель выключен, необязателен.
Для конца игры вызовите
end_game
Для отключения слайдов в начале игры, заккоментируйте строки в Start_scene
=end
module Halfer_Slide
Slide_Path = "Graphics/Slides/"
Transition = 60
# Массивы ниже могут быть пусты, НО ОБЯЗАТЕЛЬНЫ!
End_scene = [ #Слайды для концовок
["BGM", "Scene3", 100, 100],
["PIC", "End1", 2],
["PIC", "End2_1", 2, 1, "End2_2"],
["BGM", "Scene2", 100, 100],
["PIC", "End3_1", 2, 2, "End3_2"],
["PIC", "End4", 2]
]
Start_scene = [ #Слайды для показа перед титульным меню
["PIC", "Start1", 2],
["PIC", "Start2", 2]
]
# Ваши шаблоны
Dali = [
["PIC", "Dali1", 2],
["PIC", "Dali2", 2],
]
def make_slides(array)
return if array.size == 0
b_black = Bitmap.new(Graphics.width, Graphics.height)
b_black.fill_rect(0, 0, Graphics.width, Graphics.height, Color.new(0, 0, 0))
black = Sprite.new
black.bitmap = b_black
has_bgm = false
$game_message.visible = false
array.each_index { |c|
if array[c][0] == "BGM"
Audio.bgm_play('Audio/BGM/' + array[c][1], array[c][2], array[c][3], 0)
has_bgm = true
elsif array[c][0] == "PIC"
disp = false
if array[c][3] == nil
image = array[c][1]
else
if $game_switches[array[c][3]]
image = array[c][1]
else
if array[c][4] == nil
disp = true
else
image = array[c][4]
end
end
end
break if disp
Graphics.freeze
slide = Sprite.new
slide.bitmap=Cache.frame(image)
Graphics.transition Transition
loop do
Graphics.update
Input.update
if Input.trigger?(Input::B)
slide.opacity=245
end
slide.opacity<255 ? slide.opacity+=5 : break
end
sleep array[c][2]
loop do
Graphics.update
Input.update
if Input.trigger?(Input::B)
slide.opacity=15
end
slide.opacity>0 ? slide.opacity-=5 : break
end
slide.bitmap.dispose
slide.dispose
end
}
if has_bgm
RPG::BGM.stop
end
black.bitmap.dispose
black.dispose
end
end
($imported ||= {})["Halfer_Slides"] = true
module Cache
include Halfer_Slide
def self.frame(filename)
load_bitmap(Slide_Path, filename)
end
end
class Game_Interpreter
include Halfer_Slide
def slides(array)
wait 20
make_slides(array)
end
def end_game
wait 20
slides(End_scene)
SceneManager.goto(Scene_Gameover)
end
end
class << SceneManager
include Halfer_Slide
alias halfer_pre_title first_scene_class
def first_scene_class
make_slides(Start_scene)
halfer_pre_title
end
end
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Последнее редактирование: 11 года 3 нед. назад пользователем strelokhalfer.
Спасибо сказали: Iren_Rin
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.092 секунд
