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

Project1

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

真·角色NPC的阴影

 关闭 [复制链接]

Lv2.观梦者

傻♂逼

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

烫烫烫开拓者

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

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

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

x
脚本
请在SYSTEM目录下放一个阴影文件

  1. $交通工具图形 = "Vehicle"
  2. #=begin
  3. #==============================================================================
  4. # ■ Sprite_Character
  5. #------------------------------------------------------------------------------
  6. #  角色显示用脚本。监视 Game_Character 类的实例、
  7. # 自动变化脚本状态。
  8. #==============================================================================

  9. class Sprite_Character < Sprite_Base
  10.   #--------------------------------------------------------------------------
  11.   # ● 定量
  12.   #--------------------------------------------------------------------------
  13.   BALLOON_WAIT = 12                  # 表情最后帧的等待时间
  14.   #--------------------------------------------------------------------------
  15.   # ● 定义实例变量
  16.   #--------------------------------------------------------------------------
  17.   attr_accessor :character
  18.   #--------------------------------------------------------------------------
  19.   # ● 初始化对像
  20.   #     viewport  : 视口
  21.   #     character : 角色 (Game_Character)
  22.   #--------------------------------------------------------------------------
  23.   def initialize(viewport, character = nil)
  24.     @character = character
  25.     singer = @character.character_name[/!/]
  26.     if @character.character_name != "" and singer == nil and @character.character_name != $交通工具图形
  27.     @scr = Sprite.new(viewport)
  28.     @scr.bitmap = Cache.system("WALK")
  29.     @scr.bitmap.blur
  30.     @scr.bitmap.blur
  31.     @scr.opacity = 100
  32.     end

  33.     super(viewport)
  34.     @balloon_duration = 0
  35.     update
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 释放
  39.   #--------------------------------------------------------------------------
  40.   def dispose
  41.     singer = @character.character_name[/!/]
  42.     if @character.character_name != "" and singer == nil and @character.character_name != $交通工具图形
  43. #    @scr.dispose
  44.     @scr = nil
  45.     end
  46.     dispose_balloon
  47.     super
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 刷新画面
  51.   #--------------------------------------------------------------------------
  52.   def update
  53.     super
  54.     update_bitmap
  55.     self.visible = (not @character.transparent)
  56.     update_src_rect
  57.     self.x = @character.screen_x
  58.     self.y = @character.screen_y
  59.     self.z = @character.screen_z
  60.     singer = @character.character_name[/!/]
  61.     if @character.character_name != "" and singer == nil and @character.character_name != $交通工具图形
  62.     @scr.x = @character.screen_x - 40
  63.     @scr.y = @character.screen_y - 35
  64.     @scr.z = @character.screen_z - 2
  65.             @scr.ox = 1
  66.         @scr.oy = 2
  67.     end
  68. #    @scr.width = self.bitmap.width#
  69.     #@scr.height = self.bitmap.height
  70.     self.opacity = @character.opacity
  71.     self.blend_type = @character.blend_type
  72.     self.bush_depth = @character.bush_depth
  73.     update_balloon
  74.     if @character.animation_id != 0
  75.       animation = $data_animations[@character.animation_id]
  76.       start_animation(animation)
  77.       @character.animation_id = 0
  78.     end
  79.     if @character.balloon_id != 0
  80.       @balloon_id = @character.balloon_id
  81.       start_balloon
  82.       @character.balloon_id = 0
  83.     end
  84.   end
  85.   #--------------------------------------------------------------------------
  86.   # ● 获取图块图像的指定图块
  87.   #     tile_id : 图块 ID
  88.   #--------------------------------------------------------------------------
  89.   def tileset_bitmap(tile_id)
  90.     set_number = tile_id / 256
  91.     return Cache.system("TileB") if set_number == 0
  92.     return Cache.system("TileC") if set_number == 1
  93.     return Cache.system("TileD") if set_number == 2
  94.     return Cache.system("TileE") if set_number == 3
  95.     return nil
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   # ● 刷新传送的位图数据
  99.   #--------------------------------------------------------------------------
  100.   def update_bitmap
  101.     if @tile_id != @character.tile_id or
  102.        @character_name != @character.character_name or
  103.        @character_index != @character.character_index
  104.       @tile_id = @character.tile_id
  105.       @character_name = @character.character_name
  106.       @character_index = @character.character_index
  107.       if @tile_id > 0
  108.         sx = (@tile_id / 128 % 2 * 8 + @tile_id % 8) * 32;
  109.         sy = @tile_id % 256 / 8 % 16 * 32;
  110.         self.bitmap = tileset_bitmap(@tile_id)
  111.         self.src_rect.set(sx, sy, 32, 32)
  112.         self.ox = 16
  113.         self.oy = 32
  114.       else
  115.         self.bitmap = Cache.character(@character_name)
  116.         sign = @character_name[/^[\!\$]./]
  117.         if sign != nil and sign.include?('$')
  118.           @cw = bitmap.width / 3
  119.           @ch = bitmap.height / 4
  120.         else
  121.           @cw = bitmap.width / 12
  122.           @ch = bitmap.height / 8
  123.         end
  124.         self.ox = @cw / 2
  125.         self.oy = @ch
  126.       end
  127.     end
  128.   end
  129.   #--------------------------------------------------------------------------
  130.   # ● 刷新传送的矩形数据
  131.   #--------------------------------------------------------------------------
  132.   def update_src_rect
  133.     if @tile_id == 0
  134.       index = @character.character_index
  135.       pattern = @character.pattern < 3 ? @character.pattern : 1
  136.       sx = (index % 4 * 3 + pattern) * @cw
  137.       sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
  138.       self.src_rect.set(sx, sy, @cw, @ch)
  139.     end
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # ● 开始显示表情图标
  143.   #--------------------------------------------------------------------------
  144.   def start_balloon
  145.     dispose_balloon
  146.     @balloon_duration = 8 * 8 + BALLOON_WAIT
  147.     @balloon_sprite = ::Sprite.new(viewport)
  148.     @balloon_sprite.bitmap = Cache.system("Balloon")
  149.     @balloon_sprite.ox = 16
  150.     @balloon_sprite.oy = 32
  151.     update_balloon
  152.   end
  153.   #--------------------------------------------------------------------------
  154.   # ● 刷新表情图标
  155.   #--------------------------------------------------------------------------
  156.   def update_balloon
  157.     if @balloon_duration > 0
  158.       @balloon_duration -= 1
  159.       if @balloon_duration == 0
  160.         dispose_balloon
  161.       else
  162.         @balloon_sprite.x = x
  163.         @balloon_sprite.y = y - height
  164.         @balloon_sprite.z = z + 200
  165.         if @balloon_duration < BALLOON_WAIT
  166.           sx = 7 * 32
  167.         else
  168.           sx = (7 - (@balloon_duration - BALLOON_WAIT) / 8) * 32
  169.         end
  170.         sy = (@balloon_id - 1) * 32
  171.         @balloon_sprite.src_rect.set(sx, sy, 32, 32)
  172.       end
  173.     end
  174.   end
  175.   #--------------------------------------------------------------------------
  176.   # ● 释放表情图标
  177.   #--------------------------------------------------------------------------
  178.   def dispose_balloon
  179.     if @balloon_sprite != nil
  180.       @balloon_sprite.dispose
  181.       @balloon_sprite = nil
  182.     end
  183.   end
  184. end
  185. #=end
