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

Project1

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

真·RMXP行走方式

 关闭 [复制链接]

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

跳转到指定楼层
1
发表于 2008-1-16 20:36:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
1、标题:真·XP行走方式

2、作者:yangff

3、摘要:无

4、首发网址:http://z.66rpg.com/dispbbs.asp?boardID=9&ID=36&page=1
http://rpg.blue/viewthread.php?tid=72173
5、教学分类:RMVX

6、发布日期:2008/1/16

7、适用人群:想做仿XP的RPG制作者

8、通用度:★★☆

9、技术应用的复杂度:60/15

10、技术学习的理解难度:20

12、关键字: XP、VX、行走

13、作者的话:

XP的行走方式不错的。

14、教学正文:
  1. #==============================================================================
  2. # ■ Sprite_Character
  3. #------------------------------------------------------------------------------
  4. #  角色显示用脚本。监视 Game_Character 类的实例、
  5. # 自动变化脚本状态。
  6. #==============================================================================

  7. class Sprite_Character < Sprite_Base
  8.   #--------------------------------------------------------------------------
  9.   # ● 定量
  10.   #--------------------------------------------------------------------------
  11.   BALLOON_WAIT = 12                  # 表情最后帧的等待时间
  12.   #--------------------------------------------------------------------------
  13.   # ● 定义实例变量
  14.   #--------------------------------------------------------------------------
  15.   attr_accessor :character                # 角色
  16.   #--------------------------------------------------------------------------
  17.   # ● 初始化对像
  18.   #     viewport  : 查看端口
  19.   #     character : 角色 (Game_Character)
  20.   #--------------------------------------------------------------------------
  21.   def initialize(viewport, character = nil)
  22.     super(viewport)
  23.     @character = character
  24.     @balloon_duration = 0
  25.     update
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 释放
  29.   #--------------------------------------------------------------------------
  30.   def dispose
  31.     dispose_balloon
  32.     super
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ● 刷新画面
  36.   #--------------------------------------------------------------------------
  37.   def update
  38.     super
  39.     update_bitmap
  40.     self.visible = (not @character.transparent)
  41.     update_src_rect
  42.     self.x = @character.screen_x
  43.     self.y = @character.screen_y
  44.     self.z = @character.screen_z
  45.     self.opacity = @character.opacity
  46.     self.blend_type = @character.blend_type
  47.     self.bush_depth = @character.bush_depth
  48.     update_balloon
  49.     if @character.animation_id != 0
  50.       animation = $data_animations[@character.animation_id]
  51.       start_animation(animation)
  52.       @character.animation_id = 0
  53.     end
  54.     if @character.balloon_id != 0
  55.       @balloon_id = @character.balloon_id
  56.       start_balloon
  57.       @character.balloon_id = 0
  58.     end
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 获取图块图像的指定图块
  62.   #     tile_id : 图块 ID
  63.   #--------------------------------------------------------------------------
  64.   def tileset_bitmap(tile_id)
  65.     set_number = tile_id / 256
  66.     return Cache.system("TileB") if set_number == 0
  67.     return Cache.system("TileC") if set_number == 1
  68.     return Cache.system("TileD") if set_number == 2
  69.     return Cache.system("TileE") if set_number == 3
  70.     return nil
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 更新画面
  74.   #--------------------------------------------------------------------------
  75.   def update_bitmap
  76.     if @tile_id != @character.tile_id or
  77.        @character_name != @character.character_name or
  78.        @character_index != @character.character_index
  79.       @tile_id = @character.tile_id
  80.       @character_name = @character.character_name
  81.       @character_index = @character.character_index
  82.       if @tile_id > 0
  83.         self.bitmap = Cache.tile($game_map.tileset_name,
  84.           @tile_id)
  85.         self.src_rect.set(0, 0, 32, 32)
  86.         self.ox = 16
  87.         self.oy = 32
  88.       # 元件 ID 为无效值的情况下
  89.       else
  90.         self.bitmap = Cache.character(@character.character_name)
  91.         @cw = bitmap.width / 4
  92.         @ch = bitmap.height / 4
  93.         self.ox = @cw / 2
  94.         self.oy = @ch
  95.      end
  96.    end
  97. end
  98.   #--------------------------------------------------------------------------
  99.   # ● 刷新传送的矩形数据
  100.   #--------------------------------------------------------------------------
  101.   def update_src_rect
  102.     if @tile_id == 0
  103. #     index = @character.character_index
  104. #     pattern = @character.pattern < 3 ? @character.pattern : 1
  105. #     sx = (pattern * 32) #* @cw
  106. #     #sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
  107. #     sy = @character.direction * 32
  108. #     self.src_rect.set(sx, sy, @cw, @ch)
  109.       sx = @character.pattern * @cw
  110.       sy = (@character.direction - 2) / 2 * @ch
  111.       self.src_rect.set(sx, sy, @cw, @ch)
  112.     end
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● 开始显示表情图标
  116.   #--------------------------------------------------------------------------
  117.   def start_balloon
  118.     dispose_balloon
  119.     @balloon_duration = 8 * 8 + BALLOON_WAIT
  120.     @balloon_sprite = ::Sprite.new(viewport)
  121.     @balloon_sprite.bitmap = Cache.system("Balloon")
  122.     @balloon_sprite.ox = 16
  123.     @balloon_sprite.oy = 32
  124.     update_balloon
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ● 刷新表情图标
  128.   #--------------------------------------------------------------------------
  129.   def update_balloon
  130.     if @balloon_duration > 0
  131.       @balloon_duration -= 1
  132.       if @balloon_duration == 0
  133.         dispose_balloon
  134.       else
  135.         @balloon_sprite.x = x
  136.         @balloon_sprite.y = y - height
  137.         @balloon_sprite.z = z + 200
  138.         if @balloon_duration < BALLOON_WAIT
  139.           sx = 7 * 32
  140.         else
  141.           sx = (7 - (@balloon_duration - BALLOON_WAIT) / 8) * 32
  142.         end
  143.         sy = (@balloon_id - 1) * 32
  144.         @balloon_sprite.src_rect.set(sx, sy, 32, 32)
  145.       end
  146.     end
  147.   end
  148.   #--------------------------------------------------------------------------
  149.   # ● 释放表情图标
  150.   #--------------------------------------------------------------------------
  151.   def dispose_balloon
  152.     if @balloon_sprite != nil
  153.       @balloon_sprite.dispose
  154.       @balloon_sprite = nil
  155.     end
  156.   end
  157. end
