Project1

标题: 请教一个菜单画面的问题,内详 [打印本页]

作者: summer92    时间: 2010-9-10 20:36
标题: 请教一个菜单画面的问题,内详
本帖最后由 summer92 于 2010-9-11 19:01 编辑

我想在菜单画面上(哪个画面都行)绘制角色的行走图,并且是原地踏步的状态
脚本达人帮忙瞄一瞄
作者: summer92    时间: 2010-9-11 10:31
给点提示呗,
我搜索到:drew_chactoer...
bitmap=Cake(人物文件名)
cw=4/12 #两种格式的行走图
ch=3/8 #横向?纵行分割
rect=Rect.new(............) 获取一桢大小
self.contents.blt(x,y,bitmap,rect) #创建图象

大致知道这个原理,可怎么写也没成功.而且图象不会动,- -实在不会才提问Y
作者: 八云紫    时间: 2010-9-11 10:41
  1. #--------------------------------------------------------------------------
  2.   # ● 绘制行走图
  3.   #     character_name  : 行走图文件名
  4.   #     character_index : 行走图号码
  5.   #     x     : 描画目标 X 坐标
  6.   #     y     : 描画目标 Y 坐标
  7.   #--------------------------------------------------------------------------
  8.   def draw_character(character_name, character_index, x, y, x_n = 0, y_n = 0)
  9.     return if character_name == nil
  10.     bitmap = Cache.character(character_name)
  11.     sign = character_name[/^[\!\$]./]
  12.     if sign != nil and sign.include?('$')
  13.       cw = bitmap.width / 3
  14.       ch = bitmap.height / 4
  15.     else
  16.       cw = bitmap.width / 12
  17.       ch = bitmap.height / 8
  18.     end
  19.     n = character_index
  20.     src_rect = Rect.new((n%4*3+1+x_n)*cw, (n/4*4+y_n)*ch, cw, ch)
  21.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  22.   end
复制代码
x_n y_n 自己调整。 需要动的话,在刷新里改这个两个值就可以了~~
作者: summer92    时间: 2010-9-11 10:54
3Q,
所以我在 Gold_window 里的 初始化里面
draw_character("actor_1",1,100,100) #actor_1.png有主角行走图那张 编号1应该有图象了把

杂还是只有一个金钱窗口,麻烦LS再给我指点指点,哪里写不对...
作者: 八云紫    时间: 2010-9-11 11:07
坐标问题
作者: summer92    时间: 2010-9-11 11:11
恩,先回去试试,您确定像我上面那么写,出现人物图象了把
作者: 八云紫    时间: 2010-9-11 11:25
自己去尝试下吧~~~
作者: summer92    时间: 2010-9-11 18:27
不行啊
这样有
<code>class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     x      : 窗口 X 座标
  #     y      : 窗口 Y 座标
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(40, 415, 160, WLH+32)
                                      @sprite2 = Sprite.new
    @sprite2.bitmap = Cache.system("actor1")
    self.opacity = 255
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_currency_value($game_party.gold, 4, 0, 120)
  end
end</code>


这样就没有
<code>class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     x      : 窗口 X 座标
  #     y      : 窗口 Y 座标
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(40, 415, 160, WLH+32)
draw_character1("actor1",1,10,10,10,10) # 我改成了1
    self.opacity = 255
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_currency_value($game_party.gold, 4, 0, 120)
  end
end</code>

ls你开RM写一个把,真不明白这个draw_character怎么用
作者: trentswd    时间: 2010-9-11 18:41
原地踏步还是不要用draw吧,draw不是很废时间吗……
建一个新sprite更好吧,ls你第一段代码就是用的sprite
为什么没有,是因为每次refresh的时候,把contents擦掉了
作者: summer92    时间: 2010-9-11 18:44
用sprite 不会啊,想用默认做好的,就是不会使啊 ,自己写又得研究半天

self.contents.blt 这句,写成 bitmap.contents.blt(rect),死活都是错,我记得xp里是这样用没错啊
。。。。不会脚本真的。。
作者: 八云紫    时间: 2010-9-11 18:58
第二种方法我测试正常,但是在显示上有点问题, 坐标需要调很久,不知道为什么.

另外, 范例什么的,我是不会去做的,抱歉. 个人比较忙.

================================================

红字: 我显示成功过
作者: summer92    时间: 2010-9-11 19:02
- -看来我RP了,就这样把




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1