查看: 1499|回复: 3

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

[复制链接]
梦石
0
星屑
50
在线时间
130 小时
注册时间
2008-8-12
回帖
117
发表于 2012-11-15 09:37:47 | 显示全部楼层 |阅读模式

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

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

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

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

点评

动画是由RPG::Sprite"领导"的,不大可能单独查看某号动画在播放,当然,不是绝对不可能  发表于 2012-11-15 12:26
Tomorrow
梦石
0
星屑
50
在线时间
130 小时
注册时间
2008-8-12
回帖
117
 楼主| 发表于 2012-11-15 13:58:48 | 显示全部楼层
好吧谢谢,我用 if $game_map.events[1].animation_id > 0 来判断,结果不正确
Tomorrow
回复

使用道具 举报

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
回帖
638
发表于 2012-11-15 17:40:08 | 显示全部楼层
本帖最后由 沙漠点灰 于 2012-11-15 17:44 编辑

如果lz那样的话到有方法:
[pre lang="ruby" line="1"]module RPG
  class Sprite < ::Sprite
    def anima?
      @_loop_animation or  @_animation
    end
  end
end
class Spriteset_Map
  def initialize
    # 生成显示端口
    @viewport1 = Viewport.new(0, 0, 640, 480)
    @viewport2 = Viewport.new(0, 0, 640, 480)
    @viewport3 = Viewport.new(0, 0, 640, 480)
    @viewport2.z = 200
    @viewport3.z = 5000
    # 生成元件地图
    @tilemap = Tilemap.new(@viewport1)
    @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
    for i in 0..6
      autotile_name = $game_map.autotile_names
      @tilemap.autotiles = RPG::Cache.autotile(autotile_name)
    end
    @tilemap.map_data = $game_map.data
    @tilemap.priorities = $game_map.priorities
    # 生成远景平面
    @panorama = Plane.new(@viewport1)
    @panorama.z = -1000
    # 生成雾平面
    @fog = Plane.new(@viewport1)
    @fog.z = 3000
    # 生成角色活动块
    @character_sprites = []
    for i in $game_map.events.keys.sort
      sprite = Sprite_Character.new(@viewport1, $game_map.events)
      sprite.character.sprite = sprite
      @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
    # 生成天气
    @weather = RPG::Weather.new(@viewport1)
    # 生成图片
    @picture_sprites = []
    for i in 1..50
      @picture_sprites.push(Sprite_Picture.new(@viewport2,
      $game_screen.pictures))
    end
    # 生成计时器块
    @timer_sprite = Sprite_Timer.new
    # 刷新画面
    update
  end
  def dispose
    # 释放元件地图
    @tilemap.tileset.dispose
    for i in 0..6
      @tilemap.autotiles.dispose
    end
    @tilemap.dispose
    # 释放远景平面
    @panorama.dispose
    # 释放雾平面
    @fog.dispose
    # 释放角色活动块
    for sprite in @character_sprites
      sprite.character.sprite = nil
      sprite.dispose
    end
    # 释放天候
    @weather.dispose
    # 释放图片
    for sprite in @picture_sprites
      sprite.dispose
    end
    # 释放计时器块
    @timer_sprite.dispose
    # 释放显示端口
    @viewport1.dispose
    @viewport2.dispose
    @viewport3.dispose
  end
end
class Game_Character
  attr_accessor:sprite
end
[/pre]

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

评分

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

查看全部评分

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

使用道具 举报

梦石
0
星屑
50
在线时间
130 小时
注册时间
2008-8-12
回帖
117
 楼主| 发表于 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
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部