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

Project1

 找回密码
 注册会员
搜索

RPG回合制战斗太疯狂了,非常震撼

查看数: 3176 | 评论数: 13 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
fjm
发布时间: 2017-3-29 21:08

正文摘要:

本帖最后由 fjm 于 2017-3-29 21:23 编辑 用了内存优化脚本,这么多人同时回合制战斗非常流畅,感觉同时这么多人战斗,非常刺激,这是BOSS战,每个小兵都有2万的血量,不是一下子就能干掉的那种,战斗完心跳加速,等我全 ...

回复

QQ蚊子湯 发表于 2017-4-1 22:27:05
之前不是有預覽圖嗎,寫完之後還是決定用回默認
我表示哭暈在廁所
怒吃一口肉包!
@魔法丶小肉包

点评

刚刚看到这个帖子呢=w=  发表于 2017-4-1 22:38
fjm
我发现我做的游戏MP简直就没用,所以把MP去掉了,结果发现空了很多,就想用状态图标填补空缺  发表于 2017-4-1 22:31
QQ蚊子湯 发表于 2017-4-1 08:40:02
完成

因為一時找不到輪流播放狀態圖標的插件,所以簡單的寫了一個

預設為當擁有複數狀態時每2秒改變一次狀態圖標,如果需要調整的話可以改一下17行的數字

因為空間有限,所以名字有四個字的話會超出來,不過除了金環三節之外想不到其他人有四個字了,我只有玩過三國O雙不是很理解!



