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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: liuruoqi
打印 上一主题 下一主题

[已经解决] 4*4行走图如何改成3*4?

[复制链接]

Lv5.捕梦者

梦石
0
星屑
24267
在线时间
5041 小时
注册时间
2016-3-8
帖子
1618
11
发表于 2020-1-16 21:39:24 | 只看该作者
本帖最后由 alexncf125 于 2020-1-16 22:04 编辑

MSX - XP Characters on VX/VXAce

Version: 1.0

Author: Melosx



Introduction

You can use XP characters whit VX and VXAce. Rename the image by adding $xp at the beginning of the name.

Example: 001-Fighter01.png -> $xp001-Fighter01.png
  1. #==============================================================================
  2. # ** MSX - XP Characters on VX/VXAce
  3. #==============================================================================
  4. # Author: Melosx
  5. # Notes translated by ShinGamix
  6. # http://www.rpgmakervxace.net/index.php?/user/1272-shingamix/
  7. # Version: 1.0
  8. # Compatible with VX and VXAce
  9. #
  10. #==============================================================================
  11. # * Description
  12. # -----------------------------------------------------------------------------
  13. # This script allows you to use xp in vx chara simply inserting the tag
  14. # $ xp
  15. # Before the name of the file.                  
  16. # You can then use the normal VX / VXAce along with those of XP.
  17. #
  18. #==============================================================================
  19. # * Instructions
  20. # -----------------------------------------------------------------------------
  21. # Place the script under Materials and above Main. Add to chara of XP
  22. # $ Xp before the tag name.
  23. #
  24. #==============================================================================

  25. #==============================================================================
  26. # ** Sprite_Character
  27. #==============================================================================

  28. class Sprite_Character < Sprite_Base

  29. def update_bitmap
  30.    if @tile_id != @character.tile_id or
  31.   @character_name != @character.character_name or
  32.   @character_index != @character.character_index
  33.   @tile_id = @character.tile_id
  34.   @character_name = @character.character_name
  35.   @character_index = @character.character_index
  36.   if @tile_id > 0
  37.     sx = (@tile_id / 128 % 2 * 8 + @tile_id % 8) * 32;
  38.     sy = @tile_id % 256 / 8 % 16 * 32;
  39.     self.bitmap = tileset_bitmap(@tile_id)
  40.     self.src_rect.set(sx, sy, 32, 32)
  41.     self.ox = 16
  42.     self.oy = 32
  43.   else
  44.     self.bitmap = Cache.character(@character_name)
  45.     sign = @character_name[/^[!$]./]
  46.     if sign != nil and sign.include?(')
  47.           @cw = bitmap.width / 3
  48.           @ch = bitmap.height / 4
  49.     else
  50.           @cw = bitmap.width / 12
  51.           @ch = bitmap.height / 8
  52.     end
  53.     if @character_name != nil and @character_name.include?('$xp')
  54.           @cw = bitmap.width / 4
  55.           @ch = bitmap.height / 4
  56.     end
  57.     self.ox = @cw / 2
  58.     self.oy = @ch
  59.   end
  60.    end
  61. end

  62. def update_src_rect
  63.    if @character_name != nil and @character_name.include?('$xp')
  64.   if @tile_id == 0
  65.     pattern = @character.pattern > 0 ? @character.pattern - 1 : 3
  66.     sx = pattern * @cw
  67.     sy = (@character.direction - 2) / 2 * @ch
  68.     self.src_rect.set(sx, sy, @cw, @ch)
  69.   end
  70.    else
  71.   if @tile_id == 0
  72.     index = @character.character_index
  73.     pattern = @character.pattern < 3 ? @character.pattern : 1
  74.     sx = (index % 4 * 3 + pattern) * @cw
  75.     sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
  76.     self.src_rect.set(sx, sy, @cw, @ch)
  77.   end
  78.    end
  79. end
  80. end

  81. #==========================================================================
  82. # ** Window_Base
  83. #==========================================================================

  84. class Window_Base < Window

  85. def draw_character(character_name, character_index, x, y)
  86.    return if character_name == nil
  87.    bitmap = Cache.character(character_name)
  88.    sign = character_name[/^[!$]./]
  89.    if character_name != nil and character_name.include?('$xp')
  90.   cw = bitmap.width / 4
  91.   ch = bitmap.height / 4
  92.   n = character_index
  93.   src_rect = Rect.new(0, 0, cw, ch)
  94.    else
  95.   if sign != nil and sign.include?(')
  96.     cw = bitmap.width / 3
  97.     ch = bitmap.height / 4
  98.   else
  99.     cw = bitmap.width / 12
  100.     ch = bitmap.height / 8
  101.   end
  102.   n = character_index
  103.   src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
  104.    end
  105.    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  106. end

  107. end
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-23 18:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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