[CCC]СЛАЙДЫ

Программист Ruby Организатор конкурсов Даритель Стимкея 2 место Сбитая кодировка Переводчик 2 место
Больше
11 года 3 нед. назад #80147 от strelokhalfer
strelokhalfer создал тему: [CCC]СЛАЙДЫ
Те, кто играл в Fallout или Dragon Age сразу поймут что нужно сделать.
Цель: сделать экран показа слайдов аля "концовка в фоллауте"
В тему выкладывать ТОЛЬКО ДЕМО ДЛЯ КОНКУРСА!
Скрипты будут приниматься до 12:00 в понедельник,
опоздавшие больше чем на пол часа будут злостно проигнорированны!
Надеюсь, будет поактивнее)

"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Спасибо сказали: Seibur, DeadElf79, Демий, NettySvit, Iren_Rin

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
11 года 3 нед. назад - 11 года 3 нед. назад #80155 от DeadElf79
DeadElf79 ответил в теме [CCC]СЛАЙДЫ
Положу сюда демку, оформлю и напишу все инструкции по использованию потом. Хотя, вроде бы, всё кристально ясно: yadi.sk/d/LnIse-Vqg4WxK

Внимание: демо требует 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)
где 0 - это первый слайд, 10 - последний. Все слайды с номерами между первым числом и вторым (включительно оба этих кадра) будут показаны автоматически. Сладйы должны находится в папке "Graphics/Slides" и иметь название Side000, Slide001, Slide002 и так далее.
Последнее редактирование: 11 года 3 нед. назад пользователем DeadElf79.
Спасибо сказали: Iren_Rin

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Организатор конкурсов Даритель Стимкея 2 место Сбитая кодировка Переводчик 2 место
Больше
11 года 3 нед. назад - 11 года 3 нед. назад #80265 от strelokhalfer
strelokhalfer ответил в теме [CCC]СЛАЙДЫ
Слайды, сделанные лично мной.
Инструкция по работе в ШАПКЕ.
[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
Ссылка. [VX ACE]

"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Последнее редактирование: 11 года 3 нед. назад пользователем strelokhalfer.
Спасибо сказали: Iren_Rin

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.092 секунд
Работает на Kunena форум