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

Project1

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

[已经解决] 状态页人物角色图90度旋转

[复制链接]

Lv2.观梦者

梦石
0
星屑
334
在线时间
371 小时
注册时间
2010-8-23
帖子
418
跳转到指定楼层
1
发表于 2012-10-27 22:31:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 勇敢的馒头 于 2012-10-28 09:59 编辑



想在状态页 Scene_Status 把人物的角色图旋转90度
这个功能可能有些人会觉得无聊,但是对我很有用的说
看了论坛的帖子 : http://www.66rpg.com/articles/4577
研究了好久,还是不太清楚该如何设置解决
其实我也想到了有其他的解决的方法,比如定义 显示 战斗图文件名+xxx 图片,在后定义的图片上做修改,不过我觉得没必要再做一张图,其实只要转90度就可以解决问题了
而且定义新的也不是最优的方法,会增加游戏的大小,求大大帮忙啦~

把Scene_Status行走图改成战斗图脚本为

Window_Base 102行插入以下,定义战斗图形
RUBY 代码复制
  1. ############################################################
  2.   #--------------------------------------------------------------------------
  3.   # ● 战斗图形的描绘
  4.   #     actor : 角色
  5.   #     x     : 描画目标 X 坐标
  6.   #     y     : 描画目标 Y 坐标
  7.   #--------------------------------------------------------------------------
  8.   def draw_battler_graphic(actor, x, y)
  9.     battler=RPG::Cache.battler(actor.battler_name, actor.battler_hue)
  10.     w = battler.width
  11.     h = battler.height
  12.     self.contents.blt(x, y, battler, Rect.new(0, 0, w,h))
  13.   end
  14. ############################################################


然后将Window_Status 的第32行
  1. draw_actor_graphic(@actor, 40, 112)
复制代码
替换成
  1. draw_battler_graphic(@actor, 50, 80)
复制代码

点评

附上你的脚本,默认状态不显示战斗图  发表于 2012-10-27 23:05
真正做游戏的游戏人是不会整天发帖灌水的!!!

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
2
发表于 2012-10-27 23:59:19 | 只看该作者
本帖最后由 沙漠点灰 于 2012-10-28 00:00 编辑

显示图片强化和这个没什么关系吧...
这些"图片"在Scene_Sxxxx什么的是"嵌"在窗口中的,而非精灵,所以处理起来不方便,也很慢(即便如此,也看不出来卡顿...以范例来看).
若楼主执意要的话,脚本就在下面。若楼主需要将其载入Cache中请再次说明(再次载入就无需处理),最好再给点经验。
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 战斗图形的描绘
  3.   #     actor : 角色
  4.   #     x     : 描画目标 X 坐标
  5.   #     y     : 描画目标 Y 坐标
  6.   #--------------------------------------------------------------------------
  7.   def draw_battler_graphic(actor, x, y)
  8.     battler=RPG::Cache.battler(actor.battler_name, actor.battler_hue)
  9.     w = battler.width
  10.     h = battler.height
  11.     if defined? yield
  12.       bitmap2 = Bitmap.new(battler.height, battler.width)
  13.       h.times{|x|w.times{|y|bitmap2.set_pixel(x, y, battler.get_pixel(*yield(x,y,w,h)))}}
  14.       battler.dispose
  15.       battler = bitmap2
  16.     end
  17.     self.contents.blt(x, y, battler, Rect.new(0, 0, [w,h].max,[w,h].max))
  18.   end

这是战斗图的绘制,使用了set/get_pixel,所以效率较低,高级点的什么就不会了,正在学习.
还用了迭代。所以调用有些讲究.
默认的
draw_battler_graphic(@actor, 50, 80)

就是不转向,
    draw_battler_graphic(@actor, 50, 80){|x,y,w,h|[w-y,x]}

还有
draw_battler_graphic(@actor, 50, 80){|x,y,w,h|[w-y,h-x]}

以及
draw_battler_graphic(@actor, 50, 80){|x,y,w,h|[y,x]}

最后
draw_battler_graphic(@actor, 50, 80){|x,y,w,h|[y,h-x]}

楼主自己试试吧

点评

太棒了,谢谢大大!认可。。。  发表于 2012-10-28 09:59

评分

参与人数 1梦石 +2 收起 理由
hys111111 + 2 认可答案

查看全部评分

>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 21:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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