赞 | 1 |
VIP | 246 |
好人卡 | 87 |
积分 | 1 |
经验 | 34142 |
最后登录 | 2015-1-15 |
在线时间 | 323 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 55
- 在线时间
- 323 小时
- 注册时间
- 2010-8-21
- 帖子
- 666
|
lz要求有点高,貌似某些只能算是相切吧...?送上一个手工枚举版,lz的要求没有完成...
RGSS给了个Rect类,直接修改~~- #==============================================================================
- # ■ Rect
- #------------------------------------------------------------------------------
- # 矩形类 吐槽无力~
- #==============================================================================
- class Rect
- QWERTY = [2, 4, 6, 8]
- #--------------------------------------------------------------------------
- # ● 香蕉判定
- #--------------------------------------------------------------------------
- def &(rect)
- raise(RGSSError,"丫的不给力啊!") unless rect.is_a?(Rect)
- lu = range(rect.x, rect.y)
- rd = range(rect.x+rect.width, rect.y+rect.height)
- return false if lu == rd
- unless [lu,rd].include?(5)
- return 0 if ([lu,rd] & QWERTY).size == 2
- return false if((lu-1)/3==(rd-1)/3)or(lu-1)%3==(rd-1)%3 or(lu == 7 and rd == 3)
- case lu
- when 7
- return rd == 2 ? 14 : 18
- when 8
- return rd == 6 ? 9 : 16
- when 4
- return rd == 2 ? 1 : 12
- end
- else
- return lu == 5 ? rd : lu
- end
- raise(RGSSError,"未判断错误...#{[lu, rd]}")
- end
- #--------------------------------------------------------------------------
- # ● 范围判定
- #--------------------------------------------------------------------------
- def range(x, y, site=false)
- unless site
- return range(x, y, x>self.x ?(y>self.y ? 3:9):(y>self.y ? 1:7))
- else
- return 7 if site == 7
- site2 =(x>self.x+self.width) ? (y>self.y+self.height ? 3:9):(y>self.y+self.height ? 1:7)
- case site
- when 9
- return site2 == 9 ? 9 : 8
- when 1
- return site2 == 1 ? 1 : 4
- when 3
- return site2 == 1 ? 2 : site2 == 7 ? 5 : site2 == 3 ? 3 : 9
- end
- end
- end
- end
复制代码 返回false不香蕉,其它值香蕉,其他值清单:
0:十字香蕉
12346789:对应小键盘12346789位置,lz自己看着办...
12:下大交(2是下小交)
16:右大交(6是右小交)
14:左大交(4是左小交)
18:上大交(8是上小交)
相切的话会bug掉........... |
评分
-
查看全部评分
|