Project1

标题: 請問關於腳本對素材的定義~ [打印本页]

作者: sdgn    时间: 2013-11-10 04:15
标题: 請問關於腳本對素材的定義~
本帖最后由 sdgn 于 2013-11-10 11:21 编辑

請問腳本有沒有哪個地方是定義 物件/玩家腳色 的 中心點 的?
我想拿來寫觸碰或干涉的事件~

主要是說有打算使用 3D-H-7MODE 腳本~
所以還要宣告Z軸.....
作者: 芯☆淡茹水    时间: 2013-11-10 07:46
  1. x = self.x + self.bitmap.width / 2
  2. y = self.y + self.bitmap.height / 2
复制代码
唔~,大概好像是这样,但不能直接拿来用。
作者: sdgn    时间: 2013-11-10 10:28
芯☆淡茹水 发表于 2013-11-10 07:46
唔~,大概好像是这样,但不能直接拿来用。

抱歉忘了說~ 我是要用在 H-7MODE
所以還有Z軸(確定我會用到).... OTZ
作者: 无脑之人    时间: 2013-11-10 11:01
中心点?
每个Sprite都有一个ox oy 是坐标相对图片的xy
默认在Sprite左上角,可以改成在正中心
self.ox = self.bitmap.width / 2
self.oy = self.bitmap.height / 2
这样xy坐标都是相对于图片中心的了
当然 这需要深入到Sprite层
作者: sdgn    时间: 2013-11-10 13:36
本帖最后由 sdgn 于 2013-11-10 23:13 编辑
无脑之人 发表于 2013-11-10 11:01
中心点?
每个Sprite都有一个ox oy 是坐标相对图片的xy
默认在Sprite左上角,可以改成在正中心


抱歉我是要定定義腳色和其他物件自身的中心~
並非要對地圖中心定位~
我是要用來判斷腳色和別的物件有無觸碰~
在預設畫面我是可以用事件或變亮來操作XY
但是換成3D就不能這樣做了.....
可以確定的是要另外自己寫不少腳本條件
作者: 尽头君    时间: 2013-11-12 21:41
在Sprite_Character里就有设置z轴大小的规则

"    self.z = @character.screen_z(@ch) "

它的计算方法在Game_Character 1中

"
  #--------------------------------------------------------------------------
  # ● 获取画面 Z 坐标
  #     height : 角色的高度
  #--------------------------------------------------------------------------
  def screen_z(height = 0)
    # 在最前显示的标志为 ON 的情况下
    if @always_on_top
      # 无条件设置为 999
      return 999
    end
    # 通过实际坐标和地图的显示位置来求得画面坐标
    z = (@real_y - $game_map.display_y + 3) / 4 + 32
    # 元件的情况下
    if @tile_id > 0
      # 元件的优先不足 * 32
      return z + $game_map.priorities[@tile_id] * 32
    # 角色的场合
    else
      # 如果高度超过 32 就判定为满足 31
      return z + ((height > 32) ? 31 : 0)
    end
  end
"




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