Впрочем, можно легонько поправить скрипт для переключения языка игроком.
DeadElf79, Вот в этом вся суть вопроса.
Как сделать скрипт для игрока - переключения языка и связать его с импортом/экспортом?
Чтобы у игрока при входе в игру (главное меню) была возможность переключать язык на русский и английский.
Я был бы очень рад признателен, если Вы сможете помочь мне.
Последний раз редактировалось Aleksandr; 29.12.2015 в 22:10.
как вывести на всех сценах спрайт, на титулке, в игре, в меню, везде
через сцен_бэйз не прокатило чтот
или как-то через module Graphics может можно?
А что не работает через Scene_Base?
Добавь созданный спрайт в post_start в Scene_Base
И наверное еще увеличь z этому спрайту, чтобы был поверх всего. И по идее должен показаться.
Хотя я бы, наверное, это через невидимое окно со спрайтом в Scene_Base реализовал.
Что-то типа вот такой вот ереси
Код:
module ScreenSprite
PICTURE_NAME = "exemple" #Название картинки в папке /Graphics/Pictures
SPRITE_X = 0
SPRITE_Y = 0
end
class Window_ScreenSprite < Window_Base
def initialize
create_sprite_picture
super(@sprite_picture.x, @sprite_picture.y, @sprite_picture.width, @sprite_picture.height)
self.opacity = 0
end
def create_sprite_picture
@sprite_picture = Sprite.new
@sprite_picture.bitmap = Cache.picture(ScreenSprite::PICTURE_NAME)
@sprite_picture.x = ScreenSprite::SPRITE_X
@sprite_picture.y = ScreenSprite::SPRITE_Y
@sprite_picture.z = 1000
end
def dispose
super
@sprite_picture.bitmap.dispose
@sprite_picture.dispose
end
end
class Scene_Base
alias start_window_sprite start
def start
start_window_sprite
create_window_screensprite
end
def create_window_screensprite
@window_screensprite = Window_ScreenSprite.new
end
end
Последний раз редактировалось dirge; 03.01.2016 в 03:59.
тут небольшой косяк с Scene_Base
если бы все было так просто
у меня титульный и многие другие сцены не имеют Scene_Base как "основу".
почти все сцены выводятся так
Спойлер:
PHP код:
class Scene_Title
def main
Graphics.update
Graphics.freeze
execute_setup
execute_loop
dispose
end
def execute_setup
@phase = 0
@active = false
@continue_enabled = DataManager.save_file_exists?
@com_index = @continue_enabled ? 1 : 0
@com_index_old = @com_index
@com_index_max = 3
create_sprites
end
def execute_loop
Graphics.update
Graphics.transition(30)
play_title_music
loop do
Input.update
update
Graphics.update
break if SceneManager.scene != self
end
end
end
PHP код:
class Scene_Menu
def main
Graphics.update
Graphics.freeze
execute_setup
execute_loop
dispose
end
def execute_setup
@phase = 0
@active = false
@continue_enabled = DataManager.save_file_exists?
@com_index = 0
@com_index_old = @com_index
@com_index_max = 3
create_sprites
end
def execute_loop
Graphics.update
Graphics.transition
loop do
Input.update
update
Graphics.update
break if SceneManager.scene != self
end
end
end
чтобы все заработало придется очень много переписывать
может есть способ какой-то вызвать через, хмм, например так
PHP код:
module Graphics
@fps, @fps_tmp = 0, []
class << self
attr_reader :fps
alias fps_update update unless method_defined?(:fps_update)
def update
t = Time.now
fps_update
@fps_tmp[frame_count % frame_rate] = Time.now != t
@fps = 0
frame_rate.times {|i| @fps += 1 if @fps_tmp[i]}
fps_sprite.src_rect.y = @fps * 16
end
def fps_sprite
if !@fps_sprite or @fps_sprite.disposed?
@fps_sprite = Sprite.new
@fps_sprite.z = 0x7FFFFFFF
@fps_sprite.bitmap = Bitmap.new(64, 16*120)
@fps_sprite.bitmap.font.name = "GOTHIC"
@fps_sprite.bitmap.font.size = 14
@fps_sprite.bitmap.font.color.set(255, 255, 255)
120.times {|i| @fps_sprite.bitmap.draw_text(4, i*16, 64, 16, "FPS: " + "% 3d"%i, 0)}
@fps_sprite.src_rect.height = 16
end
return @fps_sprite
end
end
end
сделал бы сам, но понятия не имею как устроен базовый Graphics
Стандартные тени, скорее всего, хранятся где в data экземпляра класса RPG::Map. А вот за всю отрисовку отвечает закрытый класс Tilemap. Закрытый - значит, его код в редакторе отсутствует и его рубями не выцепить.
Так что вместо борьбы с отрисовкой стоит поэкспериментировать с данными в таблице карты.
У карты, кстати, пять слоев, так что данные по теням ищи на верхних. Не проверял, просто предполагаю.
Последний раз редактировалось DeadElf79; 23.01.2016 в 00:11.
Социальные закладки