复制代码

17、教学相关RGSS类:

Sprite_Character



哎呀,蛋疼什么的最有爱了

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2006-5-27
帖子
458
2
发表于 2008-1-16 20:42:26 | 只看该作者
是指XP的步行图吗? 如果是的话… 那种方式很鸡肋,而且日本已经有脚本了…
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

3
 楼主| 发表于 2008-1-16 20:46:22 | 只看该作者
以下引用叮当于2008-1-16 12:42:26的发言:

是指XP的步行图吗? 如果是的话… 那种方式很鸡肋,而且日本已经有脚本了…

是啊!
很简单5分钟搞定 {/tp}
(复制 修改格式 搞定)
选择角色土那里自己摸索吧
会被切成
n*n。。。
第一行前4个=向下
第2行前4个=**
反正和XP一样
多出来的54
反正游戏 里正常
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

月下可怜人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2005-11-23
帖子
4085

第1届短篇游戏比赛亚军

4
发表于 2008-1-16 20:47:46 | 只看该作者
以下引用叮当于2008-1-16 12:42:26的发言:

是指XP的步行图吗? 如果是的话… 那种方式很鸡肋,而且日本已经有脚本了…


日本有,这里没有吧?

不过,请问下,日本有像素拉线式的行走方式吗?如果有,我就删除了。
纵然千里外,我等雁归来。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2006-12-3
帖子
152
5
发表于 2008-1-16 21:09:18 | 只看该作者
其实还是vx的方式好- -节省
我的头像是不是忍着拉不出来?
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

6
 楼主| 发表于 2008-1-16 21:35:10 | 只看该作者
以下引用kuanghao于2008-1-16 13:09:18的发言:

其实还是vx的方式好- -节省

对于素材来讲我们是节约的好孩子
对了网站暂时还做不了(期末)
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2006-5-27
帖子
458
7
发表于 2008-1-16 21:52:38 | 只看该作者
日本的脚本都会被转过来… 我是说不要重复劳动。


日本有像素拉线式的行走方式

啥?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
61 小时
注册时间
2006-9-15
帖子
946
8
发表于 2008-1-16 22:30:33 | 只看该作者
是按像素行走么?{/se}
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
311
在线时间
204 小时
注册时间
2007-2-4
帖子
1817
9
发表于 2008-1-16 22:36:52 | 只看该作者
以下引用secondsen于2008-1-16 14:30:33的发言:

是按像素行走么?

是按米来走的
新しい誕生祝いだッ!
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-16
帖子
300
10
发表于 2008-1-16 22:40:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 07:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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