Project1
标题:
标题仿加“按start进入”脚本【附带瞎狗眼功能】
[打印本页]
作者:
时光机
时间:
2011-10-23 21:46
标题:
标题仿加“按start进入”脚本【附带瞎狗眼功能】
本帖最后由 时光机 于 2011-10-28 16:11 编辑
我的第一个脚本0v0,仿单机游戏上的某功能
在某星辰的淡疼要求下加以改进出现了【瞎狗眼功能】
至于什么是瞎狗眼功能、、哼哼=w=+
还有放到main前面就好
#==============================================================================
# ■标题加“按start进入”脚本【附带瞎狗眼功能】
#------------------------------------------------------------------------------
#制作:时光机
#感谢精灵、9姐姐、亿万星辰、kimu、雪姐姐的指导
#==============================================================================
$文字渐变速度 = 4#这个速度的概念还真不好说= =,自己研究去吧XD总之数越小渐变越慢
$文字 = "按空格开始游戏"
$最低不透明度 = 0 #若开启瞎狗眼模式则无论设定为多少后面都会为0
$x坐标 = 544 / 2
$y坐标 = 288+35
#===================================瞎狗眼模式设定===============================
$a=true #是否开启瞎狗眼模式,true开始,false关闭
#瞎狗眼偏移度(单位像素,小一点比较好,大于2瞎眼不能)
$x偏移度 = 2
$y偏移度 = 2
#==============================================================================
# ■ Title_words
#------------------------------------------------------------------------------
# 显示标题画面开始文字的??。
#==============================================================================
class Title_words
def initialize
$number1==false
word = $文字
@start = Sprite.new
@start.x = $x坐标
@start.y = $y坐标
@start.ox = word.size*3
@start.oy = word.size/2
@start.bitmap = Bitmap.new(word.size*6, word.size)
@start.bitmap.draw_text(0,0,word.size*6, word.size,word, 1)
@start.z = 1000
if $a
@start1 = Sprite.new
@start1.x = $x坐标+$x偏移度
@start1.y = $y坐标+$y偏移度
@start1.ox = word.size*3
@start1.oy = word.size/2
@start1.bitmap = Bitmap.new(word.size*6, word.size)
@start1.bitmap.draw_text(0,0,word.size*6, word.size,word, 1)
@start1.z = 1000
@start1.opacity=0
$最低不透明度 = 0
end
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
Input.update
loop do
Graphics.update
Input.update
flash
if $number1==true
@start.bitmap.dispose
@start.dispose
if $a
@start1.bitmap.dispose
@start1.dispose
end
break
end
if Input.press?(Input::C)
$data_system.sounds[1].play
$number1=true
end
end
end
#--------------------------------------------------------------------------
# ● 文字的闪烁
#--------------------------------------------------------------------------
def flash
@start.opacity += $文字渐变速度
$文字渐变速度 *= -1 if @start.opacity == 255
$文字渐变速度 *= -1 if @start.opacity <= $最低不透明度
@start1.opacity -= $文字渐变速度 if $a
end
end
#--------------------------------------------------------------------------
# ● 重定义
#--------------------------------------------------------------------------
#==============================================================================
# ■ Scene_Base
#------------------------------------------------------------------------------
# 游戏中全部画面的超级类。
#==============================================================================
class Scene_Base
#--------------------------------------------------------------------------
# ● 主处理
#--------------------------------------------------------------------------
def main
start # 开始处理
perform_transition # 执行渐变
##################################################
if $number1 == true
post_start # 开始后处理,若标题则放到后面调用
$number1 = false
end
##################################################
Input.update # 更新输入讯息
loop do
Graphics.update # 更新游戏画面
Input.update # 更新输入讯息
update # 更新画面
break if $scene != self # 切换画面时中断循环
end
Graphics.update
pre_terminate # 结束前处理
Graphics.freeze # 准备渐变
terminate # 结束处理
end
end
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
# 处理标题画面的类。
#==============================================================================
class Scene_Title < Scene_Base
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
def update
super
####################################################
unless $number1==true
Title_words.new
post_start # 开始后处理
end
####################################################
@command_window.update
##############################################
if Input.press?(Input::B)
$data_system.sounds[2].play
$number1 = false
close_command_window
Title_words.new
post_start
end
##############################################
if Input.trigger?(Input::C)
case @command_window.index
when 0 #New game
command_new_game
when 1 # Continue
command_continue
when 2 # Shutdown
command_shutdown
end
end
end
end
复制代码
貌似是长了点= =
作者:
各种压力的猫君
时间:
2011-10-24 04:09
#--------------------------------------------------------------------------
# ● 重定义
#--------------------------------------------------------------------------
class Scene_Title < Scene_Base
alias post_start_new post_start
def post_start
end
alias old_update update
def update
unless $number1==true
Title_words.new
post_start_new
end
old_update
if Input.press?(Input::B)
$data_system.sounds[2].play
$number1 = false
close_command_window
Title_words.new
post_start_new
end
end
end
复制代码
重定义太长了 果断咔嚓
作者:
千葉玖濑
时间:
2011-10-24 12:37
啥是瞎狗眼功能?果断试下= =
作者:
羁绊の终
时间:
2011-10-24 13:02
{:nm_3:}果然,被闪瞎了 3_,3
作者:
亿万星辰
时间:
2011-10-24 17:28
本帖最后由 亿万星辰 于 2011-10-24 17:35 编辑
#==============================================================================
# ■ Title_words
#------------------------------------------------------------------------------
# 显示标题画面开始文字的窗口。
#==============================================================================
class Title_words
def initialize(x, y, word = "按空格开始游戏", begin_opacity = 255, flash_add = 5)
@start = Sprite.new
@start.bitmap = Bitmap.new(544, 20)
@start.x = x
@start.y = y
@start.bitmap.draw_text(0,0,544, 20,word, 1)
@start.z = 1000
@start.opacity = begin_opacity
@flash_add = flash_add
end
#--------------------------------------------------------------------------
# ● 更新
#--------------------------------------------------------------------------
def update
@start.opacity += @flash_add
@flash_add *= -1 if @start.opacity % 255 == 0
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
def dispose
@start.bitmap.dispose
@start.dispose
end
#--------------------------------------------------------------------------
# ● 可见性控制
#--------------------------------------------------------------------------
def visible
return @start.visible
end
def visible=(v)
@start.visible = v
end
end
class Scene_Title < Scene_Base
#--------------------------------------------------------------------------
# ● 开始处理
#--------------------------------------------------------------------------
alias old_start start
def start
old_start
@command_window.visible = false
@title_word1 = Title_words.new(0, 320, "按空格开始游戏", 255, -5)
@title_word2 = Title_words.new(0, 32, "按空格开始游戏", 0, 5)
@title_waiting = true
end
#--------------------------------------------------------------------------
# ● 结束处理
#--------------------------------------------------------------------------
alias old_terminate terminate
def terminate
old_terminate
title_dispose
end
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
def update
super
@title_waiting ? title_update : @command_window.update
if Input.trigger?(Input::C)
if @title_waiting
Sound.play_decision
@title_waiting = false
@command_window.visible = true
@title_word1.visible = false
@title_word2.visible = false
else
case @command_window.index
when 0 #New game
command_new_game
when 1 # Continue
command_continue
when 2 # Shutdown
command_shutdown
end
end
end
if Input.trigger?(Input::B) and !@title_waiting
Sound.play_cancel
@title_waiting = true
@command_window.visible = false
@title_word1.visible = true
@title_word2.visible = true
end
end
def title_update
@title_word1.update
@title_word2.update
end
def title_dispose
@title_word1.dispose
@title_word2.dispose
end
end
复制代码
不解释
作者:
starky_ds
时间:
2011-10-26 12:07
我已经下决心再也不学RGSS了=。=||
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1