Project1

标题: [允许我借用FSL的名义口胡一下么]Sprite在圆上 [打印本页]

作者: 退屈£无聊    时间: 2011-7-16 20:26
标题: [允许我借用FSL的名义口胡一下么]Sprite在圆上
本帖最后由 退屈£无聊 于 2011-7-31 08:20 编辑

前言:
仅仅是对sprite写了一点小加强,觉得此功能渣者请无视。
然后表示欢迎各位提供建议、灵感、BUG恩。
  1. #===============================================================================
  2. # ■ [GR]一堆精灵放圆上
  3. #-------------------------------------------------------------------------------
  4. #    写了sprite的某种加强
  5. #-------------------------------------------------------------------------------
  6. #    更新作者: 退屈无聊
  7. #    许可协议: FSL
  8. #    引用网址:
  9. #-------------------------------------------------------------------------------
  10. #    - 1.0.0719 By 退屈无聊
  11. #      * 初版;
  12. #===============================================================================
  13. $fscript = {} if $fscript.nil?
  14. $fscript['Sprite_Round'] = '1.0.0719'


  15. class Sprite_Round < Sprite
  16.   attr_accessor(:rid, :rx, :ry, :zoomplus, :x_1, :y_1)
  17.   def initialize(rid, rx, ry, rwidth, rheight, zoomplus=0.0, zoom=true)
  18.     super()
  19.     @rid = rid
  20.     @rx = rx
  21.     @ry = ry
  22.     @rwidth = rwidth
  23.     @rheight = rheight
  24.     @zoomplus = zoomplus
  25.     @zoom = zoom
  26.     @x_1 = 0
  27.     @y_1 = 0
  28.     round_update
  29.   end
  30.   def round_update
  31.     self.x = @rx
  32.     self.y = @ry
  33.     case @rid
  34.     when 0..90
  35.       if @rid == 0
  36.         self.x += @rx
  37.         self.y += @ry + @rheight
  38.       else
  39.         self.x += @rx + (Math.sin(Math::PI / (180.0 / @rid)) * @rwidth).to_i
  40.         self.y += @ry + (Math.cos(Math::PI / (180.0 / @rid)) * @rheight).to_i
  41.       end
  42.     when 91..180
  43.         self.x += @rx + (Math.cos(Math::PI / (180.0 / (@rid-90))) * @rwidth).to_i
  44.         self.y += @ry - (Math.sin(Math::PI / (180.0 / (@rid-90))) * @rheight).to_i
  45.     when 181..270
  46.         self.x += @rx - (Math.sin(Math::PI / (180.0 / (@rid-180))) * @rwidth).to_i
  47.         self.y += @ry - (Math.cos(Math::PI / (180.0 / (@rid-180))) * @rheight).to_i
  48.     when 271..360
  49.         self.x += @rx - (Math.cos(Math::PI / (180.0 / (@rid-270))) * @rwidth).to_i
  50.         self.y += @ry + (Math.sin(Math::PI / (180.0 / (@rid-270))) * @rheight).to_i
  51.     end
  52.     self.x += @x_1
  53.     self.y += @y_1
  54.     self.z = self.y
  55.     self.zoom_x = self.zoom_y = self.y / 480.0 + @zoomplus if @zoom
  56.   end
  57.   def rid=(rid)
  58.     @rid = rid
  59.     if @rid > 360
  60.       @rid -= 360
  61.     elsif @rid < 0
  62.       @rid += 360
  63.     end
  64.     round_update
  65.   end
  66.   def ry=(ry)
  67.     @ry = ry
  68.     round_update
  69.   end
  70.   def rx=(rx)
  71.     @rx = rx
  72.     round_update
  73.   end
  74.   def zoomplus=(a)
  75.     @zoomplus = a
  76.     round_update
  77.   end
  78.   def x_1=(a)
  79.     @x_1 = a
  80.     round_update
  81.   end
  82.   def y_1=(a)
  83.     @y_1 = a
  84.     round_update
  85.   end
  86. end
复制代码

作者: 忧雪の伤    时间: 2011-7-16 20:31
[GR]
建议加在名字前。

作者: Wind2010    时间: 2011-7-16 20:56
求功能简介- -
作者: yangff    时间: 2011-7-16 22:24
哦,笑而不语
作者: 退屈£无聊    时间: 2011-7-17 20:28
任何描述都不如一张图来的清楚么

那一个圈就是了.这货和ANGLE的功能还是有不同的啦
作者: summer92    时间: 2011-7-18 15:44
圆的轨迹,好啊~好啊~
作者: 退屈£无聊    时间: 2011-7-18 18:51
summer92 发表于 2011-7-18 15:44
圆的轨迹,好啊~好啊~

首先谢谢支持.
然后..轨迹...{:nm_1:}
作者: summer92    时间: 2011-7-19 14:38
轨迹就是摆在圆上的那些东西了,你可以顺便把三角型,菱形,四边型都做一个啊,这些东西很有用的
作者: 退屈£无聊    时间: 2011-7-19 18:02
summer92 发表于 2011-7-19 14:38
轨迹就是摆在圆上的那些东西了,你可以顺便把三角型,菱形,四边型都做一个啊,这些东西很有用的 ...

谢谢,我会考虑的恩{:nm_4:}
作者: DeathKing    时间: 2011-7-19 18:48
天啊,又撞了,刚好是最近在做的一个东西 = =b
不过功能不一样。

详细的规范在这里:http://rpg.blue/fsl/doc/license.html#_Documents
[GR]是VX和XP通用,[VX]和[XP]代表RGSS2或RGSS适用。
今天是7月19号,那building就是 0719
键值的话,没有下划线为好。

为什么这个规范这么麻烦? 看起来麻烦而已 = =b



作者: DeathKing    时间: 2011-7-22 12:05
本帖最后由 DeathKing 于 2011-7-22 12:06 编辑

对这里很不明白:

  self.ox = @rx
  self.oy = @ry


应该是 @rx @ry 决定环状的圆心啊,为什么还要设置一个原点呢?

对脚本不是很理解,特别是哪个 @rid ,他的几何意义是旋转角么?

做了一个东西,挺简陋的,到时候或许可以做个霸气护体什么的(笑

Sprite_Round.rar (187.6 KB, 下载次数: 33)
作者: 退屈£无聊    时间: 2011-7-23 18:32
DeathKing 发表于 2011-7-22 12:05
对这里很不明白:

  self.ox = @rx

今天才看到= =|||
非常不好意思.应该是self.x = @rx ; self.y = @ry然后再加上处理后的值的= =|||
于是把DK大人的抱走研究.




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1