复制代码
哎呀,蛋疼什么的最有爱了

Lv1.梦旅人

超监督萝卜神<

梦石
0
星屑
55
在线时间
0 小时
注册时间
2007-8-25
帖子
465
2
发表于 2008-1-19 23:39:36 | 只看该作者
请问一下阴影和角色一样大的?3*4?
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

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

烫烫烫开拓者

3
 楼主| 发表于 2008-1-19 23:42:25 | 只看该作者
以下引用Edmiss于2008-1-19 15:39:36的发言:

请问一下阴影和角色一样大的?3*4?

NO
这个没有写呢
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2006-12-3
帖子
152
4
发表于 2008-1-19 23:45:58 | 只看该作者
楼主啊- -
网站呢
我的头像是不是忍着拉不出来?
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

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

使用道具 举报

Lv2.观梦者

傻♂逼

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

烫烫烫开拓者

6
 楼主| 发表于 2008-1-20 02:03:42 | 只看该作者
以下引用kuanghao于2008-1-19 15:45:58的发言:

楼主啊- -
网站呢

SORRY
我最近期末。。
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3263
在线时间
3616 小时
注册时间
2006-9-6
帖子
37399

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

7
发表于 2008-1-20 02:04:22 | 只看该作者
只爱系统加截图……
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

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

烫烫烫开拓者

8
 楼主| 发表于 2008-1-20 02:22:18 | 只看该作者
以下引用越前リョーマ于2008-1-19 18:04:22的发言:

只爱系统加截图……

麻烦
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-1 20:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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