魔塔吧 关注:66,149贴子:2,172,194
  • 8回复贴,共1

怎么用RPG软件插入图片和文字?(象棋棋盘和棋子的。)

只看楼主收藏回复

怎么用RPG软件插入图片和文字?(象棋棋盘和棋子的。)我想用RPG软件制作象棋游戏。我想在标题选项或者菜单选项里,也可以按一个键盘字母的键,写一个显示象棋棋盘和棋子的图片和文字的页面,点击棋子(图片),棋子(图片)可以移动。这要用到脚本,脚本不完全看得懂。用文心一言也不完全看得懂。
教程塔处理脚本:
Scene_Title:
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#  处理标题画面的类。
#==============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# ● 住处理
#--------------------------------------------------------------------------
def main
# 战斗测试的情况下
if $BTEST
battle_test
return
end
# 载入数据库
$data_mapname = load_data("Data/MapInfos.rxdata")
$data_actors = load_data("Data/Actors.rxdata")
$data_classes = load_data("Data/Classes.rxdata")
$data_skills = load_data("Data/Skills.rxdata")
$data_items = load_data("Data/Items.rxdata")
$data_weapons = load_data("Data/Weapons.rxdata")
$data_armors = load_data("Data/Armors.rxdata")
$data_enemies = load_data("Data/Enemies.rxdata")
$data_troops = load_data("Data/Troops.rxdata")
$data_states = load_data("Data/States.rxdata")
$data_animations = load_data("Data/Animations.rxdata")
$data_tilesets = load_data("Data/Tilesets.rxdata")
$data_common_events = load_data("Data/CommonEvents.rxdata")
$data_system = load_data("Data/System.rxdata")
# 生成系统对像
$game_system = Game_System.new
# 生成标题图形
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title($data_system.title_name)
# 生成命令窗口
s1 = "新游戏"
s2 = "继续"
s3 = "退出"
@command_window = Window_Command.new(192, [s1, s2, s3])
@command_window.back_opacity = 160
@command_window.x = 320 - @command_window.width / 2
@command_window.y = 288
# 判定继续的有效性
# 存档文件一个也不存在的时候也调查
# 有効为 @continue_enabled 为 true、無効为 false
@continue_enabled = false
for i in 0..11
if FileTest.exist?("Save/MotaSave#{i+1}.rxdata")
@continue_enabled = true
end
end
# 继续为有效的情况下、光标停止在继续上
# 无效的情况下、继续的文字显示为灰色
if @continue_enabled
@command_window.index = 1
else
@command_window.disable_item(1)
end
# 演奏标题 BGM
$game_system.bgm_play($data_system.title_bgm)
# 停止演奏 ME、BGS
Audio.me_stop
Audio.bgs_stop
# 执行过渡
Graphics.transition
# 主循环
loop do
# 刷新游戏画面
Graphics.update
# 刷新输入信息
Input.update
# 刷新画面
update
# 如果画面被切换就中断循环
if $scene != self
break
end
end
# 装备过渡
Graphics.freeze
# 释放命令窗口
@command_window.dispose
# 释放标题图形
@sprite.bitmap.dispose
@sprite.dispose
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
# 刷新命令窗口
@command_window.update
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 命令窗口的光标位置的分支
case @command_window.index
when 0 # 新游戏
command_new_game
when 1 # 继续
command_continue
when 2 # 退出
command_shutdown
end
end
end
#--------------------------------------------------------------------------
# ● 命令 : 新游戏
#--------------------------------------------------------------------------
def command_new_game
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 停止 BGM
Audio.bgm_stop
# 重置测量游戏时间用的画面计数器
Graphics.frame_count = 0
# 生成各种游戏对像
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
# 设置初期同伴位置
$game_party.setup_starting_members
# 设置初期位置的地图
$game_map.setup($data_system.start_map_id)
# 主角向初期位置移动
$game_player.moveto($data_system.start_x, $data_system.start_y)
# 刷新主角
$game_player.refresh
# 执行地图设置的 BGM 与 BGS 的自动切换
$game_map.autoplay
# 刷新地图 (执行并行事件)
$game_map.update
# 切换地图画面
$movedevents={}
$scene = Scene_Map.new
end
#--------------------------------------------------------------------------
# ● 命令 : 继续
#--------------------------------------------------------------------------
def command_continue
# 继续无效的情况下
unless @continue_enabled
# 演奏无效 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 切换到读档画面
$scene = Scene_Load.new
end
#--------------------------------------------------------------------------
# ● 命令 : 退出
#--------------------------------------------------------------------------
def command_shutdown
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# BGM、BGS、ME 的淡入淡出
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
# 退出
$scene = nil
end
#--------------------------------------------------------------------------
# ● 战斗测试
#--------------------------------------------------------------------------
def battle_test
# 载入数据库 (战斗测试用)
$data_actors = load_data("Data/BT_Actors.rxdata")
$data_classes = load_data("Data/BT_Classes.rxdata")
$data_skills = load_data("Data/BT_Skills.rxdata")
$data_items = load_data("Data/BT_Items.rxdata")
$data_weapons = load_data("Data/BT_Weapons.rxdata")
$data_armors = load_data("Data/BT_Armors.rxdata")
$data_enemies = load_data("Data/BT_Enemies.rxdata")
$data_troops = load_data("Data/BT_Troops.rxdata")
$data_states = load_data("Data/BT_States.rxdata")
$data_animations = load_data("Data/BT_Animations.rxdata")
$data_tilesets = load_data("Data/BT_Tilesets.rxdata")
$data_common_events = load_data("Data/BT_CommonEvents.rxdata")
$data_system = load_data("Data/BT_System.rxdata")
# 重置测量游戏时间用的画面计数器
Graphics.frame_count = 0
# 生成各种游戏对像
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
# 设置战斗测试用同伴
$game_party.setup_battle_test_members
# 设置队伍 ID、可以逃走标志、战斗背景
$game_temp.battle_troop_id = $data_system.test_troop_id
$game_temp.battle_can_escape = true
$game_map.battleback_name = $data_system.battleback_name
# 演奏战斗开始 BGM
$game_system.se_play($data_system.battle_start_se)
# 演奏战斗 BGM
$game_system.bgm_play($game_system.battle_bgm)
# 切换到战斗画面
$scene = Scene_Battle.new
end
end


