- Сообщений: 76
- Спасибо получено: 18
[MV] Custom Progress Bar - есть ли такой ?
10 года 5 мес. назад #87859
от Netral
Netral создал тему: [MV] Custom Progress Bar - есть ли такой ?
Нужен скрипт, который бы рисовал что-то вроде шкалы, которая заполнялась бы от нажатие клавиши. Такой скрипт есть для Ace, называется Windows Gauge или как-то так, но аналогов в MV я не нашёл.Сам скрипт был прост в применение и завязывался на переменных. Даже текст над шкалой написать можно было. Очень полезная вещь при создание интерактива.
Но сколько я не исследовал инет, нечто подобное для MV не находил, хотя сам скрипт должен быть вроде простой.
Может кто находил нечто подобное ?
Но сколько я не исследовал инет, нечто подобное для MV не находил, хотя сам скрипт должен быть вроде простой.
Может кто находил нечто подобное ?
Спасибо сказали: RastaManGames, TheMaximGames
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 5 мес. назад #87868
от KageDesu
KageDesu ответил в теме [MV] Custom Progress Bar - есть ли такой ?
Netral, можешь дать ссылку на скрипт для ACE?
Посмотрю что да как. Может его можно быстро переписать для MV.
Посмотрю что да как. Может его можно быстро переписать для MV.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 5 мес. назад #87878
от Netral
Netral ответил в теме [MV] Custom Progress Bar - есть ли такой ?
Пробовал искать этот скрипт с шкалой под Ace в инете, но не нашёл. Сам его выдрал из какой-то японской игры.
Вот скрипт:
Как по мне, скрипт довольно прост.
Вот скрипт:
Code:
# Window_Gauge (2013/ 1/ 9)
#______________________________________________________________________________
module FreeGauge
# 色の指定 ( Color.new(R,G,B) または \C[n] の n (数値) で指定 )
COLOR1 = Color.new(165, 156, 245) # 左端の色
COLOR2 = Color.new(73, 55, 236) # 右端の色
FILLED_COLOR = Color.new(73, 55, 236) # 満タン時の色
end
#______________________________________________________________________________
class Game_Interpreter
def draw_gauge(r, x = nil, y = nil, z = nil)
scene = SceneManager.scene
return unless scene.is_a?(Scene_Battle)
window = scene.gauge_window
window.x = x if x
window.y = y if y
window.z = z if z
window.gauge_rate = r
end
#--------------------------------------------------------------------------
def show_gauge
scene = SceneManager.scene
return unless scene.is_a?(Scene_Battle)
scene.gauge_window.show
end
#--------------------------------------------------------------------------
def hide_gauge
scene = SceneManager.scene
return unless scene.is_a?(Scene_Battle)
scene.gauge_window.hide
end
#--------------------------------------------------------------------------
def change_gauge_color(color, i)
scene = SceneManager.scene
return unless scene.is_a?(Scene_Battle)
case i
when 1; scene.gauge_window.gauge_color1 = color
when 2; scene.gauge_window.gauge_color2 = color
when 3; scene.gauge_window.filled_color = color
end
end
end
class Window_Gauge < Window_Base
attr_reader :gauge_rate
attr_writer :gauge_color1
attr_writer :gauge_color2
attr_writer :filled_color
def initialize(x = 0, y = 0, width = 160, height = 48)
super
self.hide.opacity = 0
@gauge_rate = 0.0
@gauge_color1 = FreeGauge::COLOR1.clone
@gauge_color2 = FreeGauge::COLOR2.clone
@filled_color = FreeGauge::FILLED_COLOR.clone
end
#--------------------------------------------------------------------------
def gauge_rate=(r)
return if @gauge_rate == r
@gauge_rate = r
refresh
end
#--------------------------------------------------------------------------
def gauge_color1
return filled_color if @gauge_rate >= 1.0
return text_color(@gauge_color1) if @gauge_color1.is_a?(Integer)
return @gauge_color1
end
#--------------------------------------------------------------------------
def gauge_color2
return filled_color if @gauge_rate >= 1.0
return text_color(@gauge_color2) if @gauge_color2.is_a?(Integer)
return @gauge_color2
end
#--------------------------------------------------------------------------
def filled_color
return text_color(@filled_color) if @filled_color.is_a?(Integer)
return @filled_color
end
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_gauge(0, 0, contents_width, gauge_rate, gauge_color1, gauge_color2)
end
end
class Scene_Battle < Scene_Base
attr_reader :gauge_window
alias window_gauge__create_all_windows create_all_windows
def create_all_windows
window_gauge__create_all_windows
@gauge_window = Window_Gauge.new
end
end
Как по мне, скрипт довольно прост.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 5 мес. назад #87888
от KageDesu
KageDesu ответил в теме [MV] Custom Progress Bar - есть ли такой ?
Netral, по коду скрипта, который ты скинул. Он рисует шкалу, но только в сцене битвы. Управляется при помощи команд скрипта, а не при помощи кнопок. Это то что тебе нужно?
Вот такой ещё есть скрипт для ACE: Восстанавливающаяся полоса .
Может он больше подходит для твоих нужд.
Вот такой ещё есть скрипт для ACE: Восстанавливающаяся полоса .
Может он больше подходит для твоих нужд.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 5 мес. назад #87904
от Netral
Netral ответил в теме [MV] Custom Progress Bar - есть ли такой ?
Ну да. В моём случаи изменялась переменная из-за нажатия клавиши, а это уже в событии прописанно было. Я забыл совсем, как скрипт использовался. Там переменная указывалась в команде и через неё высчитывалось количество.
Самое полезное, что скрипт показывал количество в процентах, а не в точных единицах. Правда то, что он работает только в сценах битвы, сужает его полезность.
Скрипт " Восстанавливающаяся полоса" тоже хорош, но он заточен под определённые цели и для него многовато настроек надо будет делать.
Для моих целей больше подходит мой скрипт, так как он более гибок. Было бы здорово, если бы он не только в сценах битвы шкалу рисовал. Вот только его нигде не найти для MV.
Самое полезное, что скрипт показывал количество в процентах, а не в точных единицах. Правда то, что он работает только в сценах битвы, сужает его полезность.
Скрипт " Восстанавливающаяся полоса" тоже хорош, но он заточен под определённые цели и для него многовато настроек надо будет делать.
Для моих целей больше подходит мой скрипт, так как он более гибок. Было бы здорово, если бы он не только в сценах битвы шкалу рисовал. Вот только его нигде не найти для MV.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 5 мес. назад #87919
от KageDesu
KageDesu ответил в теме [MV] Custom Progress Bar - есть ли такой ?
Хорошо.
Переписал скрипт для MV, отвязал от сцены боя, можно в любой сцене создавать.
Заменил вызов скриптов на вызов команд плагина. Сами команды плагина в описании.
Плагин
Переписал скрипт для MV, отвязал от сцены боя, можно в любой сцене создавать.
Заменил вызов скриптов на вызов команд плагина. Сами команды плагина в описании.
Плагин
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 5 мес. назад #87934
от Netral
Netral ответил в теме [MV] Custom Progress Bar - есть ли такой ?
Спасибо. Скрипт тот что нужен, но из-за отсутсвия некоторых функций оказался менее гибким.
Я в нём не увидел привязки к переменной и создания текста над шкалой.
В старом скрипте с помощью таких вот команд скрипта можно было это сделать.
Как видно из команд, переменная r приравнивалась к игровой переменной и делилась на 100, а потом уже рисовалась сама шкала. При этом, если игровая переменная менялась, то менялась и r. Соответственно шкала либо заполнялась, либо наоборот становилась постепенно пустой. Либо вообще останавливалась на одном значении, если такое прописанно в событии. Но чтобы такой скрипт работал, приходилось эти команды писать в событие цикла, который происходил мгновенно. При всём при этом точность шкалы была до 1%.
Так вот вопрос: В твоём скрипте можно использовать подобные команды скрипта(если они вообще есть) или для вышеописанного результата потребуется дорабатывать весь код скрипта ?
Я в нём не увидел привязки к переменной и создания текста над шкалой.
В старом скрипте с помощью таких вот команд скрипта можно было это сделать.
Code:
r = $game_variables[6] / 100.0
draw_gauge(r, 200, 30)
show_gauge
$window.create_contents
text1 = $game_variables[6]
text2 = "%"
$window.draw_text(4,0,100,24,text1)
$window.draw_text(32,0,100,24,text2)
Как видно из команд, переменная r приравнивалась к игровой переменной и делилась на 100, а потом уже рисовалась сама шкала. При этом, если игровая переменная менялась, то менялась и r. Соответственно шкала либо заполнялась, либо наоборот становилась постепенно пустой. Либо вообще останавливалась на одном значении, если такое прописанно в событии. Но чтобы такой скрипт работал, приходилось эти команды писать в событие цикла, который происходил мгновенно. При всём при этом точность шкалы была до 1%.
Так вот вопрос: В твоём скрипте можно использовать подобные команды скрипта(если они вообще есть) или для вышеописанного результата потребуется дорабатывать весь код скрипта ?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 5 мес. назад #87946
от KageDesu
KageDesu ответил в теме [MV] Custom Progress Bar - есть ли такой ?
Немного доработал скрипт под твои нужды.
Если тебе нужно чтобы полоса прогресса автоматически менялась в зависимости от переменной, то вот
пример:
CP draw 0 10 20 - создаём progressBar со значением 0 в координатах (10,20)
CP set 6 6 % - progressBar будет брать значение из переменной номер 6, текст тоже из 6 и дописывать % к тексту.
CP auto - progressBar будет обновляться автоматически, когда значение в заданных выше переменных будет меняться.
CP show - показать progressBar на экране.
Теперь только осталось менять значение переменных и прогресс будет меняться.
Заместо команды CP set 6 6 %, можно задать эти параметры в настройках плагина, но CP auto обязательно нужно вызвать командой.
Код не особо сложный, если что, думаю уже сам сможешь подправить.
Обновлённый скрипт по ссылке в моём посте выше.
Если тебе нужно чтобы полоса прогресса автоматически менялась в зависимости от переменной, то вот
пример:
CP draw 0 10 20 - создаём progressBar со значением 0 в координатах (10,20)
CP set 6 6 % - progressBar будет брать значение из переменной номер 6, текст тоже из 6 и дописывать % к тексту.
CP auto - progressBar будет обновляться автоматически, когда значение в заданных выше переменных будет меняться.
CP show - показать progressBar на экране.
Теперь только осталось менять значение переменных и прогресс будет меняться.
Заместо команды CP set 6 6 %, можно задать эти параметры в настройках плагина, но CP auto обязательно нужно вызвать командой.
Код не особо сложный, если что, думаю уже сам сможешь подправить.
Обновлённый скрипт по ссылке в моём посте выше.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 5 мес. назад #87952
от Netral
Netral ответил в теме [MV] Custom Progress Bar - есть ли такой ?
Спасибо. Буквально то что нужно. В самом коде я разобрался и более его дорабатывать не надо. Осталось только в играх применить, но думаю с этим проблем не будет.
Этож сколько надо этим JavaScript заниматься, чтобы так просто скрипты писать ? Наверное очень долго.
Ещё раз Большое спасибо!
Этож сколько надо этим JavaScript заниматься, чтобы так просто скрипты писать ? Наверное очень долго.
Ещё раз Большое спасибо!
Спасибо сказали: KageDesu
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.108 секунд
