Project1
标题:
去框闪烁文字标题
[打印本页]
作者:
99儿时路
时间:
2009-11-15 23:19
提示:
作者被禁止或删除 内容自动屏蔽
作者:
八云紫
时间:
2009-11-17 19:53
能说明下用法,或者效果吗?
作者:
kula1900
时间:
2009-11-18 15:40
本帖最后由 kula1900 于 2009-11-18 16:40 编辑
翻译了下
$imported = {} if $imported.nil?
$imported["Mm12MTUGTitle"] = true
#==============================================================================
module Mm12
#--------------------------------------------------------------------------
# ● 标题 按钮 文本 设置
#--------------------------------------------------------------------------
# 常量数组说明
COMMAND_TEXT = []
# 新游戏文字 描绘
COMMAND_TEXT[0] = "新 游 戏"
# 读取游戏文字 描绘
COMMAND_TEXT[1] = "读取进度"
# 退出程序文字 描绘
COMMAND_TEXT[2] = "退出游戏"
# 自己可以添加
#--------------------------------------------------------------------------
# ● 标题 按钮 命令设置
# 预先定义:
# * command_new_game(启动一个新的游戏)
# * command_continue(读取游戏进度)
# * command_shutdown(退出游戏程序)
# 你也可以把:
# $Scene = Scene_Name.new
# **所有这些都必须在引号!**
#--------------------------------------------------------------------------
# 常量数组说明
COMMAND_ACTION = []
COMMAND_ACTION[0] = "command_new_game"
COMMAND_ACTION[1] = "command_continue"
COMMAND_ACTION[2] = "command_shutdown"
# 可以自行添加
#--------------------------------------------------------------------------
# ● 标题 按钮 文本 字体 位置 等 杂项 设置
#--------------------------------------------------------------------------
# 字体
COMMAND_FONT = ["Times New Roman","黑体","宋体", "Courier New"]
# 字体大小
COMMAND_TEXT_SIZE = 28
# 阴影 ture 有 | 无 false
COMMAND_SHADOW = false
# 加粗 ture 是 | 不 false
COMMAND_BOLD = true
# 倾斜 ture 是 | 不 false
COMMAND_ITALIC = true
# 颜色 Color.new(0,0,0)
COMMAND_COLOR_NOT = Color.new(0,0,0)
# Color Command Text flashes when selected
COMMAND_COLOR_YES = Color.new(205,205,205)
# 文字坐标 常量数组
COMMAND_X = []
COMMAND_Y = []
# 新游戏的文本描绘 X 坐标值
COMMAND_X[0] = 90
# 读取进度文本描绘 X 坐标值
COMMAND_X[1] = 120
# 结束游戏文本描绘 X 坐标值
COMMAND_X[2] = 150
# 新游戏的文本描绘 Y 坐标值
COMMAND_Y[0] = 170
# 读取进度文本描绘 Y 坐标值
COMMAND_Y[1] = 210
# 结束游戏文本描绘 Y 坐标值
COMMAND_Y[2] = 250
# 标题背景图片名称 (默认为 "Title")
TITLE_GRAPHIC_NAME = "Title"
# 标题背景图片所在文件夹 (默认为 "System")
TITLE_GRAPHIC_FOLDER = "System"
end
#--------------------------------------------------------------------------
#实际脚本开始在这里!
#--------------------------------------------------------------------------
module Cache
#------------------------------------------------------------------------
# 获取 标题背景图片 路径
#------------------------------------------------------------------------
def self.title(filename)
load_bitmap("Graphics/#{Mm12::TITLE_GRAPHIC_FOLDER}/", filename)
end
end
#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
# 处理标题画面的类。
#==============================================================================
class Scene_Title < Scene_Base
#--------------------------------------------------------------------------
# * 主处理
#--------------------------------------------------------------------------
def main
# 如果是战斗测试
if $BTEST
# 执行战斗测试
battle_test
# 不是的情况下
else
# 执行原来的主处理
super
end
end
#--------------------------------------------------------------------------
# 开始
#--------------------------------------------------------------------------
def start
super
@com_wait = 1
@sel_index = 0
load_database # 载入数据库
create_game_objects # 生成游戏对象
check_continue # 判断继续是否有效
create_title_graphic # 生成标题画面图像
create_command_window # 生成指令窗口
play_title_music # 播放标题画面音乐
end
#--------------------------------------------------------------------------
# 执行过渡
#--------------------------------------------------------------------------
def perform_transition
Graphics.transition(20)
end
#--------------------------------------------------------------------------
# 开始后处理
#--------------------------------------------------------------------------
def post_start
super
end
#--------------------------------------------------------------------------
# 结束前处理
#--------------------------------------------------------------------------
def pre_terminate
super
end
#--------------------------------------------------------------------------
# 结束处理
#--------------------------------------------------------------------------
def terminate
super
dispose_command_graphics
snapshot_for_background
dispose_title_graphics
end
#--------------------------------------------------------------------------
# 更新画面
#--------------------------------------------------------------------------
def update
super
update_com_graphics
if Input.trigger?(Input::DOWN)
pre_mvmt
if @sel_index == (Mm12::COMMAND_TEXT.size-1)
@sel_index = 0
else
@sel_index += 1
end
post_mvmt
elsif Input.trigger?(Input::UP)
pre_mvmt
if @sel_index == 0
@sel_index = (Mm12::COMMAND_TEXT.size-1)
else
@sel_index -= 1
end
post_mvmt
elsif Input.trigger?(Input::C)
eval(Mm12::COMMAND_ACTION[@sel_index])
end
end
#--------------------------------------------------------------------------
# 更新命令 (闪烁)
#--------------------------------------------------------------------------
def update_com_graphics
@com_wait -= 1
if @com_wait <= 0
@com_graphics[@sel_index].flash(Mm12::COMMAND_COLOR_YES,60)
@com_wait = 60
end
for sprt in @com_graphics
sprt.update
end
end
#--------------------------------------------------------------------------
# 选择命令后 画面音效处理(按下C键)
#--------------------------------------------------------------------------
def post_mvmt
Sound.play_cursor
@com_graphics[@sel_index].flash(Mm12::COMMAND_COLOR_YES,60)
@com_wait = 60
end
#--------------------------------------------------------------------------
# 预选命令后 画面音效处理(未按下C键)
#--------------------------------------------------------------------------
def pre_mvmt
@com_graphics[@sel_index].flash(Mm12::COMMAND_COLOR_NOT,60)
end
#--------------------------------------------------------------------------
# 继续游戏
#--------------------------------------------------------------------------
def check_continue
@continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
end
#--------------------------------------------------------------------------
# 创建标题画面
#--------------------------------------------------------------------------
def create_title_graphics
@back_sprite = Sprite.new
@back_sprite.bitmap = Cache.title(Mm12::TITLE_GRAPHIC_NAME)
end
#--------------------------------------------------------------------------
# 释放标题画面
#--------------------------------------------------------------------------
def dispose_title_graphics
@back_sprite.bitmap.dispose
@back_sprite.dispose
end
#--------------------------------------------------------------------------
# 生成指令窗口(新游戏,继续游戏,退出)
# 这里是重点我详细翻译下
# 这里 为什么说还是有框 其实他是把框和框背景图全部透明 这个脚本自己编写其实
# 也并不困难
#--------------------------------------------------------------------------
def create_command_graphics
# 生成指令窗口
@command_window = Window_Base.new(250, 350, 44, 50)
# 指令窗口 边框 透明
@command_window.opacity = 0
# 指令窗口 背景 透明
@command_window.back_opacity = 0
# 指令窗口 内容 透明
@command_window.contents_opacity = 0
# 窗口的开启程度
# 将此数值从 0(完全关闭)至 255(完全开启)之间变换,可以产生窗口打开
# 和关闭的动画效果。 openness 若低于 255,则不会显示其内容。默认值 255。
@command_window.openness = 0
# 变量数组声明
@com_graphics = []
# 循环 index(变量赋值) 范围 1 - (指令个数 - 1)
for index in 0..(Mm12::COMMAND_TEXT.size - 1)
#----------------------------------------------------------------------
# 这里有单独 让每个指令生成了 一个单独的 精灵类
# 作者可能 想让让他们 单独 刷新 不 影 响 外 体
# 所以 指令窗口 内容 透明 作者设置了 绝对透明
# 因此不需要 修改 Window_Base 类 即可让光标消失
# 可是有一疑团 如果 @command_window 根本就是没用到 又何必浪费经历呢?
#----------------------------------------------------------------------
# 时间关系不再 一一翻译
@com_graphics[index] = Sprite.new
@com_graphics[index].bitmap = Bitmap.new(200,200)
@com_graphics[index].bitmap.font.name = Mm12::COMMAND_FONT
@com_graphics[index].bitmap.font.size = Mm12::COMMAND_TEXT_SIZE
@com_graphics[index].bitmap.font.color = Mm12::COMMAND_COLOR_NOT
@com_graphics[index].bitmap.font.shadow = Mm12::COMMAND_SHADOW
@com_graphics[index].bitmap.font.bold = Mm12::COMMAND_BOLD
@com_graphics[index].bitmap.font.italic = Mm12::COMMAND_ITALIC
@com_graphics[index].ox = -(Mm12::COMMAND_X[index])
@com_graphics[index].oy = -(Mm12::COMMAND_Y[index])
rect = @com_graphics[index].bitmap.text_size(Mm12::COMMAND_TEXT[index])
@com_graphics[index].bitmap.draw_text(0,0,rect.width,rect.height,Mm12::COMMAND_TEXT[index])
end
end
#--------------------------------------------------------------------------
# 释放命令图形
#--------------------------------------------------------------------------
def dispose_command_graphics
for com in @com_graphics
com.dispose unless com.nil?
end
@command_window.dispose
end
#--------------------------------------------------------------------------
# 关闭指令窗口
#--------------------------------------------------------------------------
def close_command_window
return
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1