查看: 1618|回复: 1

[已经解决] can't convert FalseClass into Rect ,这是为何

[复制链接]
梦石
0
星屑
1816
在线时间
2527 小时
注册时间
2010-10-12
回帖
1336

开拓者

发表于 2014-4-7 00:50:17 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 刺夜之枪 于 2014-4-6 13:05 编辑

[pre lang="ruby" line="1"]#==============================================================================
# ■ EFS_Arrow
#------------------------------------------------------------------------------
#  定义弓箭失的类
#==============================================================================
class EFS_Arrow < Sprite

  #--------------------------------------------------------------------------
  # ● 定义类变量
  #--------------------------------------------------------------------------  
  
  
  #--------------------------------------------------------------------------
  # ● 初始化数据
  #--------------------------------------------------------------------------
  def initialize(viewport)
    super(viewport)
    @direction = 2
  end
  #--------------------------------------------------------------------------
  # ● 发射箭失
  #--------------------------------------------------------------------------
  def display(fighter) #必须是Fighter.event
    @direction = fighter.event.direction
    @x = fighter.event.x*32 - 34
    @y = fighter.event.y*32 - 68   
    if self.bitmap==nil
    self.bitmap=RPG::Cache.character("arrow",0)
    self.x = @x
    self.y = @y  
    self.ox = $game_map.display_x / 4
    self.oy = $game_map.display_y / 4
    self.src_rect.set(0,(@direction/2-1)*100, 100, 100)
    end
  
  
  end  

  
  
end [/pre]

主要是加入这句话就有问题了
self.src_rect.set(0,(@direction/2-1)*100, 100, 100)




顺便再来三提问,
XXXXX(已经解决)
还有一个是这些箭都比事件显示的图层高,,, 怎么改成和事件一样的
ruby怎么做cos 或者 sin之类的逆运算


点评

應該去複習三角函數了  发表于 2014-4-8 07:25
已经更新,真好奇楼主的学历……  发表于 2014-4-7 23:28

梦石
0
星屑
2826
在线时间
2634 小时
注册时间
2013-1-16
回帖
5453

贵宾

发表于 2014-4-7 17:45:18 | 显示全部楼层
本帖最后由 myownroc 于 2014-4-7 23:28 编辑

can't convert FalseClass into Rect 是因为你将false类的实例(false)当成位图传送了……
传递参数的viewport设置为与事件相同的
以上未经测试,不知是否有误。

你是想说arcsin arccos 的运算?想通过sin或cos的值算出角度?
只要有了sin或cos的值,就可以算出tan的值,然后用Math模块中的atan函数算出角度(弧度制)



(sin x)^2 + (cos x)^2 = 1
tan x = sin x / cos x

点评

对对对,就是arctan。 因为我做弓箭,打算通过Δ坐标计算出角度。 我刚看了F1 Math, atan2(Δx,Δy)应该就可以计算吧? 多谢回答。 额我只是高中狗0w0~  发表于 2014-4-8 03:19
多谢回答,不过可以问一下具体操作嘛?是通过对边和临边算角度,  发表于 2014-4-7 23:26

评分

参与人数 1星屑 +85 收起 理由
刺夜之枪 + 85 认可答案

查看全部评分

(Created by @喵kano)


施工现场:hotege.github.io
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部