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

Project1

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

[已经解决] 如何把角色行走图显示到战斗画面中?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
170
在线时间
227 小时
注册时间
2011-5-19
帖子
736
跳转到指定楼层
1
发表于 2014-7-20 10:54:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
如题,鄙人的战斗系统是原版的,应该不会冲突。
(PS:只要显示图片,不要动画)
求解,多谢!
休息中……

Lv1.梦旅人

梦石
0
星屑
170
在线时间
227 小时
注册时间
2011-5-19
帖子
736
6
 楼主| 发表于 2014-7-20 13:25:42 | 只看该作者
3楼脚本测试可用。
4楼的好像有问题,加进去没有显示。

点评

……不知道。没报错,只是没有显示图片。  发表于 2014-7-20 19:00
为啥我没有问题233  发表于 2014-7-20 13:28
休息中……
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

5
发表于 2014-7-20 13:11:24 | 只看该作者

瞎写了一段:

RUBY 代码复制
  1. class Spriteset_Battle
  2.  
  3.   alias ca_20140720 create_actors
  4.   def create_actors
  5.     ca_20140720
  6.     s = @leader_sprite = Sprite.new(@viewport1)
  7.     actor = $game_party.leader
  8.     cn = actor.character_name
  9.     s.bitmap = bitmap = Cache.character(cn)
  10.     sign = cn[/^[\!\$]./]
  11.     if sign && sign.include?('$')
  12.       cw = bitmap.width / 3
  13.       ch = bitmap.height / 4
  14.     else
  15.       cw = bitmap.width / 12
  16.       ch = bitmap.height / 8
  17.     end
  18.     s.ox = cw / 2
  19.     s.oy = ch
  20.     index = actor.character_index
  21.     sx = (index % 4 * 3 + 1) * cw
  22.     sy = (index / 4 * 4) * ch
  23.     s.src_rect.set(sx, sy, cw, ch)
  24.     s.x = 50
  25.     s.y = 50
  26.     s.z = 100
  27.   end
  28.  
  29.   alias da_20140720 dispose_actors
  30.   def dispose_actors
  31.     da_20140720
  32.     @leader_sprite.dispose
  33.   end
  34.  
  35. end

评分

参与人数 2星屑 +8 梦石 +1 收起 理由
VIPArcher + 1 没看出哪里有问题啊。
xggzga117 + 8

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
364
在线时间
1198 小时
注册时间
2010-12-18
帖子
3928

贵宾

4
发表于 2014-7-20 13:11:23 | 只看该作者
  1. module Actor_Pictures
  2.   Cache = {}
  3.   # 文件名。和角色编号相同的数组编号。
  4.   FileName = []
  5.   # 例如 FileName[1] = 'Graphics/Battlers/Actor 1'
  6.   FileName[1] = 'Graphics/Battlers/Actor 1'
  7.   def self.need_refresh? battler
  8.     Actor_Pictures::FileName[battler.id] != Actor_Pictures::Cache[battler][1]
  9.   end
  10. end
  11.   
  12. class Game_Actor
  13.   def use_sprite?
  14.     true
  15.   end
  16.   def screen_x
  17.     # 自行计算坐标
  18.     (index + 1) * (544 / 4)
  19.   end
  20.   def screen_y
  21.     # 自行计算坐标
  22.     416
  23.   end
  24.   def screen_z
  25.     100
  26.   end
  27. end

  28. class Sprite_Battler
  29.   alias tone_update_bitmap update_bitmap
  30.   def update_bitmap *args
  31.     return tone_update_bitmap *args if battler.is_a? Game_Enemy
  32.     return unless battler.is_a? Game_Actor
  33.     Actor_Pictures::Cache[battler] ||= []
  34.     if Actor_Pictures::Cache[battler][1].nil? or
  35.         Actor_Pictures.need_refresh? battler
  36.       self.bitmap = Bitmap.new Actor_Pictures::FileName[battler.id]
  37.       Actor_Pictures::Cache[battler][0] = self.bitmap
  38.       Actor_Pictures::Cache[battler][1] = Actor_Pictures::FileName[battler.id]
  39.       init_visibility
  40.     end
  41.   end
  42. end
复制代码
UI> 依然是直接写好的传统 da☆ze ~

评分

参与人数 2星屑 +8 梦石 +1 收起 理由
taroxd + 1 认可答案
xggzga117 + 8

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
170
在线时间
227 小时
注册时间
2011-5-19
帖子
736
3
 楼主| 发表于 2014-7-20 12:25:25 | 只看该作者
实例可以随便给个,位置什么的鄙人自己改。
休息中……
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-7-20 10:59:53 | 只看该作者
本帖最后由 taroxd 于 2014-7-20 11:02 编辑

修改 Spriteset_Battle#create_actors 方法

由于你的提问过于模糊(比如没有说显示在哪个位置等等),我无法给出实例(其实就是懒

具体的实现交给楼下的大触吧。

P.S. 或者你可以使用 SideView 战斗系统

评分

参与人数 1星屑 +4 收起 理由
xggzga117 + 4

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 20:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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