ha rpgxpp显示动画事件问题

RPG Maker XP_百度百科
收藏 查看&RPG Maker XP
RPG Maker XPRPGXP是一款可让玩家自行制作在计算机游戏中相当受欢迎的角色扮演游戏玩家可以自由发挥设计出一款属于自己的游戏外文名RPG Maker日文名RPGツークル开发商Enterbrain Incorporation公司最新版本RPG Maker XP v1.03游戏语言日文游戏画面2D游戏类别RPG
RPG Maker XPRPGXP是一款可让玩家自行制作在计算机游戏中相当受欢迎的角色扮演游戏也就是 Role-Playing GameRPG的软件软件由Enterbrain 公司开发它可以使一个不懂编程的人也能做出精美的 RPG 游戏来新的 XP 版本中强化了画面的表现并且对素材已经没有限制了另外加入了系统
使用RGSS脚本可以更改或独立定义原始的游戏系统甚至制作出非RPG游戏也是可能的RPG Maker是一款即使没有程序方面的相关知识也能独自制作原创 RPG 游戏的 RPG 制作软件本系列在多个平台上都有相关产品比如 PSPS2 等平台中文译名为 RPG 制作大师现在本系列中 PC 平台 Windows 版RPG Maker的最新作RPG Maker XP全新登场
首先来介绍一下功能吧对于那些认为制作游戏非常困难的人RPG Maker XP的操作非常简单首先是制作冒险舞台的地图再完成主角怪物物品魔法等 RPG 必要元素的设定最后设置完事件您原创的 RPG 就完成了制作地图只要按设定排列好每个地图元件就行了主角和怪物等也是选择预先打算使用的图片输入完名称能力值等设定就完成了街上的行人地牢宝箱与 BOSS 的战斗等表现 RPG 故事情节的处理就要作为事件设置从显示文章和等简单处理到的操作等技术上的处理一切事件都要登记为事件指令创作者可以选择并排列多个指令来制作简单的事件利用这些指令组合就能作成情节发展遇敌等变化人物怪物图像地图魔法图像效果战斗背景远景图片BGM效果声响SE等游戏制作中需要使用的素材程序中准备了很多使用这些素材就算不会绘画也能立即开始游戏的制作当然也可以使用自己准备的素材图片素材是 PNG 格式声音素材是 MIDIWAVOggVorbis 格式只要是按以上格式制作的原创素材就能在游戏中使用制作完成的游戏可以保存为在其他人计算机中也能运行的游戏文件或在中送给朋友还可以在互联网上自由发布另外您的作品还可以作为共享软件出售RPG Maker XP按用户的要求增加了制作加密的游戏数据自由更改游戏系统等新功能而且提升了运行环境增强了色彩的显示也大大强化了功能游戏画面的显示大小为 640×480为RPG Maker 2003的 4 倍为 PNG 全彩对应 Alpha Channel的半透明显示透过色等可以自由设定另外地图的层从 2 层增加到了 3 层这样就能制作出构造更加复杂的地图这个版本中的战斗画面设计是从正面看见怪物的前景类型最大的特点就是画面下的人物状态窗口部分变成了显示主角和队伍人物的当然在这里显示的可以自由更改RPG Maker XP中使用的人物参数和战斗系统等各种各样的功能全部在被称为的程序中定义RPG Maker XP中采用的是RPG Maker专用的Ruby程序语言Ruby Game Scripting System中文意思是 Ruby 游戏系统以下简称RGSS编辑其中的脚本就可以自由更改或增加系统的功能需要的话系统的核心部分也能编辑
这对于想通过事件指令制作独自的系统和界面的人来说是值得兴奋的事吧这样的话或多或少学习程序语言都是十分必要的如能把运用自如更改菜单画面战斗系统制作独自的事件指令等都是可能的对于高级玩家而言运用就能制作更加原创的游戏了RPG Maker XP中增加了加密游戏数据的功能如果已完成游戏被加密的话就加密保存了游戏数据和素材数据别人将无法看到和修改游戏的原创数据RPG Maker XP的战斗系统是从正面看见怪物的前景类型并且在 XP 中会显示主角人物的图像而在以前的版本中只会对敌人队伍显示战斗动画和效果采用了这个战斗系统同样也会对主角人物显示画面中不断扩大的火柱向主角人物扑来的闪电等会更加加强战斗场景的现场感RPG Maker XP中一些人物行走图战斗素材等图片是被默认加密的可以点击工具栏中的素材管理来导入或者导出 RPG 素材可以用ctrl键来选择多个选项这样更加方便制作者PS游戏素材和游戏封面使自己制作出来的游戏更加富有个性更加使人耳目一新做出更加精美的 RPG 游戏RPG Maker XP中地图分三个图层可以点击数据库地图修改这样能让游戏更有可玩性
新手上路我有疑问投诉建议参考资料 查看查看: 207|回复: 1
士兵, 积分 4, 距离下一级还需 3 积分
勇士票0 导演票0 经验4074 好人卡0 VIP0 精华0帖子在线时间49 小时注册时间
本帖最后由 @qq.c 于
10:43 编辑
#==============================================================================
# 本脚本来自[url][/url],使用和转载请保留此信息
#==============================================================================
#◆◇◆◇◆-----XRXS54. マップ上で簡易ウィンドウ表示 ver1.0 -----◇◆◇◆◇
# by 刻宮
# 「ディフォルト機能 & 仕様」
#&&?$WIN_2 = true。としても、スイッチがONでかつ、アクターが存在しなければ
#&& ウィンドウは表示されません。この3要素が揃った時にウィンドウを表示します。
#&&?逆にこの要素が一つでも欠けるとウィンドウは自動的に非表示になります。
#&&?ツクール開始時はスイッチはOFFなので、ONにしないと表示されません。
#------------------------------------------------------------------
# カスタマイズポイント
#(*存在しないスイッチを指定されるとエラーになります。)
#----------------------------------------------------------------
# 使用说明(66RPG提示:本脚本其实难度不是很高,建议学习RGSS略有心得
#& && && &&&的人尝试自己编写一个同类功能窗口)
#----------------------------------------------------------------
WIN_1& &&&= true&&# 是否使用1号窗口,true为使用,false为不使用
SWITVH_1&&= 494& &# 当此编号开关打开的时候窗口显示。如设置为40则40号开关打开,1号窗口显示
OPACITY_1 = 0 # 1号窗口透明度
X_1& && & = 320& &&&# 1号窗口X坐标
Y_1& && & = 384& &# 1号窗口Y坐标
$WIN_2& & = true&&# 是否使用2号窗口,true为使用,false为不使用
SWITVH_2&&= 41& & # 当此编号开关打开的时候窗口显示。如设置为41则41号开关打开,2号窗口显示
OPACITY_2 = 255& &# 2号窗口透明度
X_2& && & = 160& &# 2号窗口X坐标
Y_2& && & = 384& &# 2号窗口Y坐标
WIN_3& &&&= true&&# 是否使用3号窗口,true为使用,false为不使用
SWITVH_3&&= 42& & # 当此编号开关打开的时候窗口显示。如设置为42则42号开关打开,3号窗口显示
OPACITY_3 = 255& &# 3号窗口透明度
X_3& && & = 320& &# 3号窗口X坐标
Y_3& && & = 384& &# 3号窗口Y坐标
WIN_4& &&&= true&&# 是否使用4号窗口,true为使用,false为不使用
SWITVH_4&&= 43& & # 当此编号开关打开的时候窗口显示。如设置为43则43号开关打开,4号窗口显示
OPACITY_4 = 255& &# 4号窗口透明度
X_4& && & = 480& &# 4号窗口X坐标
Y_4& && & = 384& &# 4号窗口Y坐标
SET_SP& & = [false,false,true,true] # 决定各个窗口是否显示SP数值,true为显示,false为不显示。
OPTION& & =44& &# 决定在对话的时候是否让窗口隐藏的开关编号。
& && && && && && & # 比如设置为44,则当44号开关打开,则在对话的时候窗口隐藏
& && && && && && & # 否则窗口不隐藏。
#=========================================================================
# ■ Scene_Map
#=========================================================================
class Scene_Map
#---------------------------------------------------------------------
# ● フレーム更新
#---------------------------------------------------------------------
alias main_tokimiya main
def main
& &# 簡易ウィンドウ1を作成
& &&&@simple_window1 = Window_MapStatus.new(X_1,Y_1,0)
& && &&&@simple_window1.opacity = OPACITY_1
& &&&@simple_window1.visible = $game_switches[SWITVH_1]
& &&&unless $game_party.actors.size & 0
& && & @simple_window1.visible = false
& &&&end
& &# 簡易ウィンドウ2を作成
& &&&@simple_window2 = Window_MapStatus.new(X_2,Y_2,1)
& &&&@simple_window2.opacity = OPACITY_2
& &&&@simple_window2.visible = $game_switches[SWITVH_2]
& &&&unless $game_party.actors.size & 1
& && & @simple_window2.visible = false
& &&&end
& &# 簡易ウィンドウ3を作成
& &&&@simple_window3 = Window_MapStatus.new(X_3,Y_3,2)
& &&&@simple_window3.opacity = OPACITY_3
& &&&@simple_window3.visible = $game_switches[SWITVH_3]
& &&&unless $game_party.actors.size & 2
& && & @simple_window3.visible = false
& &&&end
& &# 簡易ウィンドウ4を作成
& &&&@simple_window4 = Window_MapStatus.new(X_4,Y_4,3)
& &&&@simple_window4.opacity = OPACITY_4
& &&&@simple_window4.visible = $game_switches[SWITVH_4]
& &&&unless $game_party.actors.size & 3
& && & @simple_window4.visible = false
& &&&end
& &&&main_tokimiya& &# 旧メソッドの呼び出し
& &# 簡易ウィンドウの解放
& &&&@simple_window1.dispose
& &&&@simple_window2.dispose
& &&&@simple_window3.dispose
& &&&@simple_window4.dispose
#---------------------------------------------------------------------
# ● フレーム更新
#---------------------------------------------------------------------
alias update_tokimiya update
def update
& &update_tokimiya& &# 旧メソッドの呼び出し
& &# 以前のパラメーターと相違があれば、内容を更新する。
& &#
& &# ウィンドウ1の更新。
& &if WIN_1 == true and $game_party.actors.size & 0
& &&&# データの更新
& &&&actor = $game_party.actors[0]
& &&&factor_1 = @simple_window1.before_1[0] != actor.name
& &&&factor_2 = @simple_window1.before_1[1] != actor.hp
& &&&factor_3 = @simple_window1.before_1[2] != actor.sp
& &&&if factor_1 or factor_2 or factor_3
& && & @simple_window1.before_1[0] = actor.name
& && & @simple_window1.before_1[1] = actor.hp
& && & @simple_window1.before_1[2] = actor.sp
& && & @simple_window1.refresh(0)
& &&&end
& &&&# 非表示機能の実行
& &&&if @message_window.visible == true and $game_switches[OPTION] == true
& && & @simple_window1.before_1[3] = false
& && & @simple_window1.visible = false
& &&&elsif @simple_window1.before_1[3] != $game_switches[SWITVH_1]
& && & @simple_window1.before_1[3] = $game_switches[SWITVH_1]
& && & @simple_window1.visible = $game_switches[SWITVH_1]
& &&&end
& &end
& &# ウィンドウ2の更新。
& &if $WIN_2 == true and $game_party.actors.size & 1
& &&&# データの更新
& &&&actor = $game_party.actors[1]
& &&&factor_1 = @simple_window2.before_2[0] != actor.name
& &&&factor_2 = @simple_window2.before_2[1] != actor.hp
& &&&factor_3 = @simple_window2.before_2[2] != actor.sp
& &&&if factor_1 or factor_2 or factor_3
& && & @simple_window2.before_2[0] = actor.name
& && & @simple_window2.before_2[1] = actor.hp
& && & @simple_window2.before_2[2] = actor.sp
& && & @simple_window2.refresh(1)
& && & # ウィンドウを強制的に生成
& && & @simple_window2.before_2[3] = true
& && & @simple_window2.visible = true
& &&&end
& &&&# 非表示機能の実行
& &&&if @message_window.visible == true and $game_switches[OPTION] == true
& && & @simple_window2.before_2[3] = false
& && & @simple_window2.visible = false
& &&&elsif @simple_window2.before_2[3] != $game_switches[SWITVH_2]
& && & @simple_window2.before_2[3] = $game_switches[SWITVH_2]
& && & @simple_window2.visible = $game_switches[SWITVH_2]
& &&&end
& &# アクターが存在しないのにウィンドウが表示されたままの場合。
& &elsif @simple_window2.visible == true and @simple_window2.before_2 != nil
& &&&# ウィンドウを消去。
& &&&@simple_window2.before_2[3] = false
& &&&@simple_window2.visible = false
& &end
& &# ウィンドウ3の更新。
& &if WIN_3 == true and $game_party.actors.size & 2
& &&&# データの更新
& &&&actor = $game_party.actors[2]
& &&&factor_1 = @simple_window3.before_3[0] != actor.name
& &&&factor_2 = @simple_window3.before_3[1] != actor.hp
& &&&factor_3 = @simple_window3.before_3[2] != actor.sp
& &&&if factor_1 or factor_2 or factor_3
& && & @simple_window3.before_3[0] = actor.name
& && & @simple_window3.before_3[1] = actor.hp
& && & @simple_window3.before_3[2] = actor.sp
& && & @simple_window3.refresh(2)
& && & # ウィンドウを強制的に生成
& && & @simple_window3.before_3[3] = true
& && & @simple_window3.visible = true
& &&&end
& &&&# 非表示機能の実行
& &&&if @message_window.visible == true and $game_switches[OPTION] == true
& && & @simple_window3.before_3[3] = false
& && & @simple_window3.visible = false
& &&&elsif @simple_window3.before_3[3] != $game_switches[SWITVH_3]
& && & @simple_window3.before_3[3] = $game_switches[SWITVH_3]
& && & @simple_window3.visible = $game_switches[SWITVH_3]
& &&&end
& &# アクターが存在しないのにウィンドウが表示されたままの場合。
& &elsif @simple_window3.visible == true and @simple_window3.before_3 != nil
& &&&# ウィンドウを消去。
& &&&@simple_window3.before_3[3] = false
& &&&@simple_window3.visible = false
& &end
& &# ウィンドウ4の更新。
& &if WIN_4 == true and $game_party.actors.size & 3
& &&&# データの更新
& &&&actor = $game_party.actors[3]
& &&&factor_1 = @simple_window4.before_4[0] != actor.name
& &&&factor_2 = @simple_window4.before_4[1] != actor.hp
& &&&factor_3 = @simple_window4.before_4[2] != actor.sp
& &&&if factor_1 or factor_2 or factor_3
& && & @simple_window4.before_4[0] = actor.name
& && & @simple_window4.before_4[1] = actor.hp
& && & @simple_window4.before_4[2] = actor.sp
& && & @simple_window4.refresh(3)
& && & # ウィンドウを強制的に生成
& && & @simple_window4.before_4[3] = true
& && & @simple_window4.visible = true
& &&&end
& &&&# 非表示機能の実行
& &&&if @message_window.visible == true and $game_switches[OPTION] == true
& && & @simple_window4.before_4[3] = false
& && & @simple_window4.visible = false
& &&&elsif @simple_window4.before_4[3] != $game_switches[SWITVH_4]
& && & @simple_window4.before_4[3] = $game_switches[SWITVH_4]
& && & @simple_window4.visible = $game_switches[SWITVH_4]
& &&&end
& &# アクターが存在しないのにウィンドウが表示されたままの場合。
& &elsif @simple_window4.visible == true and @simple_window4.before_4 != nil
& &&&# ウィンドウを消去。
& &&&@simple_window4.before_4[3] = false
& &&&@simple_window4.visible = false
& &end
#=========================================================================
# ■ Window_MapStatus,脚本来自[url][/url],转载请注意说明
#=========================================================================
class Window_MapStatus & Window_Base
#--------------------------------------------------------------------------
# ○ 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor& &:before_1& && && && &&&# 更新前のウィンドウ1のパラメーター
attr_accessor& &:before_2& && && && &&&# 更新前のウィンドウ2のパラメーター
attr_accessor& &:before_3& && && && &&&# 更新前のウィンドウ3のパラメーター
attr_accessor& &:before_4& && && && &&&# 更新前のウィンドウ4のパラメーター
#---------------------------------------------------------------------
# ● フレーム更新
#---------------------------------------------------------------------
def initialize(x,y,id)
& &#super(x,y,160,96)
& &super(0,0,640,128)
& &self.contents = Bitmap.new(width - 32, height - 32)
& &self.contents.font.size = 18
& &@before_1=[]
& &@before_2=[]
& &@before_3=[]
& &@before_4=[]
& & # 現段階のアクターのパラメーターと可視状態を記憶。
& &data
& &# 項目の描画。
& &refresh(id)
#--------------------------------------------------------------------------
# ● 項目の描画
#--------------------------------------------------------------------------
def data
& &# アクター1の記憶(ただし、パーティが1名以上の場合)
& &if $game_party.actors.size & 0
& &&&actor = $game_party.actors[0]
& &&&@before_1 = [actor.name, actor.hp, actor.sp,true]
& &end
& &# アクター2の記憶(ただし、パーティが2名以上の場合)
& &if $game_party.actors.size & 1
& &&&actor = $game_party.actors[1]
& &&&@before_2 = [actor.name, actor.hp, actor.sp,true]
& &end
& &# アクター3の記憶(ただし、パーティが3名以上の場合)
& &if $game_party.actors.size & 2
& &&&actor = $game_party.actors[2]
& &&&@before_3 = [actor.name, actor.hp, actor.sp,true]
& &end
& &# アクター3の記憶(ただし、パーティが4名以上の場合)
& &if $game_party.actors.size & 3
& &&&actor = $game_party.actors[3]
& &&&@before_4 = [actor.name, actor.hp, actor.sp,true]
& &end
#--------------------------------------------------------------------------
# ● 項目の描画
#--------------------------------------------------------------------------
def refresh(id)
& &# 再描画のために一旦内容を破棄する
& &self.contents.clear
& &# 対応するアクターがいなければ、何もせずに終了する。
& &actor = $game_party.actors[id]
& &if actor == nil
& &&&return
& &end
& &# 名前の描画
& &draw_actor_name(actor, 0, -5)
& &# HPの描画
& &if SET_SP[id]
& &&&draw_actor_hp_bar(actor, 0, 18)
& &else
& &&&draw_actor_hp_bar(actor, 0, 28)
& &end
& &# SPの描画
& &if SET_SP[id]
& &&&draw_actor_sp_bar(actor, 0, 36)
& &end
class Window_Base & Window
#--------------------------------------------------------------------------
# ● HP ゲージの描画
#--------------------------------------------------------------------------
# オリジナルのHP描画を draw_actor_hp_original と名前変更
def draw_actor_hp_bar(actor, x, y, width = 144)
& &# 変数rateに 現在のHP/MHPを代入
& &if actor.maxhp != 0
& &&&rate = actor.hp.to_f / actor.maxhp
& &else
& &&&rate = 0
& &end
& &# plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
& &# plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
& &# align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
& &# align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
& &# align3:ゲージタイプ 0:左詰め 1:右詰め
& &plus_x = 0
& &rate_x = 120#HP条的X
& &plus_y = 25#HP条的Y
& &plus_width = 0
& &rate_width = 300 #HP条的高
& &height = 10#HP条的高
& &align1 = 1
& &align2 = 2
& &align3 = 0
& &# グラデーション設定 grade1:空ゲージ grade2:実ゲージ
& &# (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
& &grade1 = 1
& &grade2 = 0
& &# 色設定。color1:外枠,color2:中枠
& &# color3:空ゲージダークカラー,color4:空ゲージライトカラー
& &# color5:実ゲージダークカラー,color6:実ゲージライトカラー
& &color1 = Color.new(0, 0, 0, 192)
& &color2 = Color.new(255, 255, 192, 192)
& &color3 = Color.new(0, 0, 0, 192)
& &color4 = Color.new(64, 0, 0, 192)
& &color5 = Color.new(80 - 24 * rate, 80 * rate, 14 * rate, 192)
& &color6 = Color.new(240 - 72 * rate, 240 * rate, 62 * rate, 192)
& &# 変数spに描画するゲージの幅を代入
& &if actor.maxhp != 0
& &&&hp = (width + plus_width) * actor.hp * rate_width / 100 / actor.maxhp
& &else
& &&&hp = 0
& &end
& &# ゲージの描画
& &gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
& && && && && &width, plus_width + width * rate_width / 100,
& && && && && &height, hp, align1, align2, align3,
& && && && && &color1, color2, color3, color4, color5, color6, grade1, grade2)
#--------------------------------------------------------------------------
# ● SP ゲージの描画
#--------------------------------------------------------------------------
# オリジナルのSP描画を draw_actor_sp_original と名前変更
def draw_actor_sp_bar(actor, x, y, width = 144)
& &# 変数rateに 現在のSP/MSPを代入
& &if actor.maxsp != 0
& &&&rate = actor.sp.to_f / actor.maxsp
& &else
& &&&rate = 1
& &end
& &# plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
& &# plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
& &# align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
& &# align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
& &# align3:ゲージタイプ 0:左詰め 1:右詰め
& &plus_x = 0
& &rate_x = 120#SP条的X
& &plus_y = 25#SP条的Y
& &plus_width = 0
& &rate_width = 300 #SP条宽
& &height = 10#SP条的高
& &align1 = 1
& &align2 = 2
& &align3 = 0
& &# グラデーション設定 grade1:空ゲージ grade2:実ゲージ
& &# (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
& &grade1 = 1
& &grade2 = 0
& &# 色設定。color1:外枠,color2:中枠
& &# color3:空ゲージダークカラー,color4:空ゲージライトカラー
& &# color5:実ゲージダークカラー,color6:実ゲージライトカラー
& &color1 = Color.new(0, 0, 0, 192)
& &color2 = Color.new(255, 255, 192, 192)
& &color3 = Color.new(0, 0, 0, 192)
& &color4 = Color.new(0, 64, 0, 192)
& &color5 = Color.new(14 * rate, 80 - 24 * rate, 80 * rate, 192)
& &color6 = Color.new(62 * rate, 240 - 72 * rate, 240 * rate, 192)
& &# 変数spに描画するゲージの幅を代入
& &if actor.maxsp != 0
& &&&sp = (width + plus_width) * actor.sp * rate_width / 100 / actor.maxsp
& &else
& &&&sp = (width + plus_width) * rate_width / 100
& &end
& &# ゲージの描画
& &gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
& && && && && &width, plus_width + width * rate_width / 100,
& && && && && &height, sp, align1, align2, align3,
& && && && && &color1, color2, color3, color4, color5, color6, grade1, grade2)
& &# オリジナルのSP描画処理を呼び出し
def gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3,
& && && && && &color1, color2, color3, color4, color5, color6, grade1, grade2)
& &case align1
& &when 1
& &&&x += (rect_width - width) / 2
& &when 2
& &&&x += rect_width - width
& &end
& &case align2
& &when 1
& &&&y -= height / 2
& &when 2
& &&&y -= height
& &end
& &# 枠描画
& &self.contents.fill_rect(x, y, width, height, color1)
& &self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2)
& &if align3 == 0
& &&&if grade1 == 2
& && & grade1 = 3
& &&&end
& &&&if grade2 == 2
& && & grade2 = 3
& &&&end
& &end
& &if (align3 == 1 and grade1 == 0) or grade1 & 0
& &&&color = color3
& &&&color3 = color4
& &&&color4 = color
& &end
& &if (align3 == 1 and grade2 == 0) or grade2 & 0
& &&&color = color5
& &&&color5 = color6
& &&&color6 = color
& &end
& &# 空ゲージの描画
& &self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4,
& && && && && && && && && && && &color3, color4, grade1)
& &if align3 == 1
& &&&x += width - gauge
& &end
& &# 実ゲージの描画
& &self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4,
& && && && && && && && && && && &color5, color6, grade2)
class Bitmap
#--------------------------------------------------------------------------
# ● 矩形をグラデーション表示
#& &&&color1 : スタートカラー
#& &&&color2 : エンドカラー
#& &&&align&&:&&0:横にグラデーション
#& && && && && &1:縦にグラデーション
#& && && && && &2:斜めにグラデーション(激重につき注意)
#--------------------------------------------------------------------------
def gradation_rect(x, y, width, height, color1, color2, align = 0)
& &if align == 0
& &&&for i in x...x + width
& && & red& &= color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
& && & green = color1.green +
& && && && && &(color2.green - color1.green) * (i - x) / (width - 1)
& && & blue&&= color1.blue +
& && && && && &(color2.blue - color1.blue) * (i - x) / (width - 1)
& && & alpha = color1.alpha +
& && && && && &(color2.alpha - color1.alpha) * (i - x) / (width - 1)
& && & color = Color.new(red, green, blue, alpha)
& && & fill_rect(i, y, 1, height, color)
& &&&end
& &elsif align == 1
& &&&for i in y...y + height
& && & red& &= color1.red +
& && && && && &(color2.red - color1.red) * (i - y) / (height - 1)
& && & green = color1.green +
& && && && && &(color2.green - color1.green) * (i - y) / (height - 1)
& && & blue&&= color1.blue +
& && && && && &(color2.blue - color1.blue) * (i - y) / (height - 1)
& && & alpha = color1.alpha +
& && && && && &(color2.alpha - color1.alpha) * (i - y) / (height - 1)
& && & color = Color.new(red, green, blue, alpha)
& && & fill_rect(x, i, width, 1, color)
& &&&end
& &elsif align == 2
& &&&for i in x...x + width
& && & for j in y...y + height
& && && &red& &= color1.red + (color2.red - color1.red) *
& && && && && &&&((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
& && && &green = color1.green + (color2.green - color1.green) *
& && && && && &&&((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
& && && &blue&&= color1.blue + (color2.blue - color1.blue) *
& && && && && &&&((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
& && && &alpha = color1.alpha + (color2.alpha - color1.alpha) *
& && && && && &&&((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
& && && &color = Color.new(red, green, blue, alpha)
& && && &set_pixel(i, j, color)
& && & end
& &&&end
& &elsif align == 3
& &&&for i in x...x + width
& && & for j in y...y + height
& && && &red& &= color1.red + (color2.red - color1.red) *
& && && && && &((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
& && && &green = color1.green + (color2.green - color1.green) *
& && && && && &((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
& && && &blue&&= color1.blue + (color2.blue - color1.blue) *
& && && && && &((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
& && && &alpha = color1.alpha + (color2.alpha - color1.alpha) *
& && && && && &((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
& && && &color = Color.new(red, green, blue, alpha)
& && && &set_pixel(i, j, color)
& && & end
& &&&end
& &end
#==============================================================================
# 本脚本来自[url][/url],使用和转载请保留此信息
#==============================================================================复制代码这是一个显示血条的脚本,但是后面的WIN_2,WIN_3,WIN_4是干嘛用的?我打开了他们的开关,可是什么也没有啊!
我想将WIN_2改成变量14的数值,删掉WIN_3,WIN_4可以吗?怎么弄啊!(ps:今天的问题有点多,主要是我网费没了,有问题不敢问,so,今天交了网费!问题就多了!麻烦大家了!)
贤者, 积分 48, 距离下一级还需 12 积分
勇士票0 导演票0 经验43989 好人卡14 VIP1 精华0帖子在线时间737 小时注册时间
1.WIN_2以后是显示第二三四角色的血条的。
2.让血条显示变量数值的话这个脚本是不能的呢,因为从113行开始都是直接获取角色的信息。
3.如果要单纯的血条样式显示变量可在站内搜索一下
&哦!好吧!谢谢啦!&
Powered by
| Style by

我要回帖

更多关于 neko rpgxp home 的文章

 

随机推荐