设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1736|回复: 2
打印 上一主题 下一主题

[已经解决] Y坐标滚动

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3616
在线时间
1892 小时
注册时间
2010-6-19
帖子
1211
跳转到指定楼层
1
发表于 2022-6-5 10:29:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
下面这个显示回合制的脚本,每回合数字都会滚动,目前是X坐标的滚动,如何改成Y坐标滚动~

RUBY 代码复制
  1. #==============================================================================
  2. # 本脚本由ikki0531 转载于[url]www.66RPG.com[/url],使用和转载请保留此信息
  3. #==============================================================================
  4. #==============================================================================
  5. # ■ ターンの表示(ver 0.98)
  6. #==============================================================================
  7.  
  8. #==============================================================================
  9. # □ 自定义内容
  10. #==============================================================================
  11. module PLAN_TURN
  12.   TURN_STR    = "第{turn}回合"                     # 回合的显示文字({turn}中有回合数)
  13.   STR_COLOR   = Color.new(255, 0, 0)               # 文字颜色
  14.   FRAME_COLOR = Color.new(0, 0, 0)                 # 边缘颜色
  15.   FONT_NAME   = ["汉仪行楷简","黑体","楷体","宋体"]# 格式导出文件时,将会显示此对话框
  16.   FONT_SIZE   =  92                                # 字体大小
  17.   FONT_BOLD   = false                              # 太字
  18.   FONT_ITALIC = false                              # 斜体
  19.   CENTER_WAIT =  30                                # 中心权重
  20.   STR_SPEED   =  64                                # 文字流动速度
  21.   KEY_WAIT    = false                              # 回合显示中的按键输入
  22.   TURN_STR_Z  = 100                                # Z 座標(100中敌人与窗口之间)
  23.   RETURN      = true                               # 把掉头的文字放回流动的方向
  24. end
  25. #==============================================================================
  26. # ■ Scene_Battle
  27. #------------------------------------------------------------------------------
  28. #  处理战斗画面的类。
  29. #==============================================================================
  30.  
  31. class Scene_Battle
  32.   #--------------------------------------------------------------------------
  33.   # ● 主处理
  34.   #--------------------------------------------------------------------------
  35.   alias plan_turn_main main
  36.   def main
  37.     # 创建精灵
  38.     @turn_sprite = Sprite.new
  39.     @turn_sprite.bitmap = Bitmap.new(32, 32)
  40.     @turn_sprite.z = PLAN_TURN::TURN_STR_Z
  41.  
  42.     # 临时放置在看不见的位置
  43.     center_x = 640 / 2 - @turn_sprite.bitmap.width / 2
  44.     @turn_out = -(640 / PLAN_TURN::STR_SPEED)
  45.     @turn_sprite_pos = @turn_out
  46.     @turn_sprite.x = 640
  47.     @turn_wait = 0
  48.     # 还原为原始方法
  49.     plan_turn_main
  50.     # 释放原始精灵
  51.     @turn_sprite.dispose
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 刷新画面
  55.   #--------------------------------------------------------------------------
  56.   alias plan_turn_update update
  57.   def update
  58.         center_x = 640 / 3 - @turn_sprite.bitmap.width / 3
  59.     if @turn_sprite_pos > @turn_out
  60.       if @turn_sprite_pos == -1 and @turn_wait > 0
  61.         @turn_wait -= 1
  62.       else
  63.         pos = PLAN_TURN::RETURN ? @turn_sprite_pos.abs: @turn_sprite_pos
  64.         @turn_sprite.x = center_x + pos * PLAN_TURN::STR_SPEED
  65.         @turn_sprite_pos -= 1
  66.         @turn_sprite.update
  67.       end
  68.       # 没有回合显示中的按键输入则结束
  69.       return if PLAN_TURN::KEY_WAIT
  70.     end
  71.     # 还原为原始方法
  72.     plan_turn_update
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● 命令阶段开始
  76.   #--------------------------------------------------------------------------
  77.   alias plan_turn_start_phase2 start_phase2
  78.   def start_phase2
  79.     if @old_turn != $game_temp.battle_turn + 1
  80.       @old_turn = $game_temp.battle_turn + 1
  81.       turn = $game_temp.battle_turn + 1
  82.       turn_str = PLAN_TURN::TURN_STR.gsub("{turn}") {|s| turn.to_s }
  83.       # 精灵宽度和高度
  84.       bitmap = Bitmap.new(1024, 768)
  85.       bitmap.font.name = PLAN_TURN::FONT_NAME
  86.       bitmap.font.size = PLAN_TURN::FONT_SIZE
  87.       bitmap.font.bold = PLAN_TURN::FONT_BOLD
  88.       rect = bitmap.text_size(turn_str)
  89.       bitmap.dispose
  90.       bitmap = nil
  91.       @turn_sprite.bitmap.dispose
  92.       @turn_sprite.bitmap = nil
  93.       @turn_sprite.bitmap = Bitmap.new(rect.width, rect.height)
  94.       @turn_sprite.bitmap.font.name = PLAN_TURN::FONT_NAME
  95.       @turn_sprite.bitmap.font.size = PLAN_TURN::FONT_SIZE
  96.       @turn_sprite.bitmap.font.bold = PLAN_TURN::FONT_BOLD
  97.       @turn_sprite.bitmap.font.italic = PLAN_TURN::FONT_ITALIC
  98.       @turn_sprite.bitmap.font.color = PLAN_TURN::FRAME_COLOR
  99.       if defined?(@turn_sprite.bitmap.draw_text_plan_frame)
  100.         @turn_sprite.bitmap.draw_text_plan_frame(0, 0, rect.width, rect.height, turn_str)
  101.         @turn_sprite.bitmap.draw_text_plan_frame(2, 0, rect.width, rect.height, turn_str)
  102.         @turn_sprite.bitmap.draw_text_plan_frame(0, 2, rect.width, rect.height, turn_str)
  103.         @turn_sprite.bitmap.draw_text_plan_frame(2, 2, rect.width, rect.height, turn_str)
  104.         @turn_sprite.bitmap.font.color = PLAN_TURN::STR_COLOR
  105.         @turn_sprite.bitmap.draw_text_plan_frame(1, 1, rect.width, rect.height, turn_str)
  106.       else
  107.         @turn_sprite.bitmap.draw_text(0, 0, rect.width, rect.height, turn_str)
  108.         @turn_sprite.bitmap.draw_text(2, 0, rect.width, rect.height, turn_str)
  109.         @turn_sprite.bitmap.draw_text(0, 2, rect.width, rect.height, turn_str)
  110.         @turn_sprite.bitmap.draw_text(2, 2, rect.width, rect.height, turn_str)
  111.         @turn_sprite.bitmap.font.color = PLAN_TURN::STR_COLOR
  112.         @turn_sprite.bitmap.draw_text(-1, 1, rect.width, rect.height, turn_str)
  113.       end
  114.       center_x = 640 / 2 - @turn_sprite.bitmap.width / 2
  115.       @turn_out = -(640 / PLAN_TURN::STR_SPEED)
  116.       @turn_sprite_pos = (640 - center_x) / PLAN_TURN::STR_SPEED
  117.       @turn_sprite.x = 1024
  118.       @turn_sprite.y = 300 / 2 - rect.height / 2
  119.       @turn_wait = PLAN_TURN::CENTER_WAIT
  120.     end
  121.     # 还原为原始方法
  122.     plan_turn_start_phase2
  123.   end
  124. end
  125.  
  126. #==============================================================================
  127. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  128. #==============================================================================

Lv5.捕梦者 (版主)

梦石
1
星屑
23999
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

2
发表于 2022-6-9 15:35:10 | 只看该作者
居然是ikki写的?你只要把所有跟x有关的改成跟y有关就行,不过坐标的具体数值你得仔细调了。控制移动的代码是64行:
  1. @turn_sprite.x = center_x + pos * PLAN_TURN::STR_SPEED
复制代码
改成操作@turn_sprite.y就行,注意pos是每回合都会重新计算的,丑陋点的话你可以在这里硬编码公式,不然就去修改所有跟@turn_sprite_pos有关的地方吧。
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3616
在线时间
1892 小时
注册时间
2010-6-19
帖子
1211
3
 楼主| 发表于 2022-6-9 17:19:39 | 只看该作者
guoxiaomi 发表于 2022-6-9 15:35
居然是ikki写的?你只要把所有跟x有关的改成跟y有关就行,不过坐标的具体数值你得仔细调了。控制移动的代码 ...

弄好了感谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-28 10:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表