RUBY 代码复制
  1. class Scene_Battle < Scene_Base
  2.     def start
  3.     super
  4.     create_spriteset
  5.     create_all_windows
  6.     BattleManager.method_wait_for_message = method(:wait_for_message)
  7.     @icon_rotate = 0
  8.   end
  9.     def update_basic
  10.     super
  11.     $game_timer.update
  12.     $game_troop.update
  13.     @spriteset.update
  14.     update_info_viewport
  15.     update_message_open
  16.     @icon_rotate += 1
  17.     if @icon_rotate > 120
  18.       $game_party.alive_members.each{|i| i.sort_states}
  19.       @status_window.refresh
  20.       @icon_rotate = 0
  21.     end
  22.   end
  23.     def update_info_viewport
  24.     move_info_viewport(0)   if @party_command_window.active
  25.     move_info_viewport(0) if @actor_command_window.active
  26.     move_info_viewport(0)  if BattleManager.in_turn?
  27.   end
  28.   def create_party_command_window
  29.     @party_command_window = Window_PartyCommand.new
  30.     @party_command_window.y = @info_viewport.rect.y - @party_command_window.height
  31.     @party_command_window.set_handler(:fight,  method(:command_fight))
  32.     @party_command_window.set_handler(:escape, method(:command_escape))
  33.     @party_command_window.unselect
  34.   end
  35.     def create_status_window
  36.     @status_window = Window_BattleStatus.new
  37.   end
  38.     def create_actor_command_window
  39.     @actor_command_window = Window_ActorCommand.new
  40.     @actor_command_window.y = @info_viewport.rect.y - @actor_command_window.height
  41.     @actor_command_window.x = Graphics.width - @actor_command_window.width
  42.     @actor_command_window.set_handler(:attack, method(:command_attack))
  43.     @actor_command_window.set_handler(:skill,  method(:command_skill))
  44.     @actor_command_window.set_handler(:guard,  method(:command_guard))
  45.     @actor_command_window.set_handler(:item,   method(:command_item))
  46.     @actor_command_window.set_handler(:cancel, method(:prior_command))
  47.   end
  48. end
  49. class Window_BattleEnemy < Window_Selectable
  50.     def initialize(info_viewport)
  51.     super(0, info_viewport.rect.y, window_width, fitting_height(6))
  52.     refresh
  53.     self.visible = false
  54.     @info_viewport = info_viewport
  55.   end
  56.   def window_width
  57.     Graphics.width
  58.   end
  59. end
  60. class Window_PartyCommand < Window_Command
  61.   def window_width
  62.     return 100
  63.   end
  64.     def visible_line_number
  65.     return 3
  66.   end
  67.     def alignment
  68.     return 1
  69.   end
  70. end
  71. class Window_BattleStatus < Window_Selectable
  72.   def window_width
  73.     Graphics.width
  74.   end
  75.     def col_max
  76.     return 2
  77.   end
  78.     def draw_actor_icons(actor, x, y, width = 96)
  79.     icons = (actor.state_icons + actor.buff_icons)[0, width / 24]
  80.     icons.each_with_index {|n, i| draw_icon(n, x + 24 * i, y) }
  81.   end
  82.     def draw_basic_area(rect, actor)
  83.     draw_actor_name(actor, rect.x - 7, rect.y, 100)
  84.     draw_actor_icons(actor, rect.x + 59 , rect.y, 24)
  85.   end
  86.   def spacing
  87.     return 4
  88.   end
  89.   def draw_actor_hp(actor, x, y, width = 124)
  90.     draw_gauge(x+60, y, width-15, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
  91.     change_color(system_color)
  92.     draw_text(x+55, y, 30, line_height, Vocab::hp_a)
  93.     draw_current_and_max_values(x+45, y, width, actor.hp, actor.mhp,
  94.       hp_color(actor), normal_color)
  95.   end
  96.   def draw_actor_mp(actor, x, y, width = 124)
  97.     draw_gauge(x+42, y, width-15, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
  98.     change_color(system_color)
  99.     draw_text(x+38, y, 30, line_height, Vocab::mp_a)
  100.     draw_current_and_max_values(x+25, y, width, actor.mp, actor.mmp,
  101.       mp_color(actor), normal_color)
  102.   end
  103.   def draw_actor_tp(actor, x, y, width = 124)
  104.     draw_gauge(x+25, y, width-20, actor.tp_rate, tp_gauge_color1, tp_gauge_color2)
  105.     change_color(system_color)
  106.     draw_text(x+20, y, 30, line_height, Vocab::tp_a)
  107.     change_color(tp_color(actor))
  108.     draw_text(x + width - 37, y, 42, line_height, actor.tp.to_i, 2)
  109.   end
  110. end
  111. class Game_Actor < Game_Battler
  112.     def sort_states
  113.     @states = @states.rotate!(1)
  114.   end
  115. end

点评

fjm
刚才把这问题发到提问区,现在已经解决了,再次感谢蚊子汤帮忙解决了难题  发表于 2017-4-1 20:54
fjm
非常感谢,刚才我把MP这一栏去掉了,腾出了不少空间,状态图标还是按照原先那样显示,就是能显示多个状态图标的那个,该怎么改下呢  发表于 2017-4-1 11:17
homya 发表于 2017-3-31 10:31:42
你这样子,会6到没朋友的
woshiying8 发表于 2017-3-31 00:21:35
提示: 作者被禁止或删除 内容自动屏蔽
QQ蚊子湯 发表于 2017-3-31 00:10:35

狀態icon可以用輪播式只佔一格

点评

fjm
多谢蚊子汤,以前也帮我解决过难题,感谢  发表于 2017-3-31 22:57
剛才收到了應該是明天給你  发表于 2017-3-31 22:27
fjm
你那界面怎么找不到发消息的地方,就用留言吧,有收到吗  发表于 2017-3-31 11:19
fjm
我感觉你的窗口安排很实用的,蛮好的,我只关注战斗表现,UI界面之类没太多要求,我给你发消息吧  发表于 2017-3-31 11:15
不過你的美術力比我還高,要也應該是你設計才對,我這也只是擠一擠毫無美學可言的!  发表于 2017-3-31 10:25
寂静的夜里 发表于 2017-3-30 12:22:02
用半即时的系统更刺激
dqy661 发表于 2017-3-30 12:16:00
你着啊杨人物太多会卡吗?
芯☆淡茹水 发表于 2017-3-30 10:56:33
本帖最后由 芯☆淡茹水 于 2017-3-30 10:57 编辑

如果人太多的话,只是战斗过程持续的时间就非常长。
我记得有个回合战斗系统,比如 A,B,C 都是比 D 先行动,并且都是攻击 D 。如果是现行的回合制,
流程就是: A → D 结束后 B → D 结束后  C → D  。
而我所说的那种攻击模式是: A,B,C → D ,如果还有更多的,比如:E,F → G  ,这些都可以同时进行,
这样可以大大缩短战斗过程时间,并且看起来更壮观。

点评

↓ 如果是这样的战斗模式,必须要多动画显示。  发表于 2017-3-30 11:27
fjm
这个想法不错,找找有没有相关的脚本  发表于 2017-3-30 11:21
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-10-1 01:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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