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

Project1

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

[已经解决] 怎么判断某动画还在播放中

[复制链接]

Lv1.梦旅人

梦石
0
星屑
57
在线时间
131 小时
注册时间
2008-8-12
帖子
184
跳转到指定楼层
1
发表于 2012-11-15 09:37:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 兔毛鹿 于 2012-11-16 10:00 编辑

在scene map 脚本中需要判断11号动画是否还在播放,如果播放结束了就开启一开关

点评

动画是由RPG::Sprite"领导"的,不大可能单独查看某号动画在播放,当然,不是绝对不可能  发表于 2012-11-15 12:26
Tomorrow

Lv1.梦旅人

梦石
0
星屑
57
在线时间
131 小时
注册时间
2008-8-12
帖子
184
2
 楼主| 发表于 2012-11-15 13:58:48 | 只看该作者
好吧谢谢,我用 if $game_map.events[1].animation_id > 0 来判断,结果不正确
Tomorrow
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
3
发表于 2012-11-15 17:40:08 | 只看该作者
本帖最后由 沙漠点灰 于 2012-11-15 17:44 编辑

如果lz那样的话到有方法:
RUBY 代码复制
  1. module RPG
  2.   class Sprite < ::Sprite
  3.     def anima?
  4.       @_loop_animation or  @_animation
  5.     end
  6.   end
  7. end
  8. class Spriteset_Map
  9.   def initialize
  10.     # 生成显示端口
  11.     @viewport1 = Viewport.new(0, 0, 640, 480)
  12.     @viewport2 = Viewport.new(0, 0, 640, 480)
  13.     @viewport3 = Viewport.new(0, 0, 640, 480)
  14.     @viewport2.z = 200
  15.     @viewport3.z = 5000
  16.     # 生成元件地图
  17.     @tilemap = Tilemap.new(@viewport1)
  18.     @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
  19.     for i in 0..6
  20.       autotile_name = $game_map.autotile_names[i]
  21.       @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
  22.     end
  23.     @tilemap.map_data = $game_map.data
  24.     @tilemap.priorities = $game_map.priorities
  25.     # 生成远景平面
  26.     @panorama = Plane.new(@viewport1)
  27.     @panorama.z = -1000
  28.     # 生成雾平面
  29.     @fog = Plane.new(@viewport1)
  30.     @fog.z = 3000
  31.     # 生成角色活动块
  32.     @character_sprites = []
  33.     for i in $game_map.events.keys.sort
  34.       sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
  35.       sprite.character.sprite = sprite
  36.       @character_sprites.push(sprite)
  37.     end
  38.     @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
  39.     # 生成天气
  40.     @weather = RPG::Weather.new(@viewport1)
  41.     # 生成图片
  42.     @picture_sprites = []
  43.     for i in 1..50
  44.       @picture_sprites.push(Sprite_Picture.new(@viewport2,
  45.       $game_screen.pictures[i]))
  46.     end
  47.     # 生成计时器块
  48.     @timer_sprite = Sprite_Timer.new
  49.     # 刷新画面
  50.     update
  51.   end
  52.   def dispose
  53.     # 释放元件地图
  54.     @tilemap.tileset.dispose
  55.     for i in 0..6
  56.       @tilemap.autotiles[i].dispose
  57.     end
  58.     @tilemap.dispose
  59.     # 释放远景平面
  60.     @panorama.dispose
  61.     # 释放雾平面
  62.     @fog.dispose
  63.     # 释放角色活动块
  64.     for sprite in @character_sprites
  65.       sprite.character.sprite = nil
  66.       sprite.dispose
  67.     end
  68.     # 释放天候
  69.     @weather.dispose
  70.     # 释放图片
  71.     for sprite in @picture_sprites
  72.       sprite.dispose
  73.     end
  74.     # 释放计时器块
  75.     @timer_sprite.dispose
  76.     # 释放显示端口
  77.     @viewport1.dispose
  78.     @viewport2.dispose
  79.     @viewport3.dispose
  80.   end
  81. end
  82. class Game_Character
  83.   attr_accessor:sprite
  84. end


判断用:
if $game_map.events[1].sprite.anima?
...........
end

评分

参与人数 1梦石 +2 收起 理由
hcm + 2 认可答案

查看全部评分

>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
57
在线时间
131 小时
注册时间
2008-8-12
帖子
184
4
 楼主| 发表于 2012-11-16 09:59:52 | 只看该作者
沙漠点灰 发表于 2012-11-15 17:40
如果lz那样的话到有方法:
module RPG
  class Sprite < ::Sprite

很好用谢谢,能不能还判断出1号事件上的50号动画是否在播放?

点评

你应该会一点脚本吧..修改RPG::Sprite就好了  发表于 2012-11-16 12:51
Tomorrow
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-19 14:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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