IP属地:湖北1楼2024-02-20 23:46回复
    Scene_Menu:
    #==============================================================================
    # ■ Scene_Menu
    #------------------------------------------------------------------------------
    #  处理菜单画面的类。
    #==============================================================================
    class Scene_Menu
    #--------------------------------------------------------------------------
    # ● 初始化对像
    # menu_index : 命令光标的初期位置
    #--------------------------------------------------------------------------
    def initialize(menu_index = 0)
    @menu_index = menu_index
    end
    #--------------------------------------------------------------------------
    # ● 主处理
    #--------------------------------------------------------------------------
    def main
    # 生成命令窗口
    # s1 = $data_system.words.item
    # s2 = $data_system.words.skill
    # s3 = $data_system.words.equip
    # s4 = "状态"
    s1 = "敌物资料"
    s2 = "物品与装备"
    s3 = "存档"
    s4 = "读档"
    if $record != nil and $record.mode == "录制"
    s5 = "退回主界面"
    else
    s5 = "重新开始"
    end
    s6 = "版权说明"
    @command_window = Window_Command.new(160, [s1, s2 ,s3 ,s4 ,s5,s6])#, s3, s4, s5, s6])
    @command_window.index = @menu_index
    # 同伴人数为 0 的情况下
    # if $game_party.actors.size == 0
    # 物品、特技、装备、状态无效化
    # @command_window.disable_item(0)
    # @command_window.disable_item(1)
    # @command_window.disable_item(2)
    # @command_window.disable_item(3)
    # end
    # 禁止存档的情况下
    if $game_system.save_disabled
    # 存档无效
    @command_window.disable_item(2)
    end
    # 生成游戏时间窗口
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 224
    # 生成步数窗口
    @steps_window = Window_Steps.new
    @steps_window.x = 0
    @steps_window.y = 320
    # 生成版本窗口
    @gold_window = Window_Version.new
    @gold_window.x = 0
    @gold_window.y = 416
    # 生成怪物状态窗口
    @enemy_window = Window_EnemyDate.new
    @enemy_window.x = 160
    @enemy_window.y = 0
    # 生成状态窗口
    # @status_window = Window_MenuStatus.new
    # @status_window.x = 160
    # @status_window.y = 0
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
    # 刷新游戏画面
    Graphics.update
    # 刷新输入信息
    Input.update
    # 刷新画面
    update
    # 如果切换画面就中断循环
    if $scene != self
    break
    end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    @command_window.dispose
    @playtime_window.dispose
    @steps_window.dispose
    @gold_window.dispose
    @enemy_window.dispose
    end
    #--------------------------------------------------------------------------
    # ● 刷新画面
    #--------------------------------------------------------------------------
    def update
    # 刷新窗口
    @command_window.update
    @playtime_window.update
    @steps_window.update
    @gold_window.update
    @enemy_window.update
    # 命令窗口被激活的情况下: 调用 update_command
    if @command_window.active
    update_command
    return
    end
    # 状态窗口被激活的情况下: 调用 update_status
    if @enemy_window.active
    update_status
    return
    end
    end
    #--------------------------------------------------------------------------
    # ● 刷新画面 (命令窗口被激活的情况下)
    #--------------------------------------------------------------------------
    def update_command
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
    # 演奏取消 SE
    $game_system.se_play($data_system.cancel_se)
    # 切换的地图画面
    $scene = Scene_Map.new
    return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
    # 同伴人数为 0、存档、游戏结束以外的场合
    if $game_party.actors.size == 0 and @command_window.index < 4
    # 演奏冻结 SE
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    # 命令窗口的光标位置分支
    case @command_window.index
    when 0
    if $floorenemies==[]#没有怪物数据不能进入详细怪物菜单
    # 演奏冻结 SE
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    $game_system.se_play($data_system.decision_se)
    # 激活状态窗口
    @command_window.active = false
    # @status_window2.active = false
    # @status_window2.visible=false ##########
    @enemy_window.active = true
    @enemy_window.index = 0
    # @enemy_window.visible=true
    when 1 # 物品
    # 演奏确定 SE
    $game_system.se_play($data_system.decision_se)
    # 切换到物品画面
    $scene = Scene_Item.new
    when 2 # 存档
    if $game_system.save_disabled
    # 演奏冻结 SE
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    # 演奏确定 SE
    $game_system.se_play($data_system.decision_se)
    # 切换到存档画面
    $scene = Scene_Save.new
    when 3 # 读档
    # 演奏确定 SE
    $game_system.se_play($data_system.decision_se)
    # 切换到存档画面
    $scene = Scene_Load2.new
    when 4 #重新开始
    if $record != nil and $record.mode == "录制"
    # 演奏确定 SE
    $game_system.se_play($data_system.decision_se)
    # 淡入淡出 BGM、BGS、ME
    Audio.bgm_fade(800)
    Audio.bgs_fade(800)
    Audio.me_fade(800)
    # 切换到标题画面
    $scene = Scene_Title.new
    else
    # 游戏重新开始
    # 载入数据库
    $data_mapname = load_data("Data/MapInfos.rxdata")
    $data_actors = load_data("Data/Actors.rxdata")
    $data_classes = load_data("Data/Classes.rxdata")
    $data_skills = load_data("Data/Skills.rxdata")
    $data_items = load_data("Data/Items.rxdata")
    $data_weapons = load_data("Data/Weapons.rxdata")
    $data_armors = load_data("Data/Armors.rxdata")
    $data_enemies = load_data("Data/Enemies.rxdata")
    $data_troops = load_data("Data/Troops.rxdata")
    $data_states = load_data("Data/States.rxdata")
    $data_animations = load_data("Data/Animations.rxdata")
    $data_tilesets = load_data("Data/Tilesets.rxdata")
    $data_common_events = load_data("Data/CommonEvents.rxdata")
    $data_system = load_data("Data/System.rxdata")
    # 生成系统对像
    $game_system = Game_System.new
    # 停止 BGM
    Audio.bgm_stop
    # 重置测量游戏时间用的画面计数器
    Graphics.frame_count = 0
    # 生成各种游戏对像
    $game_temp = Game_Temp.new
    $game_system = Game_System.new
    $game_switches = Game_Switches.new
    $game_variables = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen = Game_Screen.new
    $game_actors = Game_Actors.new
    $game_party = Game_Party.new
    $game_troop = Game_Troop.new
    $game_map = Game_Map.new
    $game_player = Game_Player.new
    # 设置初期同伴位置
    $game_party.setup_starting_members
    # 设置初期位置的地图
    $game_map.setup($data_system.start_map_id)
    # 主角向初期位置移动
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    # 刷新主角
    $game_player.refresh
    # 执行地图设置的 BGM 与 BGS 的自动切换
    $game_map.autoplay
    # 刷新地图 (执行并行事件)
    $game_map.update
    # 切换地图画面
    $movedevents={}
    $scene = Scene_Map.new
    end
    when 5 # 版权说明
    $game_temp.common_event_id =19
    # 切换地图画面
    $scene = Scene_Map.new
    end
    return
    end
    end
    #--------------------------------------------------------------------------
    # ● 刷新画面 (状态窗口被激活的情况下)
    #--------------------------------------------------------------------------
    def update_status
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
    # 演奏取消 SE
    $game_system.se_play($data_system.cancel_se)
    # 激活命令窗口
    @command_window.active = true
    @enemy_window.active = false
    @enemy_window.index = -1
    return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
    if $floorenemies!=[] and $game_party.item_number(4)>0
    $game_variables[13]=@enemy_window.index
    $scene=Scene_EnemyView.new
    end
    return
    end
    end
    end
    这是教程塔的两段脚本,这脚本是什么意思,希望有人有清楚的答案。


    IP属地:湖北2楼2024-02-20 23:51
    回复
      以下是添加标题选项卡的方案
      s1 = "新游戏"; s2 = "继续"; s3 = "退出"; s4 = "象棋"
      @command_window = Window_Command.new(192, [s1, s2, s3, s4])
      case @command_window.index
      when 0 then command_new_game
      when 1 then command_continue
      when 2 then command_shutdown
      when 3 then command_chess
      end
      def command_chess
      $scene = Scene_Chess.new
      end
      然后你自己写一个Scene_Chess
      还有你跑错吧了,应该去rpg.blue


      IP属地:上海3楼2024-02-20 23:57
      回复
        如果是制作RM游戏,你可以直接用事件来实现象棋
        如果是制作象棋游戏,我建议你别用RM


        IP属地:陕西来自Android客户端4楼2024-02-20 23:59
        回复
          我是先找个软件把插入(象棋棋盘和棋子)图片和文字学会。我用C语言没成功了。我看到有的游戏标题页面和菜单页面,快捷键页面插入图片和文字成功了。


          IP属地:湖北5楼2024-02-21 00:19
          回复
            长篇幅代码建议使用pastebin


            IP属地:广东来自Android客户端7楼2024-02-21 00:43
            收起回复